下面的一段代码演示了如何利用间接寻址来引用操作数并且对其进行修改的操作。值得注意的是,这段代码的计数器的递增方式。
;数组循环(Allpoints.asm)
include irvine32.inc
NumPoints=3
.data
ALIGN WORD
AllPoints COORD NumPoints DUP(<0,0>);初始化Allpoints数组,它被定义为COORD坐标类型,大小为3初始值为0
.code
main PROC
mov edi,0 ;数组索引
mov ecx,NumPoints ;循环计数器
mov ax,1 ;起始X,Y值
L1:
mov (COORD PTR AllPoints[edi]).X,ax ;对引用间接操作数的赋值方式
mov (COORD PTR AllPoints[edi]).Y,ax ;对引用间接操作数的赋值方式
add edi,type COORD ;指向下一个坐标数组
inc ax
loop L1
call WaitMsg ;
exit
main ENDP
END main