|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
assume cs:code
data 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
mul dh ;得出每行首地址
mov bx,ax
mov al,02h
mul dl
sub ax,2 ;定位列字节首地址=(dl-1)*2
add bx,ax ;将偏移地址存入bx
mov al,cl ;存放颜色
s:mov ah,[si] ;将每个字节依次存放到内存显示的位置
mov es:[bx],ah
mov es:[bx+1],al
add bx,2 ;内存显示位置增加2个字节
inc si ;数据data中字节递增
mov cl,0
mov ch,[si] ;将data中下一个字节存入ch,
jcxz ok ;判断cx是否为0,为0则跳出循环
jmp s ;cx不为0,继续执行
ok: ret
code ends
end start
每次用debug执行完,能得到显示结果,但是debug编译器卡死,求解惑。 |
|