2013-03-19 51 views
0

在x86彙編語言中,可以確定內存中變量的位置嗎?以x86彙編語言獲取變量的位置

在這裏,我試圖找到X在內存中的位置,以便我可以找到存儲在地址後面的值。

.686p 
.model flat,stdcall 
.stack 2048 

.data 
X byte   "1234" 

ExitProcess proto, exitcode:dword 
.code 
start: 

mov ah, X; 
;now how can I obtain the location of X in memory? 

invoke ExitProcess, 0 
end start ;what does the end statement do? 
+0

這個問題也有類似的標題,但似乎並沒有被重複:http://stackoverflow.com/questions/12682778/ x86-assembly-actually-get-a-variables-value-vs-using-its-memory-location – 2013-03-19 04:46:37

+0

這個Google搜索沒有給我很多有用的結果:https://www.google.com/#hl = EN&sclient = PSY-AB&q =彙編+語言+拿到+位置+變量+的+在+內存和OQ =彙編+語言+拿到+位置+變量+的+在+的內存與gs_l = hp.3 ... 1036.17561.0.17836.82.74 .8.0.0.1.591.6759.54j17j0j1j1j1.74.0.les%3B..7.0 ... 1c.1.6.psy-ab.kB LR5fho0eU&pbx = 1&bav = on.2,or.r_cp.r_qf。&bvm = bv.43828540,d.dmg&fp = c88c58e01e24d8b1&biw = 1366&bih = 639 – 2013-03-19 04:47:42

回答

3

使用lea指令,是這樣的:

lea edx, byte ptr x 
+0

此聲明具體做什麼? – 2013-03-19 04:47:57

+3

正是你所要求的,得到變量'x'的地址。然後將它存儲在'edx'中。來吧,下載CPU手冊,它就在那裏。 – 2013-03-19 05:11:21