全国计算机三级考试:上机试题编程挑战-求最大值和最小值
需积分: 9 108 浏览量
更新于2024-09-18
收藏 31KB DOC 举报
本题考查的是全国计算机三级考试的上机编程部分,涉及到的是使用汇编语言编写一个程序,目标是在内存中连续存放的二十个无符号字节序列中找到最大值和最小值。考生需要使用ASM汇编语言,以PROG1.ASM为文件名来实现这个功能。
题目要求考生首先定义一个栈段(STACK)和两个数据段,一个用于存储源数据(SOURCE)和原始数据文件名(NAME0),另一个用于存放处理结果(RESULT)。程序需要包含两个外部函数:LOAD用于从文件INPUT1.DAT中读取数据,而SAVE用于将结果保存到OUTPUT1.DAT文件中。
核心部分的代码片段展示了如何初始化和设置数据段的地址,以及如何通过调用LOAD函数从文件中读取数据。接下来的关键步骤是找到最大值和最小值,这部分代码缺失了具体的计算逻辑,考生需要填充空白处(即“LEA____,RESULT”)。这一步通常涉及遍历整个数据区,每次迭代时比较当前元素与已知的最大值和最小值,更新它们的值。
正确操作应该是:
1. 使用指针操作,如LEA(Load Effective Address)指令,将当前指针SI指向的数据地址加载到RESULT的地址上,然后将SI递增,继续遍历。
2. 在每次循环中,检查当前字节是否大于当前最大值,如果是则更新最大值,同时检查是否小于当前最小值,如果是则更新最小值。
3. 遍历完成后,确保最大值在BH寄存器中,最小值在BL寄存器中。
最后,代码应包含一个结束标记(****END****),并正确保存处理结果到RESULT数据段,调用SAVE函数将结果写入OUTPUT1.DAT文件。在程序结尾,应清理栈指针,恢复DS段的默认值,并返回到操作系统。
考生需要确保程序能够正确地编译、链接生成可执行文件PROG1.EXE,并通过调试来确保功能的正确性,因为存在错误的地方可能会影响最终结果的正确输出。整个过程体现了汇编语言的基本控制结构、数据操作和文件I/O操作等技能。
2013-09-25 上传
2011-08-22 上传
点击了解资源详情
2010-09-20 上传
2021-10-09 上传
2013-02-17 上传
2010-01-31 上传
2021-10-02 上传
2021-10-12 上传
mjf5218
- 粉丝: 0
- 资源: 1
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析