使用[bx+idata]的方式进行数组处理
在cidesg中写代码,将datasg中定义的第一个字符串转化为大写,第二个字符串转化为小写。
例子2:
例子3:
在cidesg中写代码,将datasg中定义的第一个字符串转化为大写,第二个字符串转化为小写。
assume cs:codesg,ds:datasg
datasg segment
db:'Baic'
db:'MinIx'
datasg ends
codesg segment
start:
*****
code ends
end start
例子1:
mov ax,datasg
mov ds,ax ;datasg的指向ds寄存器
mov bx,0
mov cx,5
s:
mov al,[bx] ;al=ds*16+bx
and al,11011111b ;字符转小写
mov [bx],al
inc bx
loop s ;循环结束
mov bx,5
mov cx,5
s0:
mov al,[bx]
or al,00100000b ;转大写
mov [bx],al
inc bx
loop s0
例子2:
mov ax,datasg
mov ds,ax
mov bx,0
mov cx,5
s:mov al,[bx]
and al,11011111b
mov [bx],al
mov al,[[5+bx]
or al,[5+bx]
mov [5+bx],al
inc bx
loop s
例子3:
mov ax,datasg
mov ds,ax
mov bx,0
mov cx,5
s:
mov al,0[bx]
and al,11011111b
mov 0[bx],al
mov al,5[bx]
or all,00100000b
mov 5[bx],al
inc bx
loop s