汇编语言程序设计实验指南:DEBUG调试与屏幕显示

版权申诉
0 下载量 152 浏览量 更新于2024-06-28 收藏 531KB DOCX 举报
"《微机原理与接口通信》之汇编语言程序设计实验指导文档,主要涉及汇编语言的基础知识,包括DEBUG工具的使用、汇编指令的理解、程序设计及调试,以及8086处理器的双字操作数循环左移和在屏幕上显示英文信息的技巧。" 实验一的目的是让学习者掌握DEBUG工具的常用命令,理解汇编指令的寻址方式和对标志位的影响,以及如何编写、调试和运行汇编语言程序。提供的程序示例中,`X`, `Y`, 和 `Z` 是数据段中的变量,`DD` 用于定义双字节数据。实验问题涉及程序功能分析、数据地址计算、指令寻址方式和程序执行流程。 1) 程序的功能是将X和Y中的双字节数据相加并存储到Z中。它首先将DS段寄存器设置为DATA段,然后通过DI寄存器访问Z的地址,将X和Y的值相加,并将结果存储回Z的位置。 2) 数据标号X的地址(偏移量)为0,Y的地址为2,Z的地址为4,这是根据DATASEGMENT中定义的数据顺序计算得出的。 3) 程序中源操作数和目的操作数的寻址方式如下: - `MOV AX, DATA`:立即寻址,AX = DS段基址。 - `MOV DS, AX`:寄存器寻址,DS = AX。 - `MOV DI, OFFSET Z`:偏移寻址,DI = Z的偏移地址。 - `MOV AX, WORD PTR X`:直接寻址,AX = X的双字节值。 - `MOV AX, WORD PTR Y`:直接寻址,AX = Y的双字节值。 - `MOV [DI], AX`:间接寻址,存储AX到Z的地址。 - `ADD AX, WORD PTR X[2]`:直接寻址,AX = AX + X的高字节。 - `ADC AX, WORD PTR Y[2]`:直接寻址,AX = AX + Y的高字节,带进位。 - `MOV [DI+2], AX`:间接寻址,存储AX到Z的高字节位置。 4) 标号EXIT后的两条指令完成程序的退出。`INT 21H`是调用DOS中断,其中`AX=4C00H`是退出程序的功能码,表示程序正常结束。 5) 在EXIT处设置断点并检查Z的内容,可以验证程序是否正确执行了加法操作并将结果存储到Z中。 实验二要求实现8086指令下的双字操作数X的内容循环左移N位。循环左移可以通过多次执行单位左移并处理进位来实现,示例代码给出了对DX:AX左移1位的步骤,对于N位左移,需要将这个过程重复N次。 实验三的编程任务是使用DOS功能调用在屏幕上显示英文信息。数据段中定义了一个字符串`MESSDB`,包含要显示的文本和结束标记`'$'`。DOS功能调用9是输出字符串功能,通过AX寄存器传递字符串的地址,即可在屏幕上显示信息。