汇编实验:子程序设计与16进制数排序
需积分: 15 187 浏览量
更新于2024-09-11
1
收藏 97KB DOC 举报
"汇编语言程序设计实验报告,实验三关注子程序结构和设计,旨在深化对顺序、分支、循环结构的理解,以及掌握子程序、键盘输入和屏幕输出的中断调用。实验要求使用具备命令提示符的Windows系统,安装汇编语言编程环境,预先编写源程序,并通过IDE进行调试。实验内容包括从键盘接收20个16进制无符号数,进行输入显示及排序后再显示。"
实验中的主要知识点包括:
1. 汇编语言基础:汇编语言是一种低级编程语言,与机器代码直接对应,用于编写计算机程序。在这个实验中,学生们需要理解和使用汇编指令来实现数据的读取、存储、处理和显示。
2. 子程序设计:子程序是程序设计中的一个关键概念,它是一段可重复使用的代码块,可以被主程序多次调用。实验中,`getarray`、`output`和`sort`就是这样的子程序,分别负责获取输入数组、显示数组和排序数组。
3. 数据段(Datasegment):在汇编语言中,数据段用于定义和存储程序中的常量、变量等数据。在示例中,`arraydb20dup(?)`定义了一个20个字节的数组,用于存储输入的16进制数。
4. 字符串常量:`mess1` 和 `mess2` 是两个字符串常量,分别用于显示提示信息,`db` 用于定义字节数据,`$` 表示当前地址。
5. 代码段(Codesegment):代码段包含了程序执行的指令。`Assume cs:code, ds:data` 指定了代码段和数据段的段寄存器。
6. 中断调用:`int 21h` 是DOS中断,用于进行I/O操作,如屏幕输出和键盘输入。在这里,`int 21h` 被用来显示提示信息和接收键盘输入。
7. 键盘输入:实验中,`getarray`子程序可能使用了键盘中断来接收用户输入的16进制数。通常,这涉及到读取键盘缓冲区,解析输入并将其转换为16进制数。
8. 屏幕输出:使用`int 21h` 的9号功能调用来显示字符串,如`mov ah, 9` 和 `int 21h` 结合`dx` 寄存器中存储的字符串地址。
9. 数组处理:在`sort`子程序中,需要实现排序算法,如冒泡排序或快速排序,将输入的16进制数由大到小排列。
10. 循环与条件分支:在处理输入和排序过程中,循环结构(如`for`或`while`)和条件分支(如`if...else`)是必不可少的,用于重复执行特定操作和根据条件改变程序流程。
11. 程序结束:最后,使用`mov ax, 4c00h` 和 `int 21h` 结束程序执行,这是DOS的退出程序中断。
这个实验涵盖了汇编语言的基础知识,同时也强调了程序设计中的模块化思想,通过子程序的编写和调用来实现功能,有助于提升学生的程序设计能力。
2008-06-15 上传
157 浏览量
2021-10-14 上传
2021-12-21 上传
2021-11-06 上传
2021-03-19 上传
2011-06-10 上传
2022-06-16 上传
2018-11-06 上传
皓歌
- 粉丝: 0
- 资源: 13
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章