王爽《汇编语言》实验12:编写0号中断的处理程序 解答

时间:2022-06-22 01:14:16
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
	mov cx,offset do0end-offset do0
	cld
	rep movsb

	mov word ptr es:[0*4],200h
	mov word ptr es:[0*4+2],0
	
	mov ax,4c00h
	int 21h

do0:
	jmp short do0start
	db "divide error!"

do0start:
	mov ax,cs ;中断后cs为0,ip为200h
	mov ds,ax
	mov si,202h

	mov ax,0b800h
	mov es,ax
	mov di,12*160+33*2
	mov cx,13
s:
	mov al,[si]
	mov es:[di],al
	inc si
	add di,2
	loop s

	mov ax,4c00h
	int 21h

do0end:nop

code ends
end start


运行程序,然后再运行下面程序可以看到运行结果:
assume cs:code
code segment
start:
	mov ax,1000h
	mov bh,1
	div bh
code ends
end start