指针
一个变量包含另一个变量的地址,则称该变量为指针。汇编语言中的32位代码如下所示:
.data
arrayB byte 10h,20h,30h,40h
ptrB dword arrayB
或者使用offset运算符:
.data
arrayB byte 10h,20h,30h,40h
ptrB dword offset arrayB
ptrB包含arrayB的偏移量
指针使用示例
.386
.model flat,stdcall
.stack 4096
ExitProcess PROTO,dwExitCode:DWORD
pbyte typedef ptr byte
pword typedef ptr word
pdword typedef ptr dword
.data
arrayB byte 10h,20h,30h
arrayW word 1,2,3,4
arrayD dword 4,5,6
ptr1 pbyte arrayB
ptr2 pdword arrayW
ptr3 dword arrayD
ptrB dword offset arrayB
.code
main PROC
mov ax,type ptr1
mov esi,ptr1
mov al,[esi]
mov eax,ptr3
mov ebx,[eax+4]
mov edx,ptr2
mov bx,[edx]
mov al,arrayB
mov al,[arrayB +1]
mov al,[arrayB]
mov esi,ptrB
mov al,[esi+2]
mov ax,[esi]
INVOKE EXITPROCESS,0
main ENDP
END main