代码语言:javascript复制
;将'basic'转成大写'BASIC'
;将'ASM'转成小写'asm'
assume cs:code
data segment
db 'basic'
db 'ASM'
data ends
code segment
start: mov ax,data
mov ds,ax ;设置ds指向data
mov bx,0 ;设置偏移地址
mov cx,5 ;循环5次
s1: mov al,[bx]
and al,11011111B ;将字符从小写变成大写,(ASCII的第五个位置变成0即可)
mov [bx],al ;把字符写回到内存单元
inc bx ;处理下一个字母
loop s1
mov cx,3
s2: mov al,[bx] ;处理'ASM'字符串
or al,00100000B ;将字符从大写变成小写 (ASCII的第五个位置变成1即可)
mov [bx],al
inc bx
loop s2
mov ax,4c00h
int 21h
code ends
end start
结果如下图所示:
代码语言:javascript复制;本例中,我们做一个类似数组的操作。
;将'basic'转成大写'BASIC'
;将'LINUX'转成小写'linux'
assume cs:code
data segment
db 'basic'
db 'LINUX'
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov cx,5
s: mov al,0[bx] ;处理第一行,0[bx]==[bx 0]=[bx]
and al,11011111B ;将字符从小写变成大写,(ASCII的第五个位置变成0即可)
mov 0[bx],al
mov al,5[bx] ;处理第二行,5[bx]=[bx 5]
or al,00100000B ;将字符从大写变成小写 (ASCII的第五个位置变成1即可)
mov 5[bx],al
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
结果如下所示: