【发布时间】:2019-10-15 02:45:15
【问题描述】:
我现在在大学学习机器架构课程,我们开始学习组装。我们有一个问题说:
下面的 x86-64 汇编指令会将 16 位从 A 寄存器复制到 B 寄存器指向的主内存位置。
我的实验室伙伴认为答案是movw %ax, (%rbx)。
因为我们复制它的地方是一个指针。
我认为是:movw %ax, (%bx)
因为这意味着它的 16 位。
任何解释都会有所帮助,因为我们迷路了,而且没有大量关于此的明确信息!
【问题讨论】:
-
请注意,您可以查看
void foo(short *p) { *p = 1; }的 C 编译器输出,以了解存储到 16 位内存位置的情况。 -
相关:Moving two bytes into the lowest portion of a register 似乎与同一实验室的不同部分有关。 What does this x86-64 assembly code mean/do? 也是如此