[bx+idata]表示一个内存单元,它的偏移地址的值就是bx+idata
对于指令:
mov ax,[bx+200]
将偏移地址为bx+200的内存单元送到ax中,段地址存放在ds中,当cpu执行这条语句时,从ds获取段地址,bx+200当做偏移地址,从而获得数据
应用:进行数组处理
assume cs:code,ds:data
data segment
db 'BaSiC'
db 'foRKE'
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov cx,5
;将Basic变成大写
s: mov al,[bx]
and al,11011111B
mov [bx],al
;将foRKE变成小写
mov al,[bx+5]
or al,00100000B
mov [bx+5],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
两个字符串的起始偏移地址分别为0和5,bx中给出从起始偏移地址开始的相对地址,两个字符串从起始地址开始的相对地址的变化是相同的,可以用[bx+idata]