南开大学三级PC上机题100例:正负数数组处理
需积分: 6 45 浏览量
更新于2024-08-02
收藏 716KB DOC 举报
本题是一道关于计算机三级PC语言的编程题目,要求考生编写一个程序,将内存中由SOURCE指示的40个有符号数组元素分成正数和负数两个数组,并统计各自元素个数。结果需按照正数个数在前,然后是正数数组元素,接着是负数个数和负数数组元素的顺序存储在RESULT区域。原始数据通过过程LOAD从文件INPUT1.DAT中读入,而最终的结果则保存到OUTPUT1.DAT文件中。
程序设计需要遵循以下步骤:
1. 定义数据段(DATASEGMENT):
- SOURCE数组用于存放原始数据,长度为40个字节,值为1EH,91H,74H,91H,42H,30H,81H,F3H,18H,25H等。
- RESULT数组用于存放分组后的结果,预留空间比正数和负数元素总数多两个元素。
- 文件名变量NAME0和NAME1分别指向INPUT1.DAT和OUTPUT1.DAT。
2. 定义栈段(STACSEGMENT)和代码段(CODESEGMENT)的初始设置,使用标准段寄存器。
3. 编写主程序(STARTPROCFAR):
- 调用LOAD过程从NAME0指定的文件中读取40个字节的数据到SOURCE地址。
- 初始化处理流程,比如清零AX寄存器,设置附加段寄存器ES指向DATA段。
- 在BEGIN标记处,程序应该开始处理数据,检查每个元素的符号,将其放入相应的数组(正数或负数)。
- 使用指针DI和BX,DI指向PDATA(正数数组缓冲区),初始值为OFFSET PDATA,表示从PDATA开始存放正数。
- 当遍历到所有元素后,统计正数和负数的数量,并更新RESULT数组。
- 将正数数组和正数个数、负数数组和负数个数依次存储到RESULT。
- 调用SAVE过程,将RESULT中的数据保存到NAME1指定的OUTPUT1.DAT文件中。
4. 函数调用:
- EXTRN LOAD:FAR 和 SAVE:FAR 表示这两个过程是外部函数,需要链接IO.OBJ文件以生成可执行文件PROG1.EXE。
5. 要求程序进行汇编和链接,最后生成可执行文件并运行。如果调试过程中发现错误,考生需要修正这些错误以确保程序的正确运行。
本题考核了考生对基本数据结构操作、文件I/O、内存管理以及条件判断等计算机基础知识的理解和应用能力。同时,也要求考生具备良好的程序设计习惯,包括清晰的逻辑结构和错误处理。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-03-26 上传
2011-06-01 上传
2010-03-29 上传
2011-04-15 上传
点击了解资源详情
kalinxu
- 粉丝: 3
- 资源: 13
最新资源
- ES2015:ES2015片段和简短说明
- Android-ListViewDemo.zip_android开发_Java_
- torch_sparse-0.6.11-cp37-cp37m-win_amd64whl.zip
- tinyusb-sys:Rust FFI绑定到tinyusb USB堆栈
- Page Marker-crx插件
- dndhelper:DM的简单工具
- Tea.zip_加密解密_C#_
- 一文彻底搞懂快速幂(原理实现、矩阵快速幂)
- angular-reactions:BuzzfeedOnedio风格的用户React模块作为AngularJS框架的指令
- SpringCloud学习.zip
- BtoBdigitaleconomy
- microfrontend-event-bus
- torch_scatter-2.0.7-cp37-cp37m-macosx_10_9_x86_64whl.zip
- QuantResearchDev:定量加密机器人程序框架
- chatterbox-client
- Timed-rounds-alarm-program.rar_LabView编程_LabView_