北邮微机原理软件实验报告

2026/4/29 22:34:20

.

INPUT输入 CHECK检错 COM排序 DISPY显示 4.给出输出显示的形式.

Num,rank,scor分别表示学生的学号,排名和分数。

实验五 子程序设计

一. 实验目的

1.初步掌握中断程序的设计方法。

2.初步掌握修改 DOS 系统中断,以适应实际使用的方法。 二. 实验内容

1.编写一个 32 位二进制数除以 16 位二进制数的除法程序.观察当除数为 0,或超过相应寄存器范围时,程序执行的结果。 2.修改零号中断服务程序,使它具有以下功能:

(1)判断除数是否为 0,当除数为 0 时,显示相应的结果。

(2)当除数不为 0 时,采用适当的方法完成商超过 16 位的二进制数的除法运算。

3.注意必须保护原有中断服务程序的入口地址,并在程序完毕前加以恢复。

Word 资料

.

三.流程图

开始 初始化界面 修改0号中断向量表 输入除数,被除数 检错 false true 除法 Y N 除数为0 溢出 Y 32位扩展 N 输出结果 恢复0号中断向量表 结束 Word 资料

.

四.源代码

DATA SEGMENT

message db 0AH,0DH,'divisor equals 0.',0dh,0ah,'$' message1 DB 0AH,0DH,' input error',0DH,0AH,'$'

message2 DB 'PLEASE INPUT THE DIVIDEND (32)',0AH,0DH,'$'

message3 DB 0AH,0DH,'PLEASE INPUT THE DIVISOR (16)',0AH,0DH,'$' message4 DB 0AH,0DH,'THE QUOTIENT IS:','$' message5 DB 0AH,0DH,'THE REMAINDER IS:','$' DATA ENDS

STACK SEGMENT STACK 'STACK' STACK ENDS

CODE SEGMENT ;代码段 ASSUME CS:CODE, SS:STACK ,DS:DATA start proc far push ds mov ax,0 push ax mov ax,data mov ds,ax sti ;TF中断标志置1 mov al,0 ;保存原中断向量 mov ah,35h int 21h push es push bx push dx ;写中断向量 mov ax,seg int00 mov ds,ax mov dx,offset int00 mov al,0 mov ah,25h int 21h pop ds mov ah,09h mov dx,seg message2 ;提示输入32位二进制0或1 mov ds,dx mov dx,offset message2 int 21h mov cx,10h mov ax,0000h push ax a1: mov ah,01h

Word 资料

.

int 21h cmp al,'0' jz a2 cmp al,'1'

jnz error1 stc rcl dx,1

loop a1 jmp a3 a2: clc rcl dx,1 loop a1 a3: mov cx,10h a4: mov ah,01h int 21h cmp al,'0' jz a5 cmp al,'1' jnz error2 stc pop ax rcl ax,1 push ax loop a4 jmp a6 a5: pop ax clc rcl ax,1 push ax loop a4 a6: mov ah,09h mov dx,seg message3 mov ds,dx mov dx,offset message3 int 21h mov cx,10h a7: mov ah,01h int 21h cmp al,'0' jz a8 cmp al,'1' jnz error2

Word 资料

;输入数字与0比较 ;输入数字与1比较

;输入有误则跳错误显示程序 ;为1则将CF置1 ;dx左移,移进一个1

;为0则将CF置0 ;dx左移,移进一个0

;提示输入16位0或1除数


北邮微机原理软件实验报告.doc 将本文的Word文档下载到电脑
搜索更多关于: 北邮微机原理软件实验报告 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219