标签:汇编

共 1 篇文章

mov指令与内存

今天在啃《深入理解计算机系统》的时候遇到了下面这段代码:

movl 12(%ebp), %eax
imull 8(%ebp)
movl %eax, (%esp)
movl %edx, 4(%esp)

代码的作用就是将两个数的乘积存回栈顶。代码没有问题,让我疑惑的是书上这两句话:

存储两个寄存器的位置对小端机器来说是对的——寄存器 %edx 中的高位存在相对于 %eax 的低位偏移量为 4 的地方。 栈是向低地址方向增长的,也就是说低位在栈顶。

在考虑这两句话的时候,突然发现自己对 mov 的操作并不是特别的清楚,就去查了查,大致搞明白了一些。

mov指令

我们知道 mov 在 IA32 中有基础的三类操作,即 b,w,l。 而 mov 在使用时大致如下:

movb ...
阅读全文