王爽< 汇编语言>实验十二

 1 ;此乃安装程序
 2 ;功能:将8086cpu中断类型码为0 的中断向量设置为我们编写的中断服务程序入口地址
 3 ;该中断在除法发送溢出的时候产生
 4 
 5 assume cs:code
 6 code segment
 7 main:
 8           mov ax,cs
 9           mov ds,ax
10           mov si,offset do    ;设置ds:si指向源地址
11          
12           mov ax,0
13           mov es,ax
14           mov di,200h         ;设置es:di指向目的地址
15          
16           mov cx,offset doend - offset do ;"-" 是编译器识别的运算符号,编译器可以用它来进行两个常数的减法
17                                                             ;设置cx为传输长度
18          
19           cld                 ;设置传输方向为正
20          
21           rep movsb                              ;开始传送
22          
23          
24           mov ax,0
25           mov es,ax
26           mov word ptr es:[0*4],200h
27           mov word ptr es:[0*4+2],0
28          
29          
30           mov ax,4c00h
31           int 21h
32          
33 do:
34           jmp short doo
35           db "divide error!"
36 doo:         
37           mov ax,cs
38           mov ds,ax
39           mov si,202h         ;设置ds:si指向字符串
40          
41           mov ax,0b800h
42           mov es,ax
43           mov di,12*160+30*2  ;设置es:di指向显存空间的中间位置
44          
45           mov cx,13           ;设置cx为字符串长度
46 
47 s:    
48           mov al,[si]
49           mov es:[di],al
50           inc si
51           add di,2
52           loop s
53          
54           mov ax,4c00h
55           int 21h
56 doend:
57           nop
58 code ends
59      end main
60 
61 ;产生除法溢出的程序
62 ;assume cs:code
63 ;code segment
64 ;main:
65 ;          mov ax,1000
66 ;          mov bh,1
67 ;          div bh
68 ;          mov ax,4c00h
69 ;          int 21h
70 ;code ends
71 ;     end main
View Code

 

posted @ 2014-12-20 15:44  预兆ZeD  阅读(140)  评论(0编辑  收藏  举报