安装实验13.2的中断程序,问题很奇怪,之前一直运行正确,今天结果就不正确了,不知道错在哪里,我是在windows的command下面运用的debug,不知道是不是系统本身问题,之前做课程设计1的时候也很奇怪(写数据的显存地址b800:0000有时候不能显示数据,而设定成其他比如B81E:0000就可以)。所以我像看看装了虚拟机的朋友们,看看这个程序有没有什么问题??谢谢
代码如下:
assume cs:codesg
codesg segment
;==安装中断程序==
start: mov ax,cs
mov ds,ax
mov si,offset do
mov ax,0
mov es,ax
mov di,200h
mov cx,offset doend-offset do
cld
rep movsb
;==设置中断向量==
mov ax,0
mov ds,ax
mov word ptr ds:[7ch*4+0],200h
mov word ptr ds:[7ch*4+2],0
mov ah,4ch
int 21h
;==中断程序==
do: push bp
dec cx
jcxz s
mov bp,sp
add [bp+2],bx ;bp的默认寄存器是ss
s: pop bp
iret
doend: nop
codesg ends
end start |