昆明理工大学微机原理实验:多位十进制数相加

需积分: 33 2 下载量 113 浏览量 更新于2024-09-13 1 收藏 47KB DOC 举报
“昆明理工大学的微机原理实验课程主要涉及8088汇编语言编程,通过实现两个多位十进制数相加的实验,旨在帮助学生掌握数据传送、算术运算指令的应用,以及理解在PC机上进行程序开发的全过程。” 在微机原理的学习中,8088汇编语言是基础,它是一种低级编程语言,直接对应计算机硬件的指令集。在这个实验中,学生需要编写汇编代码来实现两个多位十进制数的相加。实验的具体步骤包括: 1. **实验目的**: - 学习如何使用数据传送指令,如MOV,来在内存和寄存器之间移动数据。 - 掌握算术运算指令,如ADC(带进位加法)和AAA(ASCII调整),以进行十进制数的加法计算。 - 熟悉PC机上的编程流程,包括汇编、链接、调试和运行8088汇编语言程序。 2. **实验内容**: - 被加数和加数以ASCII码形式分别存储在DATA1和DATA2为首的一系列内存单元中,低位在前。ASCII码是一种字符编码方式,用于表示十进制数字。 - 实验要求将这两个数相加,并将结果存回DATA1区域。 3. **程序框图**: - 程序框图展示了整个运算过程,包括数据的读取、转换、计算和结果显示。其中,使用CX计数,对每个数字位进行操作,并通过ADC指令进行带进位的加法。AAA指令用于调整结果,确保其符合ASCII码表示的十进制数。 4. **程序清单**: - 提供的程序清单包含了一系列宏定义和子程序,如CRLFMACRO用于输出换行符,DISPLPROC用于显示数据,ADDAPROC用于执行加法操作。 - DATASEGMENT和STACKSEGMENT定义了数据段和堆栈段,其中DATA1和DATA2存放十进制数的ASCII码表示,而STACK用于存储程序执行时的临时数据。 - 在主程序中,首先初始化数据段和堆栈段,然后调用DISPLPROC显示原始数据,接着调用ADDAPROC进行加法运算,最后再次显示结果并退出程序。 这个实验不仅锻炼了学生的编程能力,还让他们深入理解了微处理器如何执行基本的算术运算和数据处理,为后续更复杂的系统级编程打下了坚实的基础。通过实际操作,学生能够直观地了解汇编语言编程的实际应用,以及8088处理器的工作机制。