2
我有一个用NASM语法编写的代码,运行良好。然后我使用intel2gas将我的NASM代码转换成GAS。 (使用-i,默认为英特尔至& t格式)。NASM to GAS语法使用intel2gas
我从来没有使用过GAS,只是纯粹的NASM在我所有的组装需求。我用intel2gas学习GAS代码格式。现在,我在转换后的GAS代码中有一行警告来自intel2gas,并附有'MISMATCH:'前缀。
我已经在.data和.bss段管理的其他人一样,但我仍然有这些:
MISMATCH: "lea ecx, [array + esi]"
MISMATCH: "lea ebx, [array + esi + 1]"
MISMATCH: "mov al, [array + esi]"
MISMATCH: "mov cl, [array + esi + 1]"
什么上面的NASM线相当于GAS语法?
为什么intel2gas没有完全转换我的代码,并留下了几个MISMATCH线?
请大家帮忙,谢谢!
使用Ubuntu 13 86
Whoaaa!谢啦! :D 我有一个后续问题,如果我可能.. 我有这样一行:'movb%cl,$ byte [ebx]'产生这个错误:表达后的垃圾'[ebx]'和无效的表达式'mov'后缀 我应该如何处理这个问题? –
如果'byte'是一个在代码中声明的标签,那么它的名称前面不应该有'$',因为它只在常量之前。顺便说一句'[]'方括号在GAS语法中是不允许的,所以你可以使用:'movb%cl,byte(%ebx)'。 如果您在'ebx'之前写了'byte'作为大小说明符,请注意它根本无效并且没有必要。 'mov'后缀'b'已包含此信息。 – user35443
ohhhh ..这个movb是真正的方便。 :D 非常感谢! :d –