1、linux和windows的代码编写是不一样的,linux上的汇编风格是at&t风格,而windows上的汇编风格是intel风格。 其中的一个区别是intel 风格是关于源操作数和目的操作数的。以第一个为例
//windows上的写法
mov eax, data4
//linux上的写法
movl data4, eax
所以,你使用的哪个平台你得闹明白。
2、如果是汇编代码,直接用标识符就好,还是不同的风格问题,如果按你写的立即数模式。
//windows上的写法
mov eax, -1000
//linux上的写法
movl $-1000, eax
在linux的at&t汇编风格中,它这个立即数是必须要加上$ 表示一个常量。 这个也是为什么你在C语言中一般不能使用$来做为标识符的一个原因哦。
建议:查一下intel风格和at&t风格的汇编区别点。问题都很简单,为了更好的帮助你,我上传了一份,详细介绍intel汇编语言程序设计的电子书,中文版的,希望能帮到你!