实验10第一题,
assume cs:codedata segment
db 'Welcome to masm!',0
data ends
code segment
start: mov dh,8
mov dl,3
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21
show_str: mov ax,0b800h ;给出显示内存段地址
mov es,ax
mov al,0a0h ;每行字节数
dec dh ;行数-1
muldh ;得出每行首地址
mov bx,ax
mov al,02h
mul dl
sub ax,2 ;定位列字节首地址=(dl-1)*2
add bx,ax ;将偏移地址存入bx
mov al,cl ;存放颜色
s:mov ah, ;将每个字节依次存放到内存显示的位置
mov es:,ah
mov es:,al
add bx,2 ;内存显示位置增加2个字节
inc si ;数据data中字节递增
mov cl,0
mov ch, ;将data中下一个字节存入ch,
jcxz ok ;判断cx是否为0,为0则跳出循环
jmp s ;cx不为0,继续执行
ok: ret
code ends
end start
每次用debug执行完,能得到显示结果,但是debug编译器卡死,求解惑。 打扰了,int 21h,忘了加h导致的
页:
[1]