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

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

1、PC技术机试模拟试卷 4及答案与解析 一、程序设计题 1 请编制程序,将内存中连续存放着的 10个无符号 16位二进制数,采用近似计算法求此 10个数的近似平方根。方法为:令某个数 X依次减去 1, 3, 5, 7, 9等奇数,一直减到差值刚刚小于等于 0为止。计算出所做的减法的次数 Y,即为该数的近似平方根。把得到结果并依次存放到内存当中。 例如:内存中: 0010H, 0100H, 0200H 近似方根: 0004H, 0010H, 0016H 部分程序已经在 PROG1中给出,其中原始数据由过程 LOAD从文件INPUT1.DAT中读入,存放在 SOURCE开始的内存单元中,转换结果存放

2、在RESULT开始的内存单元中,并由过程 SAVE保存到文件 OUTPUT1.DAT文件中。 对 BEGIN和 END之间已经给出的源程序填空,使其完整,填空处已经用横线标出,每个空白一般只需填一条指令或指令的一部分;考生也可填入功能相当的多条指令,或删去 BEGIN和 END之间原有的代码自行编制程序完成相应的要求。 对程序必须进行汇编并与 IO.OBJ连接产生可执行文件,最终运行程序产生结果(无结果和结果不正确均不得分 )。 部分源程序如下: EXTRN LOAD:FAR,SAVE:FAR N EQU 10 STACK SEGMENT DB 128 DUP(?) STACK ENDS DA

3、TA SEGMENT SOURCE DW N DUP(?) RESULT DW N DUP(0) NAMED DB INPUT1. DAT, NAME1 DB OUTPUT1. DAT, DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS : DATA,SS : STACK START PROC FAR PUSH DS XOR AX, AX PUSH AX MOV AX, DATA MOV DS; AX LEA DX, SOURCE LEA SI, NAMFO MOV CX, N * 2 CALL LOAD *BEGIN* LEA DI, RESULT LEA

4、 SI, SOURCE MOV CX, N LOOP0: MOV AX, SI MOV BX, 0 LOOP1: (1) SUB AX, BX (2) , STORE0 (3) IMP LOOP1 STOREO: INC BX (4) MOV DI, BX INC DI (5) INC SI (6) , LOOP LOOP0 *END* LEA DX, RESULT LEA SI, NAME1 MOV CX, N * 2 CALL SAVE RET START ENDP CODE ENDS END START 相关知识: 循环程序设计 利用重复控制指令可以实现重复操作,能简化程序、节约存储空间

5、。循环程序分为三部分:初始化部分为循环做准备;循环控制部分判断循环条件是否满足,是否继续循环操作;循环体部分完成要循环操作的具体工作。对于复杂问题,单重循环程序往往不能满足要求,循环中常常还需要有其他循环程序。值得注意的是内层循环和外层循环之间应有各自的控制条件,当从外层循环进入到内层循环时,内层循环的初始条件应该重新设置。 (1)五条件循环指令 格式: LOOP DST 该指令的功能是,程序执行到此处, CX的内容减 1,若 CX的内容不为 0,则转到目标地址处继续执行指令,否则执行该指令的下一条指令。 (2)条件循环指令 (I)格式: LOOPZ/LOOPE DST 该指令执行后,如果零标

6、志位为 1,且 CX内容减 1后不等于 0,则转移到目标地址处继续执行指令,否则执行循环指令后的一条指令,即零标志位为 0或 CX内容为 0时退出循环。 (ii)格式: LOOPNZ LOOPNE DST 该指令执行时, CX内容减 1,然后根据零标志位和 CX内容决定是否循环。 若零标志位为 1,或 CX内容为 0时退出循环,否则零标志位等 0且 CX内容不等于0,则转移到转移指令的目标地址处继续执行。 编程思路: 第一步:分析程序要求的功能。 本程序需要完成以下功能: (1)从数据文件 INPUT1.DAT中读取 10个 16位无符号整数存放在 SOURCE开始的内存单元中。 (2)将 S

7、OURCE开始的 10个字单元中的无符号整数,利用减奇数的方法求近似方根,并将结果存放在 RESULT开始的内存单元中。 (3)将方根结果存放在 OUTPUT1.DAT中。 第二 步:用相应的汇编程序来实现其功能。 (1)数据的读取和存入文件的实现,题目中已经给出。 (2)对于一个数的方根近似求解,题目中叙述了具体的实现方法, VCB依次减 1,3, 5 直至差小于等于 0,求差次数即为方根。 通过阅读题目中的汇编源代码,我们可以看出,将内存中的数读入 AX,然后循环减 BX中的内容。这样我们可判断出减数 1, 3, 5 是存放在 BX中的, BX的初始值为 1,每执行完一次减操作, BX的内容就应该加 2。我们始终没有发现哪一个寄存器是用来计数进行减操作次数的,可实际上 BX的内容与减操 作的次数是有关的,减操作的次数为 (BX)+1) 2。观察出这些特征后,我们就可容易填出空格处的答案了。 PC技术机试模拟试卷 4答案与解析 一、程序设计题 1 【正确答案】 (1) INC BX (2) JNA (3) INC BX (4) SUR BX, 1 (5) INC DI (6) INC SI

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

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

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