南开大学三级PC考试:数组处理程序设计

需积分: 6 0 下载量 30 浏览量 更新于2024-10-25 收藏 716KB DOC 举报
"南开100题,3级pc" 该题目是针对计算机三级考试的一个编程题目,主要考察考生的汇编语言编程能力。题目要求编写一个程序,该程序能够处理内存中由SOURCE指向的40个字节的有符号整数数组,将数组分为正数和负数两个子数组,并计算出各自的元素个数。结果应存储在RESULT指定的内存区域,以特定的格式:首先存放正数的个数,然后是正数数组元素,接着是负数的个数,最后是负数数组元素。 已给出的部分程序中,数据段定义了SOURCE和RESULT两个变量,分别用于存放原始数组和处理后的结果。此外,还有NAME0和NAME1用于存放输入和输出文件的名称,以及NDAT和PDAT用于临时存放数据。代码段中,程序首先设置了数据段和附加段寄存器,并通过LOAD过程从名为'INPUT1.DAT'的文件中读取数据到SOURCE数组。 在给定的代码段中,"****BEGIN****"标记处是需要填写或修改的代码部分,这部分程序应该实现以下功能: 1. 遍历SOURCE数组,判断每个元素的正负。 2. 将正数存储到PDATA缓冲区,负数存储到另一缓冲区。 3. 计算正数和负数的个数。 4. 将计数结果存放在RESULT的前两个字节,正数个数在前,负数个数在后。 5. 将正数和负数数组元素按照要求的顺序存放在RESULT的剩余部分。 6. 最后,调用SAVE过程将结果保存到名为'OUTPUT1.DAT'的文件中。 完成这些任务时,可以使用循环结构和条件判断语句,如JGE(大于等于转移)和JL(小于转移)来区分正负数。同时,需要动态更新存放正数和负数计数的变量。注意,程序需要确保所有操作都在限制的内存和指令数量内完成,并且在完成后能够正确地保存结果。 由于题目要求的程序实现未给出,因此无法提供完整的代码实现。但是,考生需要根据以上分析,结合题目给出的程序框架,编写符合要求的汇编代码,确保程序能正确运行并产生符合格式的结果。如果在调试过程中发现程序有错误,需要进行修正以保证程序的正确性。