看下面的代碼:
(EBP-0x8中 - > INT)
(EBP-爲0x4 - > INT *)的x86英特爾彙編LEA
=> 0x80483f3 <main+6>: mov DWORD PTR [ebp-0x8],0x0
0x80483fa <main+13>: mov DWORD PTR [ebp-0x4],0x0
0x8048401 <main+20>: mov DWORD PTR [ebp-0x8],0xa
0x8048408 <main+27>: lea eax,[ebp-0x8]
0x804840b <main+30>: mov DWORD PTR [ebp-0x4],eax
0x804840e <main+33>: mov eax,0x0
0x8048413 <main+38>: leave
0x8048414 <main+39>: ret
是對執法機關的命令,在真正需要的? 我知道下面的表達式是錯誤的,無效的,不管左邊的地址是錯誤的,但是沒有類似的方式來表示它嗎?
=> 0x80483f3 <main+6>: mov DWORD PTR [ebp-0x8],0x0
0x80483fa <main+13>: mov DWORD PTR [ebp-0x4],0x0
0x8048401 <main+20>: mov DWORD PTR [ebp-0x8],0xa
0x804840b <main+30>: mov DWORD PTR [ebp-0x4],ebp-0x8
0x804840e <main+33>: mov eax,0x0
0x8048413 <main+38>: leave
0x8048414 <main+39>: ret
我認爲它不可能,但我想確定。
而最後一個問題,表達ebp-0x8
理論上返回的「的ebp
寄存器減去0x8
的內容」。 因此,表達式[ebp-0x8]
將返回地址「內容ebp
寄存器減去0x8
」內存的內容。 現在我想知道如果LEA命令只能獲取內存中某些字節的內容,LEA命令如何獲取內存地址。
對不起,如果有一些愚蠢的問題,但[]有時可能會很混亂。
爲什麼被標記爲[C]?這個問題不是關於C的。我爲你刪除了標籤。 – fuz
對不起,它的代碼是由C源代碼生成的,最初我也想添加它。 – Michael