我试图理解Intel语法和AT&T语法之间的区别(我使用的是GNU as)。
我有两个档案,智囊团:
.intel_syntax noprefix
val:
mov eax, val和atandt.s:
val:
mov $val, %eax我正在尝试将AT&T版本转换为Intel版本。但我得到了不同的结果:
$ objdump -d intel.o
intel.o: file format elf32-i386
Disassembly of section .text:
00000000 <val>:
0: a1 00 00 00 00 mov 0x0,%eax和
$ objdump -d atandt.o
atandt.o: file format elf32-i386
Disassembly of section .text:
00000000 <val>:
0: b8 00 00 00 00 mov $0x0,%eax他们为什么不一样?
发布于 2017-09-09 15:04:13
Intel指令加载val的内容。若要加载其地址,请使用
mov eax, offset valhttps://stackoverflow.com/questions/46131951
复制相似问题