我正在审核机器架构考试的工作表,我想澄清一下我的讲师提供的答案。他以前的工作表上有一些错别字,所以我想确保他在这里是正确的。看一下上面的图片,注意他说的是指令后的目的地是0x100,值是0x100,但不是正确的答案是目的地:0x100(由于括号,%rax的值)和0x1(%rcx的值)?提前致谢。
编辑:修复图片
答案 0 :(得分:2)
addq a,b
指令将a
的内容添加到b
。因此,如果rcx = 0x1
,rax = 0x100
并且0xff
位于地址0x100
,那么add %rcx,(%rax)
会在0x1
中将rcx
添加到0xff
1}}在地址0x100
处,在地址0x100
处产生0x100
,因为工作表正确显示。
如果指令是movq
而不是addq
而你的直觉是正确的movq
只是覆盖一个内存位置或寄存器而不是添加它。