x86 32b中的寻址模式的名称(AT& T样式)

时间:2014-06-06 16:26:48

标签: assembly x86

我在一些代码中注意到了我不熟悉的以下访问模式,并想知道它是否有一个名称:

.data     
      .foo quad 0         
.text   
      ...   
      movl %edx, foo +4       

很明显它做了什么或者应该做什么,但是不符合我习惯的寻址模式的语法(立即,直接,索引或间接(从基数位移到-4)(foo) ))寻址)。

它有名字吗?它的位移(或基础)术语是否有限制?

1 个答案:

答案 0 :(得分:3)

那将是绝对的解决方案。地址foo+4在链接时已知,因此可以直接编码到指令中。

例如,这个:

.text 
movl %edx, foo+4

foo:

产生以下objdump输出:

Disassembly of section .text:

0000000000000000 <.text>:
   0:   89 14 25 0b 00 00 00    mov    %edx,0xb

0000000000000007 <foo>:

如您所见,地址0x0000000B已编码到指令中,该地址等于foo(7)加4的地址。