实验6:实践课程中的程序
(2)编程,完成问题7.9中的程序(代码中的数据段中每行的单词前四位字母大写)
assume cs:code,ds:datasg,ss:stacksg
datasg segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
datasg ends
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
code segment
start:
mov ax,datasg
mov ds,ax
mov cx,4
mov di,0 ; row start position
mov bx,3 ; column start position
r:
push cx
mov cx,4
c:
mov al,[di+bx]
and al,11011111B
mov [di+bx],al
inc bx
loop c
mov bx,3
add di,10H
pop cx
loop r
mov ax,4c00h
int 21h
code ends
end start
- 通过and逻辑与指令,将word的第六位改为0即为大写字母的二进制码
- 通过bx & di寄存器控制好内外循环的起始位置
- 利用stack来暂存寄存器的值,防止寄存器不够使用