马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset do0
mov ax,0
mov es,ax
mov di,200h ;将do0写到0:200处
mov cx,offset do0end-offset do0
cld
rep movsb
;设置中断向量表
mov ax,0
mov es,ax ;将es指向中断向量表
mov word ptr es:[7ch*4],200h ;发生7ch中断时跳转到0:200处执行
mov word ptr es:[7ch*4+2],0
mov ax,4c00h
int 21h
;dh 行号
;dl 列号
;cl 颜色
;ds:si 指向字符串首地址 结束标志‘0’
do0:
add dl,dl ;列号最大为80,不会溢出
mov al,160
mul dh ;8位mul,al放乘数1,AX放结果
mov di,ax
mov dh,0
add di,dx ;显存索引 = 行*160+列x2
mov ax,0b800H
mov es,ax
mov ah,cl; ;字体颜色
s: cmp byte ptr [si],0
je ok ;(ds:[si])=0时则跳转
mov al,[si]
mov es:[di],ax ;写显存
inc si
add di,2
jmp s
ok: iret
do0end: nop
code ends
end start
|