assume cs:code,ds:data
data segment
db 'you div error!','0';这里没有按王爽老师所说的那要把它放在code segment中。
data ends
code segment
start:mov ax,data
mov ds,ax
mov si,offset show_strend
mov ax,0
mov es,ax
mov di,200h
mov cx,offset show_strend - offset show_str
cld
rep movsb; ;将程序安装到0000:0200的段中
call show_str;把'you div error!在显存中以便显示出来
call set_enter_addr;修改(0000:0*4)=200,(0000:0*4+2)=0000例程的入口这是INT 0
;int 0h
mov ax,4c00h
int 21h
show_str:
mov ax,0b800h
mov es,ax
mov di,20*160
mov ax,data
mov ds,ax
mov ax,ds:[si]
cmp ax,'0'
je ok
mov es:[di],ax
inc si
inc di
inc di
loop show_str
show_strend:nop
ok:ret
set_enter_addr:mov ax,0
mov ds,ax
mov ds:[0],word ptr 200h
mov ds:[2],word ptr 0h
ret
set_enter_addr_end:nop
code ends
end start |