3.4.2数据传送指令
目录
P123

注意寄存器既可以存储整数也可以存储指针,这里加了括号就表示寄存器存储的是指针,访问指针指向的内存。(%rdi,%rcx)相当于地址rdi+rcx,-12(%rbp)相当于rbp-12

上面是一个更加一般的例子,对于最后一个问题的回答如下

其中第二个理由是视频的观点。可以看一下具体的例子


可能看到这一段话会有一个疑问就是为什么不直接让movq一个指令移动64位,反正移动其他大小的数据都有指令,何必再设计一个movabsq呢?在32位机器的时候,数字都是在32位以内,也就是说我们操作的数据在32位以内的有很多;现在变成了64位,我们仍然是有很多时候在操纵32位数字,但是为了符合64位的要求,就设计了movq,由于符号拓展数值不变,所以说movq是有效的,同时还能够在大量时间节省指令缓存(因为现在只需要写32位不用写64位),而movabsq就是我们在64位的时候确实想要移动一个64位的值做出来的指令

浙公网安备 33010602011771号