问题7.9:
编程,将data段中每个单词的前四个字母改为大写字母
assume cs:code,ds:data,ss:stack
data segment
db '1.display '
db '2.brows '
db '3.replace '
db '4.modify '
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:
.....
;编写code段代码
code ends
end start
代码如下:
assume cs:code,ds:data,ss:stack
data segment
db '1.display '
db '2.brows '
db '3.replace '
db '4.modify '
data ends
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,16 ;栈的容量为16个字节
mov bx,0 ;初始bx为0 后面累加16 bx+16...
mov cx,4 ;大循环4次
s: ;外循环s
push cx ;cx入栈保存
mov si,0 ;si共加4次
mov cx,4 ;小循环也是4次
s0: ;内循环s0
mov al,[bx+si+2] ;定位到字母 前面'x.'占用两个字节所以从2开始
and al,11011111B ;与运算转化大写
mov [bx+si+2],al ;存放回原存储单元