0

什么是 IA-32 关键字?标签名称有什么限制?我目前正在用 AT&T 语法编写汇编代码 - 奖励:我什至不确定 Intel 和 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 
4

1 回答 1

1

您正在谈论的限制是特定于汇编器解析器的,因此如果不告诉您正在使用哪个汇编器,您就无法以有意义的方式回答这个问题。对于 masm,一般指南是@@ 用于本地标签,标签可能不以数字开头。其他汇编程序使用类似的规则,但不是必须的,或者它们可能在细节上有所不同。

Intel 和 AT&T Syntax 之间的主要区别在于分配是相反的。英特尔使用

 mov    eax, value   ;  eax = value

和 AT&T 使用

mov    value, %eax   ; Move value to eax.

显然还有更多内容,但这是在这里回答的广泛方式,所以我建议阅读手册或谷歌。

首先,您可以在这里查看:http ://en.wikipedia.org/wiki/X86_assembly_language#Syntax以了解更多信息。

于 2013-10-30T11:12:47.217 回答