- 2
- 0
- 约4.77千字
- 约 10页
- 2019-09-27 发布于广东
- 举报
实验五中断程序设计
一、 实验目的
初步掌握中断程序的设计方法;
初步掌握修改DOS系统中断,以适应实际使用的方法。
二、 实验内容
编写一个32位二进制数除以16位二进制数的除法程序。观察当除数为0, 或超过相应寄存器范围时,程序执行的结果。
修改零号中断服务程序,使它具有以下功能:
1) 判断除数是否为0,当除数为0时,显示相应的结果;
2) 当除数不为0时,采用适当的方法完成商超过16位的二进制数的除法 运算。
注意必须保护原有中断服务程序的入口地址,并在程序完毕前加以恢复。
选作题:
1) 用二进制将结果在屏幕上显示。
2) 从键盘输入二进制数。
三、 预习思考
如何保护原有中断向量表中的中断服务程序的入口地址?
答:先读取中断向量表中0号中断的地址,压入堆栈,程序结束时弹出堆 栈,写回中断向量表即可。
如何将你的中断服务程序入口地址置入中断向量表?
答:有两种基本方法:一是直接写入法,使用指令将中断服务程序入口地 址的IP写入nX4的RAM位置,中断服务程序入口的CS写入nX4+2的 位置;二是DOS功能调用,25H用來写屮断向量表,35H读屮断向量表。
四、实验过程
(―)流程图
(二)源代码
DATA SEGMENT
XX DD ?;被除数 32bit
YY DW ?;除数 16bit
TMP DW ?
FLAG DB 0 ;是否调用了中断处理程序的标志位,即是否溢出 ;一些提示信息
ERR0 DB 1 ERROR! Divide by ZERO! 1 , 1 $1
TIPI
DB
1 Quotient
:
TIP2
DB
1 Remainder:
TIP3
DB
1 Input high
16-bit
of dividend:* z * $
TIP4
DB
1 Input low
16-bit
of dividend: z * $ 1
TIP5
DB
1 Input 16-bit divisor:1z 1 $ 1
CR DB ODH,OAHJ$T 回车换行
ONE DB ?$
ZER DB *0, ?$
TAB DB 09H, $
BUFF DB 17 ;输入缓冲区,可容纳包括回车在内的17个字符
PRES DB 0
CHAR DB 17 DUP(0)
DATA ENDS
;定义堆栈
STACK SEGMENT STACK STACK1
DB 100 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE,ES:CODE,SS:STACK ;打印字符串的宏
PRINT MACRO PARA
PUSH AX
PUSH
DX
MOV
AH,09H
MOV
DXZOFFSET PARA
INT
21H
POP
DX
POP
AX
ENDM
f
;主程序入口
MAIN:
MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV ES,AX
;保存原中断向量表
MOV AX,WORD PTR ES:[0000H]
PUSH AX
MOV AX,WORD PTR ES:[0002H]
PUSH AX
;写入新的中断处理子程序地址
MOV WORD PTR ES:[0000H],OFFSET INTO
MOV WORD PTR ES:[0002H],SEG INTO
CALL INPUT;获取输入
MOV DX, WORD PTR XX; 移入被除数高16位
MOV AX, WORD PTR XX+2;移入被除数低16位
MOV BXZ YY ;移入除数
DIV BX;进行32位除法运算
CMP FLAG,。;查看是否调用了中断处理程序,即可判断是否溢出
JNE ISOF;溢出跳转,到扩充除法的结果输出
;否则直接输出没有溢出的正常除法结果
PRINT TIPI
MOV BX,AX
CALL DISP2
PRINT CR
PRINT TIP2
MOV BX,DX
CALL DISP2
JMP EOP
;有溢出的时候需要输出32位商和16位余数
ISOF:
PRINT TIPI
MOV BX,DX
CALL DISP2
MOV BX,AX
CALL DISP2
PRINT CR
PRINT TIP2
MOV BX,CX
CALL DISP2
EOP:
POP AX;程序结束出口
;恢复中断向量表
MOV
WORD
PTR ES:[0002H],AX
POP
AX
MOV
WORD
PTR
ES: [0000H]
,AX
MOV
AX,4C00H;
返回DOS
INT
21H
;新的0号中断子程序
INTO :
POP SI
ADD SI, 2;修改:LP的值,指向DIV后的指令
PUSH SI
CMP BX, 0;判断除数是否为0
JE DIV0;为零则提示除数为
您可能关注的文档
- 北齐小学故事演讲比赛方案.docx
- 北企星合伙人策划案.docx
- 北区技专校院区域教学资源中心.docx
- 北山街小学消防安全隐患排查活动报告.docx
- 北山完成的施工方案.docx
- 北舍小学素质教论大讨论发言稿.docx
- 北师大初一一元一次方程.docx
- 北师大附属实验中学高三月考.docx
- 北师大骨干教师培训心得赵顺利.docx
- 北师大教材中考提升训练.docx
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- 准噶尔盆地南缘山前带石油地质综合评价.pdf VIP
- 2012届松江区高三英语二模试卷.doc VIP
- 2012奉贤区高三二模英语含答案.doc VIP
- 云南大学博士、硕士研究生学位论文写作规范-2025.docx VIP
- 2008学年奉贤区调研测试高三英语试卷及答案.doc VIP
- 最新人教版六年级上册数学1-8单元单元测试卷及期中期末卷(含答案).pdf VIP
- [黄浦区2009学年度第一学期期终基础学业测评高三英语附答案.doc VIP
- 2025至2030中国C反应蛋白(CRP)试验行业产业运行态势及投资规划深度研究报告.docx
- 2009学年奉贤区调研测试高三英语试卷(附答案).doc VIP
- 噬神者:爆裂 怪物素材获取方法.pdf VIP
原创力文档

文档评论(0)