You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NASM转MASM语法对应关系及resb、global _start替代方案咨询

问题1解答

NASM的resb指令作用是预留指定字节数的未初始化内存,MASM中对等的写法是db N dup (?),你要预留16字节的name变量,正确写法为name db 16 dup (?)。你将.bss段对应到.data?段的修改是正确的,二者都用于存放未初始化数据,不会占用可执行文件的静态存储空间。
额外说明:你当前代码中使用的syscall调用规则是Linux平台的系统调用约定,MASM通常用于Windows平台开发,Windows系统不存在rax=60对应进程退出的调用规则,如果你要在Windows下运行代码,需要替换为对应的Windows API调用。

问题2解答

NASM的global _start作用是将_start符号导出为全局符号,供链接器识别为程序入口,MASM中对等的语法是PUBLIC指令。如果你要保留_start作为程序入口,添加PUBLIC _start声明即可,同时需要在代码末尾的end指令后指定入口点,改为end _start。如果你是和C运行库链接使用main作为入口,就声明PUBLIC main,末尾改为end main即可。

问题3解答

目前没有官方推出的专门的NASM与MASM语法等价对照表,你可以分别查阅二者的官方文档对照语法差异:NASM官方文档中设有专门章节描述和MASM的语法区别,微软官方的MASM文档也有完整的语法说明,你可以按需查询对应语法点的写法即可。


内容的提问来源于stack exchange,提问作者learn123456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:27:03