编程:
(1) 根据书本P159图7.4所示,将datasg段中的前四个字母改为大写字母;
(2) 并将修改后datasg段中的前四个字母显示在屏幕的12行15列,字符属性02h。
输出结果如下图所示:
代码:
assume cs:codesg,ss:stacksg,ds:datasg
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
codesg segment
start:
;转为大写
mov ax,stacksg
mov ss,ax
mov sp,16
mov ax,datasg
mov ds,ax
mov bx,0 ;每行行首
mov cx,4
s0:push cx ;双重循环,先用栈保存cx
mov si,0
mov cx,4
s1:mov al,[bx+3+si] ;从第四个字母开始,用si来依次推进
and al,11011111b ;变为大写字母
mov [bx+3+si],al
inc si
loop s1
add bx,16 ;每次循环结束,bx+16来到下一行
pop cx
loop s0
;显示