课堂练习题(2题)参考解答1
![preview](https://dl-preview.csdnimg.cn/86295181/0001-d91c8e8891ce68ab5e0370702100d298_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
本文主要讨论了两个编程相关的课堂练习题,涵盖了16位汇编语言的程序设计和子程序调用。首先,我们来详细分析第一个题目。 题目一的目标是编写一个汇编程序段,将BX寄存器中的内容以十六进制形式显示在屏幕上。这个程序段包含了一些关键步骤: 1. 保存现场,即保存可能被修改的寄存器(AX、CX、DX)。 2. 初始化计数器CX,这里填充了数字4,因为一个字节由4位二进制组成,我们需要四次循环来转换为十六进制。 3. 使用ROL(rotate left)指令逐位左移BX的内容,每次移位后提取低4位(AND操作)。 4. 检查提取的低4位是否大于9,如果大于9(二进制1001以上),则需要加7,以便转换为A-F的ASCII码。 5. 将处理后的数值加上30H,将其转换为0-9的ASCII码。 6. 使用INT 21H系统调用的2号功能(显示字符)将处理后的字符打印到屏幕上。 7. 在循环中递减CX,检查是否结束,如果未结束则继续循环。 8. 在循环结束后恢复现场,即弹出之前保存的寄存器。 9. 最后,使用RET指令返回到调用者。 在提供的参考解答中,空缺的代码已经填写完整,包括初始化CX(①)、跳转条件(②)、设置AH寄存器(③)、判断循环条件(④)以及返回指令(⑤)。 题目二要求编写一个子程序DISPLAY,该子程序接收CALL指令后的字符串地址,并显示直至遇到0字符为止。在进入子程序时,栈顶保存了被调用指令(CALL)之后的IP地址,即字符串的第一个字符的地址。子程序的主要任务是: 1. 弹出栈顶的IP地址,存储到BX寄存器中。 2. 循环取出BX中的字符,直至遇到0字符。 3. 使用2号INT 21H调用显示字符。 4. 当所有字符显示完毕后,将字符串之后的指令地址推回栈顶,确保RET指令能正确返回到字符串显示后的指令。 提供的解答中,子程序使用POP指令获取字符串首地址,然后通过比较和移动操作显示字符,直到遇到0字符。在显示完字符串后,使用PUSH指令将返回地址放回栈顶,最后使用RET指令返回。 总的来说,这两个练习题涉及了16位汇编语言的基本操作,如寄存器的使用、位操作、循环控制、系统调用以及子程序的设计与调用。这些知识点对于理解底层计算机程序的运行机制至关重要,也是学习汇编语言的基础。
![](https://csdnimg.cn/release/download_crawler_static/86295181/bg1.jpg)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![csv](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
- 粉丝: 44
- 资源: 308
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
评论0