一:直接内存操作数
num DWORD 200h
mov eax, num
mov ebx,[num] ;==mov ebx, num 因为num数据标号本身就代表着地址
二:直接偏移操作数
arrayB BYTE 10h,20h,30h,40h,50h
mov al, [arrayB + 2]
mov bl, arrayB + 2
arrayW WORD 100h,200h,300h
mov ax, [arrayW+2] ;ax=200h
在PE文件中,直接是arrayW+2相加之后的地址
三:间接操作数
al1 BYTE 10h
mov eax, 0
mov esi, OFFSET val1
mov al, [esi] ;源操作数
mov bl, 4
mov [esi], bl ;目的操作数
inc BYTE PTR [esi]
访问数组
.data
arrayB BYTE 10h,20h,30h
.code
main PROC
mov esi, OFFSET arrayB
mov al,[esi]
inc esi
add al,[esi]
inc esi
add al,[esi]
call DumpRegs
INVOKE ExitProcess, 0
main ENDP
END main
四:变址操作数
变址操作数把常量和