1.将data段中存储的字母全部变为大写
assume cs:code,ds:data,ss:stack
data segment
db 'ibm '
db 'dec '
db 'dos '
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 bx,0
;初始化栈
mov ax,stack
mov ss,ax
mov sp,16
;将cx存储到栈中,之后更新内部loop的值。内部loop结束后从栈中取出
mov cx,3
s: push cx
mov cx,3
mov si,0
s0:
;先确定每一行的坐标bx
;再确定每一列的坐标si
mov al,ds:[bx+si]
and al,11011111b
mov ds:[bx+si],al
inc si
loop s0
pop cx
add bx,16
loop s
mov ax,4c00h
int 21h
code ends
end start
2.将data段中定位的字符中前四个字符改为大写
assume cs:code,ss:stack,ds:data
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
code segment
start: mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
mov bx,0
mov cx,4
s: push cx
mov cx,4
mov si,0
s0: mov al,ds:[bx+si+3]
and al,11011111b
mov ds:[bx+si],al
inc si
loop s0
add bx,16
pop cx
loop s
mov ax,4c00h
int 21h
code ends
end start