汇编王爽老师实验12,显示0号除法溢出中断

  整个程序不能脱离dosbox,在dosbox中触发中断。本程序的思路是:
  先编写0号中断子程序;
  在主程序中运用传送方法把中断子程序传送至内存段:1设置传送的起点2设置传送的终点3设置传送的代码段长度4设置传送的方向5rep 启动传送6修正中断向量表,使某个类型指向中断程序
  在主程序中运算1000 除以1 ,触发中断

assume cs:code
code segment
main:
	mov ax,cs
	mov ds,ax
	mov si,offset rupt0;设置传送的起点

	mov ax,0
	mov es,ax
	mov di,200h;设置传送的终点
	
	mov cx,offset rupt0end - offset rupt0
	cld
	rep movsb;完成传送中断程序
	
	mov ax,0
	mov es,ax
	mov word ptr es:[0],200h
	mov word ptr es:[2],0;修改向量表
	
	mov ax,1000h
	mov bh,1
	div bh;实验除法溢出
	
	mov ax,4c00h
	int 21h
	
	rupt0:
		jmp short go
		db 'overflow!'
	
		go:
			mov ax,cs
			mov ds,ax
			mov si,0202h;设置源数据
	
			mov ax,0b800h
			mov es,ax
			mov di,160*12+32*2;设置显存中显示位置
	
			mov cx,9
			lp:
				mov al,ds:[si]
				mov es:[di],al
				inc si
				add di,2
			loop lp
			
			mov ax,4c00h
			int 21h
	rupt0end:nop
code ends
end main

  显示效果如下:
在这里插入图片描述

  谢谢阅读

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值