.386
.modelflat, stdcall
include?? windows.inc
include?? kernel32.inc
include?? masm32.inc
include?? debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib
.code
main proc
?? ;局部變量中的類型不能使用縮寫
???LOCAL v1: dword
???
?? ;可用逗號間隔寫在一行
?? LOCAL v2: dword, v3: dword
???
?? ;不指定類型時默認 DWORD(在 Win32 下)
?? LOCAL v4
???
?? ;數組
?? LOCAL v5[3]: dword
???
?? ;在手動初始化前, 局部變量中都是些垃圾值:
??? PrintDec v1
??? PrintDec v2
??? PrintDec v3
??? PrintDec v4
??? mov eax, v5[0]
??? PrintDec eax
??? ret
main endp
end main
----------------------------------------------------------------------------------------------------------------
理論上應該輸出垃圾值才對???? 但是并不是這樣
v1 = 0 (Test.asm, 52)
v2 = 0 (Test.asm, 53)
v3 = 0 (Test.asm, 54)
v4 = 0 (Test.asm, 55)
eax = 0 (Test.asm, 57)
全部為0了? - -
由于DumpMem不支持局部變量?? 我到debug.inc文件中找到了這個宏實現的語句? 實際上是調用了HexDump2這個函數
測試一個局部變量? 得到結果
0018FF84 : 00 00 00 00 - 00 00 00 00 - 00 00 00 00 - 00 00 00 00
00000004 : BYTES TOTAL
okay?? 全部Zero了?? 難道RadASM幫我們把變量都初始化了么?
測試data?同樣是這樣
?
?