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,stack
mov ss,ax
mov sp,16;初始化堆栈
mov ax,datasg;初始化数据段
mov ds,ax
mov si,0;每行字母的指向————变址
mov cx,5;外循环次数
s0: push cx;暂存外循环次数
mov cx,4;设置内循环次数
mov bx,0;bx = 3估计也行————基址
s: mov al,3[bx][si];注意————内存中取出的是一个字节!8位
and al,11011111b;进行操作,再放回al
mov 3[bx][si],al;替掉原来的内存中的数据
add bx,10h;调整————到下一行
loop s
inc si;调整————到每行的下一个字母
pop cx;取出外循环次数,准备进行外循环
loop s0
mov ax,4c00h
int 21h
codesg ends
end start