x86汇编语言,下面程序是重写0号中断程序,改变发生除法溢出时的提示,但运行结果却不是预期,变成乱码!

assume cs:code
code segment
start:mov ax,cs
mov ds,ax
mov ax,0
mov es,ax
mov di,200h
mov si,offset do0
mov cx,offset do0end-offset do0
cld
rep movsb ;将do0程序段复制到0:0200安全段中
mov ax,0
mov es,ax
mov word ptr es:[0*4],200h ;设置定位中断向量表
mov word ptr es:[0*4+2],0
mov ax,4c00h
int 21h
do0:jmp short dstart
buf db 'divide error!$'
dstart:mov ax,cs
mov ds,ax
mov dx,offset buf
mov ah,9h
int 21h
mov ax,4c00h
int 21h
do0end:nop
code ends
end start
本人用win7的,是否是因为win7的兼容问题,还是程序本身出错了?求各位指导!

首先,这种问题其实很简单的,
你在debug里边调试下就可以了观察cs和ip的值
以前看《汇编语言》的时候都写过,有两年了吧,现在看这个又头疼了!!
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜