cla*_*aws 5 assembly masm nasm
我正在学习汇编语言.我从PC Assembly Language使用NASM(The Netwide Assembler)的Paul A. Carter开始.然后在中间我切换并开始阅读Introduction to 80×86 Assembly Language and Computer Architecture使用MASM.
在NASM中,我曾经写过,用于初始化一个字节
db 110101b
在MASM我正在使用
BYTE 110101b
我正在读书.由于这些是汇编程序指令,因此每个汇编程序的指令都不同.对?这些汇编程序开发人员是否遵循这些指令的标准?因为,他们知道助记符是CPU特有的.所以,它在学习和汇编语言编码方面的痛苦.
现在,如果他们遵循不同的指令,如果你改变汇编程序或者你切换操作系统会更加痛苦(MASM开发人员如果进入linux就会陷入困境).
我的困惑是我应该熟悉NASM还是MASM?我很喜欢Windows,但我可能还需要在Linux上工作(将来).
每本书都应该标题为"_________汇编语言使用__________汇编"
不幸的是,汇编语言从来没有一个标准。您只需要了解汇编器支持的指令即可。幸运的是,大多数指令虽然名称不同,但语义相似,例如 db 和 BYTE。
可是等等!情况会变得更糟,尤其是对于 x86。您(至少)有两种汇编程序可以接受的代码形式:Intel 格式和 AT&T 格式。AT&T 格式将大多数操作数的顺序反转为指令(或者反之亦然;-)。
NASM 可能是可移植性更好的选择,但您也可以看看 GNU 汇编器。
| 归档时间: |
|
| 查看次数: |
1117 次 |
| 最近记录: |