汇编语言程序设计实验指南:DEBUG调试与屏幕显示
版权申诉
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寄存器传递字符串的地址,即可在屏幕上显示信息。
2022-12-17 上传
2022-06-26 上传
2022-11-29 上传
2022-12-17 上传
2022-12-19 上传
2022-12-17 上传
G11176593
- 粉丝: 6862
- 资源: 3万+
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析