MOV可能是每个人在学习ASM时学习的第一个指令。
刚才我遇到了一本书的Assembly Language Programming in GNU/Linux for IA32 Architectures By Rajat Moona,上面写着:(删除断开的链接)
但我了解到它是MOV dest, src。它就像“用src加载dest”。就连Wiki也这么说。
我并不是说作者错了。我知道他是对的。但是我在这里遗漏了什么?
顺便说一句..他正在使用GCC的as来汇编这些指令。但这不应该改变指令语法,对吧?
发布于 2010-03-08 03:14:27
mov dest, src称为。(例如mov eax, 123)
mov src, dest称为。(例如mov $123, %eax)
UNIX汇编程序包括GNU汇编程序使用AT&T语法,我所知道的所有其他x86汇编程序都使用Intel语法。您可以阅读differences on wikipedia上的内容。
发布于 2010-03-08 03:14:43
可以,as/gas使用AT&T语法,该语法使用顺序src,dest.TASM,NASM,等等都使用'dest,src‘的顺序。碰巧的是,AT&T的语法不太适合英特尔处理器,而且(至少是IMO)是一个几乎不可读的乱七八糟的东西。例如,movzx就特别糟糕。
发布于 2010-03-08 03:14:08
汇编语言语法有两种截然不同的类型- Intel和AT&T语法。你可以在Wikipedia's assembly language page上找到两者的比较。
您的书很可能使用AT&T语法,其中源操作数在目标操作数之前。
https://stackoverflow.com/questions/2397528
复制相似问题