首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用intel2gas的NASM到GAS语法

使用intel2gas的NASM到GAS语法
EN

Stack Overflow用户
提问于 2013-09-16 12:03:06
回答 1查看 2.3K关注 0票数 3

我有一个用NASM语法编写的代码,运行良好。然后,我使用intel2gas将我的NASM代码转换为GAS。(使用-i,默认为at&t格式的英特尔)。

我以前从来没有用过煤气,只是在我所有的装配需要中使用纯的NASM。我用intel2gas来学习气体代码格式。现在,我在转换后的GAS代码中有一些行,它有来自intel2gas的警告,并附加了一个“失配:”前缀。

我已经像在.data和.bss部分一样管理了其他部分,但我仍然拥有以下内容:

代码语言:javascript
复制
MISMATCH: "lea ecx, [array + esi]"
MISMATCH: "lea ebx, [array + esi + 1]"
MISMATCH: "mov al, [array + esi]"
MISMATCH: "mov cl, [array + esi + 1]"

以上NASM行的等效气体语法是什么?

为什么intel2gas没有完全转换我的代码并且留下了几条不匹配的行?

帮帮忙,谢谢!

使用Ubuntu 13 x86

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-16 12:47:56

代码语言:javascript
复制
lea ecx, [array + esi]
lea ebx, [array + esi + 1]
mov al, [array + esi]
mov cl, [array + esi + 1]

所有这些行都不使用存储在寄存器中的地址的常量偏移量。从语法翻译的角度来看,标签地址是未知的,它不能确定目标编译器使用什么配置。

翻译:

代码语言:javascript
复制
lea array(%esi), %ecx
lea array+1(%esi), %ebx
movb array(%esi), %al
movb array+1(%esi), %cl
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18827554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档