;将数据段中每行字母改为大写
assume cs:codesg, ds:datasg, ss:stacksg
datasg segment
db 'ibm '
db 'dec '
db 'dos '
db 'vax '
dw 0 ;定义一个字,用来保存cx
datasg ends
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg 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, 3 ;cx设置为内层循环的次数
s:mov al, [bx+si]
and al, 11011111b
mov [bx+si], al
inc si
loop s
add bx, 16
pop cx
loop s0
mov ax, 4c00H
int 21H
codesg ends
end start
;将数据段中每行前4个字母改为大写
assume cs:codesg, ds:datasg, ss:stacksg
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
mov si, 0
mov cx, 4
s:mov al, [bx+3+si]
and al, 11011111B
mov [bx+3+si], al
inc si
loop s
add bx, 16
pop cx
loop s0
mov ax, 4C00H
int 21H
codesg ends
end start