将datasg中的第一个字符串转化为大写,第二个字符串转化为小写。
assume cs:codesg,ds:datasgdatasg segment db 'BaSiC' db 'iNfOrMaTiOn'datasg endscodesg segmentstart: mov ax,datasg mov ds,ax mov bx,0 mov cx,5s: mov al,[bx] and al,11011111B mov [bx],al inc bx loop s mov bx,5 mov cx,11s0: mov al,[bx] or al,00100000B mov [bx],al inc bx loop s0 mov ax,4c00h int 21hcodesg endsend start
如果两个字符串的长度一致,程序可以使用[bx+idata]的方式优化如下:
assume cs:codesg,ds:datasgdatasg segment db 'BaSiC' db 'MinIX'datasg endscodesg segmentstart: mov ax,datasg mov ds,ax mov bx,0 mov cx,5s: mov al, 0[bx] and al,11011111b mov 0[bx],al mov al,5[bx] or al,00100000b mov 5[bx],al inc bx loop s mov ax,4c00h int 21hcodesg endsend start