【计算机类职业资格】三级PC技术机试-89及答案解析.doc
《【计算机类职业资格】三级PC技术机试-89及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】三级PC技术机试-89及答案解析.doc(6页珍藏版)》请在麦多课文档分享上搜索。
1、三级 PC技术机试-89 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序,将内存中连续存放着的 10个无符号 16位二进制数,采用近似计算法求此 10个数的近似平方根。方法为:令某个数 X依次减去 1,3,5,7,9等奇数,一直减到差值刚刚小于等于 0为止。计算出所做的减法的次数 Y,即为该数的近似平方根。把得到结果并依次存放到内存当中。例如:内存中:0010H,0100H,0200H近似方根:0004H,0010H,0016H部分程序已经在 PROG1中给出,其中原始数据由过程 LOAD从文件 INPUT1.DAT中读入,存放
2、在 SOURCE开始的内存单元中,转换结果存放在 RESULT开始的内存单元中,并由过程 SAVE保存到文件 OUTPUT1.DAT文件中。对 BEGIN和 END之间已经给出的源程序填空,使其完整,填空处已经用横线标出,每个空白一般只需填一条指令或指令的一部分;考生也可填入功能相当的多条指令,或删去 BEGIN 和 END之间原有的代码自行编制程序完成相应的要求。对程序必须进行汇编并与 IO.OBJ连接产生可执行文件,最终运行程序产生结果(无结果和结果不正确均不得分)。部分源程序如下:EXTRN LOAD:FAR,SAVE:FARN EQU 10STACK SEGMENT DB 128 DU
3、P(?)STACK ENDSDATA SEGMENTSOURCE DW N DUP(?)RESULT DW N DUP(0)NAME0 DB INPUT1. DAT, 0NAME1 DB OUTPUT1. DAT, 0DATA ENDSCODE SEGMENTASSUME CS: CODE, DS : DATA,SS : STACKSTART PROC FARPUSH DSXOR AX, AXPUSH AXMOV AX, DATAMOV DS; AXLEA DX, SOURCELEA SI, NAMFOMOV CX, N * 2CALL LOAD*BEGIN*LEA DI, RESULTLEA
4、 SI, SOURCEMOV CX, NLOOP0: MOV AX, SIMOV BX, 0LOOP1: (1) SUB AX, BX(2) , STORE0(3) IMP LOOP1 STOREO: INC BX (4) MOV DI, BXINC DI(5) INC SI(6) , LOOP LOOP0 *END* LEA DX, RESULTLEA SI, NAME1MOV CX, N * 2CALL SAVERETSTART ENDPCODE ENDSEND START相关知识:循环程序设计利用重复控制指令可以实现重复操作,能简化程序、节约存储空间。循环程序分为三部分:初始化部分为循环
5、做准备;循环控制部分判断循环条件是否满足,是否继续循环操作;循环体部分完成要循环操作的具体工作。对于复杂问题,单重循环程序往往不能满足要求,循环中常常还需要有其他循环程序。值得注意的是内层循环和外层循环之间应有各自的控制条件,当从外层循环进入到内层循环时,内层循环的初始条件应该重新设置。(1)无条件循环指令格式:LOOP DST该指令的功能是,程序执行到此处,CX 的内容减 1,若 CX的内容不为 0,则转到目标地址处继续执行指令,否则执行该指令的下一条指令。(2)条件循环指令(I)格式:LOOPZ/LOOPE DST该指令执行后,如果零标志位为 1,且 CX内容减 1后不等于 0,则转移到目
6、标地址处继续执行指令,否则执行循环指令后的一条指令,即零标志位为 0或 CX内容为 0时退出循环。(ii)格式:LOOPNZLOOPNE DST该指令执行时,CX 内容减 1,然后根据零标志位和 CX内容决定是否循环。若零标志位为 1,或 CX内容为0时退出循环,否则零标志位等 0且 CX内容不等于 0,则转移到转移指令的目标地址处继续执行。编程思路:第一步:分析程序要求的功能。本程序需要完成以下功能:(1)从数据文件 INPUT1.DAT中读取 10个 16位无符号整数存放在 SOURCE开始的内存单元中。(2)将 SOURCE开始的 10个字单元中的无符号整数,利用减奇数的方法求近似方根,
7、并将结果存放在RESULT开始的内存单元中。(3)将方根结果存放在 OUTPUT1.DAT中。第二步:用相应的汇编程序来实现其功能。(1)数据的读取和存入文件的实现,题目中已经给出。(2)对于一个数的方根近似求解,题目中叙述了具体的实现方法,VCB 依次减 1,3,5直至差小于等于0,求差次数即为方根。通过阅读题目中的汇编源代码,我们可以看出,将内存中的数读入 AX,然后循环减 BX 中的内容。这样我们可判断出减数 1,3,5是存放在 BX中的,BX 的初始值为 1,每执行完一次减操作,BX 的内容就应该加 2。我们始终没有发现哪一个寄存器是用来计数进行减操作次数的,可实际上 BX的内容与减操
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 三级 PC 技术 89 答案 解析 DOC
