2014-04-21 39 views
-1

我們給出的提示(使用AT &牛逼ASM)彙編語言棘手的存儲器地址

eax  = A 

ebx  = B 

ecx  = &X 

edx  = &Y 

據我所知,(%EAX)將抓取的數據在一個內存位置,但你會做( %edx)抓住?說,例如在呼叫

movl (%edx), %ebx 

另外

movl %eax, (%ecx) 

是否第一呼叫只需更換與& Y(Y的存儲位置)和第二呼叫%EBX的當前值替換在所述存儲器位置中的數據& X的值爲A?

怎麼樣的操作movl%edx,%eda?這是否只是將& Y的內存位置移到eax中?

由於

+0

ecx將包含寄存器'X'的地址,我不知道你的代碼是什麼! – chouaib

回答

0

從 'C' 語言透視:

eax  = A 

EAX得到A的值的副本

ebx  = B 

EBX得到B的值的拷貝。

ecx  = &X 

ecx gets X的地址(或存儲位置)。

edx  = &Y 

edx獲取y的地址(或存儲位置)。