重庆大学计算机硬件实验:无符号数除法与拆字程序

版权申诉
5星 · 超过95%的资源 2 下载量 38 浏览量 更新于2024-07-03 收藏 421KB DOC 举报
在《计算机硬件技术基础》实验中,主要涉及了三个实验项目:简单程序设计、拆字程序和分支程序设计。下面详细解析每个实验的内容及实现方法。 实验一:简单程序设计实验 该实验的核心任务是编写一个32位无符号数除法程序,具体要求是将存储在`NUM1`中的32位无符号数除以`NUM2`中的16位无符号数。程序利用指令集中的`DIV`操作来完成除法计算,首先将`NUM1`和`NUM2`的地址传入`MOV DX,WORD PTR NUM1 + 2`,然后执行`DIV NUM2`指令。结果被存储在`AX`和`DX`寄存器中,最后将商(AX)和余数(DX)分别赋值给`NUM3`和`NUM4`。参考源程序展示了数据段的定义和代码段的执行流程,包括数据段初始化、数据段指针设置以及调用中断返回DOS系统的部分。 实验二:拆字程序 此实验涉及到对2位十六进制数的操作。程序目标是将`ARY`单元中的16进制数`X1X2`拆分成`X1`和`X2`两部分,并存储在`ARY+1`和`ARY+2`。首先读取`ARY`单元的值到`AL`寄存器,通过位操作(`AND`和`SHR`)提取出高位(`X1`)和低位(`X2`),然后分别存入目标位置。程序结束时调用中断返回DOS系统。 实验三:分支程序设计实验 在这个实验中,设计了一个字符比较程序。它接收三个无符号字节`A`、`B`和`C`,并根据它们的相对大小关系更新变量`K`。比较过程通过`CMP`指令进行,如果三个数不相等,则`K`置0;如果有两个相等,则`K`置1;如果全相等,则`K`置2。整个程序结构简洁,体现了分支控制的基本原理。 这些实验旨在让学生理解计算机硬件的基本操作,熟悉程序设计语言的运用,同时锻炼他们逻辑分析和算法设计的能力。通过实际编写和调试代码,学生可以深入掌握计算机硬件与软件交互的底层原理。