我对一些 Y86 代码有疑问
如果我们得到一个堆栈从 pos .200 开始,我试图理解程序 yas 输出开头的这一行(这是 Bryant 文本中的 sum 程序,第 368 页第 4 章)
| Execution begins at address 0
0x000: | .pos 0
0x000: 30f40002000000000000 | irmovq stack, %rsp # set up stack pointer
我知道对于 irmovq 它的设置就像
instruction encoding | 0 | F | rB | Value
那么如果我们将堆栈指针设置为地址 0x200,为什么在 4 之后会有一个前导零?为什么不是 30f400200...?我猜它是为了对齐但没有填充改变地址的值?