问题介绍
编程,将datasg段中的每个单词改为大写字母。用栈段存储临时数据。
代码展示
;编程,将datasg段中的每个单词改为大写字母
;用栈来存储临时数据
assume cs:code,ds:datasg,ss:stack
datasg segment
db 'ibm ' ;16个字节,将前三个字节的字母转为大写
db 'dec '
db 'dos '
db 'vax '
datasg ends
stack segment
dw 0,0,0,0, 0,0,0,0 ;定义8个字16个字节做为栈用于保存临时寄存器
stack ends
code segment
start:
mov ax,datasg
mov ds,ax
mov bx,0
mov ax,stack
mov ss,ax
mov sp,16
mov cx,4
s:
push cx
mov si,0
mov cx,3 ;设置内层循环次数
s0:
mov al,[bx+si]
and al,11011111B
mov [bx+si],al
inc si
loop s0
pop cx ;还原cx
add bx,16
loop s
mov ax,4c00h
int 21h
code ends
end start
结果检测