汇编语言作业 I/O 程序设计实验: 编程:编写一个被 0 除的中断处理程序并测试,当被 0 除时,显示一个提示信息 “Divided by Zero”,中断类型号为 0
时间: 2024-03-15 10:44:59 浏览: 69
基于汇编语言及程序设计实现的实验【100013040】
好的,以下是汇编语言的代码实现:
```assembly
org 0x100
jmp start
; 中断处理程序
div_zero:
push ax
push bx
push dx
push cx
mov ah, 0x0e ; BIOS中断:显示字符
mov al, 'D' ; 显示 "D" 字符
int 0x10
mov al, 'i' ; 显示 "i" 字符
int 0x10
mov al, 'v' ; 显示 "v" 字符
int 0x10
mov al, 'i' ; 显示 "i" 字符
int 0x10
mov al, 'd' ; 显示 "d" 字符
int 0x10
mov al, 'e' ; 显示 "e" 字符
int 0x10
mov al, 'd' ; 显示 "d" 字符
int 0x10
mov al, ' ' ; 显示空格字符
int 0x10
mov al, 'b' ; 显示 "b" 字符
int 0x10
mov al, 'y' ; 显示 "y" 字符
int 0x10
mov al, ' ' ; 显示空格字符
int 0x10
mov al, 'z' ; 显示 "z" 字符
int 0x10
mov al, 'e' ; 显示 "e" 字符
int 0x10
mov al, 'r' ; 显示 "r" 字符
int 0x10
mov al, 'o' ; 显示 "o" 字符
int 0x10
mov al, 0x0d ; 换行
int 0x10
mov al, 0x0a ; 换行
int 0x10
pop cx
pop dx
pop bx
pop ax
iret
; 初始化程序
start:
mov ax, 0
mov bx, 0
div bx ; 故意被 0 除以触发中断
; 设置中断向量表
mov word [0x00], div_zero
mov word [0x02], cs
; 触发中断
int 0x00
; 无限循环
jmp $
```
运行该程序时,当被 0 除时,会触发中断处理程序,显示 "Divided by Zero" 提示信息。
阅读全文