[计算机类试卷]PC技术机试模拟试卷81及答案与解析.doc

上传人:orderah291 文档编号:493499 上传时间:2018-11-28 格式:DOC 页数:4 大小:115KB
下载 相关 举报
[计算机类试卷]PC技术机试模拟试卷81及答案与解析.doc_第1页
第1页 / 共4页
[计算机类试卷]PC技术机试模拟试卷81及答案与解析.doc_第2页
第2页 / 共4页
[计算机类试卷]PC技术机试模拟试卷81及答案与解析.doc_第3页
第3页 / 共4页
[计算机类试卷]PC技术机试模拟试卷81及答案与解析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、PC技术机试模拟试卷 81及答案与解析 一、程序设计题 1 请编制程序,其功能是:内存中连续存放着 20个无符号字节数序列,请将它们排成升序 (从小到大 )。 例如: 内存中有 01H,04H,02H( 假设后 17个字节均大与04H) 结果为 01H,02H,04H( 后跟 17个字节,按从小到大的顺序排列 ) 部分程序已给出,其中原始数据由过程 LOAD从文件 INPUT1.DAT中读入 SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放,由过程 SAVE保存到文件OUTPUT1.DAT中。 请填空 BEGIN和 END之间已给出的源程序使其完整 (空白已用横线标出,每个空

2、白一般只需一条指令,但采用功能相当的多条指令亦可 ),或删除 BEGIN和 END之间原有的代码并白行编程来完成所要求的功能。 对程序必须进行汇编,并与 IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。 试题程序:PC技术机试模拟试卷 81答案与解析 一、程序设计题 1 【正确答案】 (1)INC DI (2)NEXT0 (3)N-1 (4)SB (5)NEXT3 (6)AL (7)NEXT2 (8)BX (9)NEXT1 【试题解析】 此程序是用冒泡排序法实现一个含 20个无符号数的序列的升序排序的功能。冒泡排序方法为:将第一个数据与相邻

3、的数进行比较,若次序不对,两数交换位置。依次类推,直至第 N-1个数和第 N个数进行过比较为止。上述过程称为第一趟冒泡排序。第一趟冒泡排序经过 N-1次比较后,最大的数已经到了数组尾,第二趟仅需比较 N-2次比较就够了,一共比较 N-1趟就完成了排序。这样共有两重循环: CX是内循环次数,而 BX是外循环次数。 程序的堆栈段定义了一个 128字节的堆栈区堆栈段下面是数据段数据段中定义了四个字节型变量:原始数据区 SOURCE、结果数据区 RESULT、原始数据文件名 NAME0、结果数据文件名 NAMEI。数据段下面是代码段,告诉汇编程序,代码段。数据段和堆栈段分别属于段寄存器 CS、 DS,

4、 SS。 先将原始数据的偏移地址装入到 SI中,结果数据存放的偏移地址装入到 DI中。CX赋初值为 N,用于控制循环处理的次数。 NEXT0段,将 SI中内容送 AL,再将 AL存入到 DI中。然后 SI地址加 1, DI地址加 1。所以第 (1)空填写 “INC DI“。继续取数据 AL,存数据,从入口处NEXT0循环。所以第 (2)空填写 “NEXT0“。 CLD指令是将方向标志 DF清 0,在数据操作时,实现地址指针自动增量。第 (3)空是给 BX赋初值 N-1。因为外循环需要比较 N-1趟。 NEXT1段,将结果数据地址装入到 SI中, BC赋值给 CX。 NEXT2段,是开始做一趟内

5、的比较。第 (4)空是考查 LODSB指令,是将 SI作为地址指针中的数据装入到 AI中,同时修改 SI, SI地址加 1,指向下一个元素。将AL与下一元素 SI做比较,若 SI大于 等于 AL,则转向 NEXT3;否则,将 AL与SI交换。第 (5)、 (6)空分别填写 “NEXT3“,“AL“。 AL与 SI交换后,再将送 SI-1)中。 NEXT3段,当完成一趟内的相邻两个数的比较后,从 NEXT2入口处循环,在该趟内,将 AL继续与其他数的比较。所以第 (7)空填写 “NEXT2“。每次完成一趟比较, BX应减 1,若 BX不为 0,则继续进行外循环,进行第二趟比较,循环入口处是 NEXT1。所以第 (8)空和第 (9)空分别填写 “BX“,“NEXT1“。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1