一個人做網站好做嗎推廣效果最好的平臺
一個變量如果包含的是另一個變量的地址, 則該變量就稱為指針(pointer) 。指針是操作數組和數據結構的極好工具,因為它包含的地址在運行時是可以修改的。
?
.data
arrayB byte 10h, 20h, 30h, 40h
ptrB dword arrayB
ptrB1 dword OFFSET arrayBarrayW WORD 1000h,2000h,3000h
ptrW DWORD arrayW
32位匯編時,指針都是32位的
TYPEDEF定義指針類型
?
.386
.model flat,stdcall
option casemap:none
.stack 4096PBYTE TYPEDEF PTR BYTE ;PBYTE指向8位數據的指針類型
;這樣的聲明通常放在靠近程序開始的地方, 在數據段之前, 使得接下來就可以用PBYTE 來定義變量
PWORD TYPEDEF PTR WORD ;指向字的指針類型
PDWORD TYPEDEF PTR DWORD ;指向雙字的指針類型.data
arrayB BYTE 10h,20h,30h,40h
ptr6 PBYTE ? ;指針變量ptr6末初始化
ptr1 PBYTE arrayB ;指針變量ptr2指向arrayB數組arrayW WORD 1, 2, 3
arrayD DWORD 4, 5, 6
ptr2 PWORD arrayW
ptr3 PDWORD arrayDExitProcess PROTO,dwExitCode:DWORD .code
main PROC mov esi, ptr1 ;把ptr1的值(arrayB的地址)給esimov al, [esi] ;al=10hmov esi, ptr2 mov ax, [esi] ;ax=0001hmov esi, ptr3mov eax, [esi] ;eax=00000004INVOKE ExitProcess,0
main ENDP
END main