各种大会问题

时间:2011-05-23 08:36:52

标签: inline-assembly

我正在看一些装配的东西。因此,pushl barsubl $4, %esp movl bar, ($esp)相同。

几个问题:

1)%esp注册有什么特别之处?

2)寄存器周围的括号是什么意思?

3)pushl bar意味着在堆栈顶部有条,对吧?那么当我做subl $4时会发生什么?这是否意味着我在堆栈顶部创建空白空间,以便将bar移动到?

1 个答案:

答案 0 :(得分:1)

  1. ESP是堆栈指针 - 它总是指向堆栈的“顶部”

  2. 括号表示“ESP指向的内存而不是ESP注册本身”

  3. 您正在将堆栈指针向下移动四个字节(在大多数实现中堆栈向下增长 - 将某些内容推送到堆栈的“顶部”意味着将其存储在 lower 内存地址)