我对一些Y86代码有疑问
如果我们得到一个堆栈从pos .200开始,我试图在程序的yas输出开始时理解这一行(这是Bryant文本中的总和程序,p.368 Ch 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 ......?我猜它是为了对齐,但没有填充更改地址的值?