2
我在審查一個機器體系結構考試的工作表,我想澄清我的教練提供的答案。他在之前的工作表上有幾個錯別字,所以我想確保他在這裏是正確的。看看上面的圖片,注意他說在指令後的目的地址是0x100,值是0x100,但是不正確的答案是目的地址:0x100(因括號而引起的%rax值)和0x1( %rcx的值)?提前致謝。裝配addq澄清
編輯:固定所述圖像
我在審查一個機器體系結構考試的工作表,我想澄清我的教練提供的答案。他在之前的工作表上有幾個錯別字,所以我想確保他在這裏是正確的。看看上面的圖片,注意他說在指令後的目的地址是0x100,值是0x100,但是不正確的答案是目的地址:0x100(因括號而引起的%rax值)和0x1( %rcx的值)?提前致謝。裝配addq澄清
編輯:固定所述圖像
的addq a,b
指令增加了a
內容以b
。所以,如果rcx = 0x1
,rax = 0x100
我們在地址0x100
有0xff
,然後add %rcx,(%rax)
地址0x100
增加0x1
在rcx
到0xff
,在地址0x100
產生0x100
作爲工作表正確指示。
你的直覺是正確的,如果該指令是movq
而不是addq
爲movq
剛剛改寫的存儲位置或註冊的,而不是添加到它。
非常感謝你。這就說得通了。 – awallace04
@ awallace04如果您的問題已解決,請不要忘記將答案標記爲已接受! – fuz