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