装配addq澄清

时间:2017-10-15 20:00:54

标签: assembly

enter image description here我正在审核机器架构考试的工作表,我想澄清一下我的讲师提供的答案。他以前的工作表上有一些错别字,所以我想确保他在这里是正确的。看一下上面的图片,注意他说的是指令后的目的地是0x100,值是0x100,但不是正确的答案是目的地:0x100(由于括号,%rax的值)和0x1(%rcx的值)?提前致谢。

编辑:修复图片

1 个答案:

答案 0 :(得分:2)

addq a,b指令a的内容添加到b。因此,如果rcx = 0x1rax = 0x100并且0xff位于地址0x100,那么add %rcx,(%rax)会在0x1中将rcx添加到0xff 1}}在地址0x100处,在地址0x100处产生0x100,因为工作表正确显示。

如果指令是movq而不是addq而你的直觉是正确的movq只是覆盖一个内存位置或寄存器而不是添加它。