王爽 汇编 实验12

主要思路:  1.将中断的处理程序以数据方式写入到内存中.(显示overflow字符串.)

      2.修改中断向量表的值,使0号表项指向中断处理程序的开始地址

        3.开始除法运算,引发除法溢出错误.     

 1 assume cs:codeseg
 2 
 3 data segment
 4     db 16 dup (0)
 5 data ends
 6 codeseg segment
 7     start:
 8         ;do0程序的安装,将do0程序写入到内存0:200处
 9         mov ax,cs
10         mov ds,ax
11         mov si,offset do0    
12         mov ax,0
13         mov es,ax
14         mov di,200h
15         mov cx,offset do0end-offset do0    ;算出cx要循环的长度
16         cld            ;正向
17         rep movsb
18         
19         ;将do0的入口地址送入中断向量表0号表中.
20         mov ax,0
21         mov es,ax
22         mov word ptr es:[4*0],200h    ;低地址存放偏移地址
23         mov word ptr es:[4*0+2],0    ;高地址存放段地址
24                                     
25         mov ax,1000h    ;进行除法运算,引发除法溢出错误.
26         mov bh,1
27         div bh
28         
29         mov ax,4c00h
30         int 21h
31             
32         ;显示字符串
33         do0:jmp short do0start
34             db "overflow tri"
35         do0start:
36             mov ax,cs
37             mov ds,ax
38             mov si,202h
39             
40             mov ax,0b800h
41             mov es,ax
42             mov di,12*160+36*2
43             
44             mov bl,42h
45             mov cx,12        ;共12个字符
46         s:    mov al,[si]
47             mov es:[di],al        
48             mov es:[di+1],bl    ;设置字符颜色为红底绿字
49             inc si
50             add di,2            ;一个字符占两字节.低位ASCII码.高位字符属性
51             loop s
52         
53             mov ax,4c00h
54             int 21h
55         do0end:nop        
56         
57 codeseg ends
58 
59 end start

 

转载于:https://www.cnblogs.com/Triomphe/p/8686013.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值