1
我意識到,這是禁止從內存複製到記憶中的場景是這樣的:裝配移動指令有異常嗎?
section .data
var1 db 23
var2 db 9
section .text
global _start
_start:
mov [var1],[var2]
mov eax,1
mov ebx,0
int 80h
但是,最近我發現,沒有嚴格遵守了規則的代碼示例。 這裏的理念是:
section .data
var1 dd 23
var2 dd 9
section .text
global _start
_start:
mov dword [var1],var2
mov eax,1
mov ebx,0
int 80h
我知道我們不能存儲位置之間傳輸數據,但我不知道是否有可能通過一個變量的存儲位置,另一個變量。它實際上編譯,並完成這項工作。
我的問題是:這是否真的假設工作?
預先感謝您,任何幫助,將不勝感激。
當然,你可以在'var1'中存儲'var2'的地址,就像你在這裏做的那樣,但這與你的第一個例子是不同的操作結果。 –
好的,謝謝;) – misty
'mov [var1],[var2]'試圖將_var1_的值複製到_var2_中。兩個操作數都是內存操作數,所以你不能這樣做。 'mov dword [var1],var2'將_var2_的指針移動到_var1_。指針只是一個立即值(像一個常量),所以這個操作是允許的_MOV_ –