IA-32关键字是什么?标签名称有哪些限制?我目前正在AT& T语法中编写汇编代码 - 奖金:我甚至不确定英特尔和AT& T语法之间有什么区别。
编辑:我最想知道哪些限制没有标签,例如,print
是否允许使用标签名称?
print:
pushl %eax
pushl $str
call printf # output contents of stack according to out string
popl %eax # Clean up the stack, remove the parameters of print
jmp end
答案 0 :(得分:1)
您所讨论的限制是特定于汇编程序解析器的,所以在不告知您正在使用哪个汇编程序的情况下,您无法以有意义的方式回答此问题。
对于masm,一般指南是您使用@@
作为本地标签,标签可能不以数字开头。其他装配工使用类似的规则,但不是必须的,或者它们的细节可能不同。
英特尔和AT& T语法之间的主要区别在于分配是相反的。英特尔使用
mov eax, value ; eax = value
和AT& T使用
mov value, %eax ; Move value to eax.
显然还有更多内容,但这是广泛的答案,所以我建议阅读手册或谷歌。
首先,您可以在此处查看:http://en.wikipedia.org/wiki/X86_assembly_language#Syntax以便找到更多内容。