2017-10-15 155 views
2

enter image description here我在審查一個機器體系結構考試的工作表,我想澄清我的教練提供的答案。他在之前的工作表上有幾個錯別字,所以我想確保他在這裏是正確的。看看上面的圖片,注意他說在指令後的目的地址是0x100,值是0x100,但是不正確的答案是目的地址:0x100(因括號而引起的%rax值)和0x1( %rcx的值)?提前致謝。裝配addq澄清

編輯:固定所述圖像

回答

2

addq a,b指令增加了a內容以b。所以,如果rcx = 0x1rax = 0x100我們在地址0x1000xff,然後add %rcx,(%rax)地址0x100增加0x1rcx0xff,在地址0x100產生0x100作爲工作表正確指示。

你的直覺是正確的,如果該指令是movq而不是addqmovq剛剛改寫的存儲位置或註冊的,而不是添加到它。

+0

非常感謝你。這就說得通了。 – awallace04

+0

@ awallace04如果您的問題已解決,請不要忘記將答案標記爲已接受! – fuz