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

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

1、PC技术机试模拟试卷 80及答案与解析 一、程序设计题 1 请编制程序,其功能是:内存中连续存放着 20个十六位二进制数,对每个数逻辑右移,使其最低位为 “1“(值为零的字不变 )。 例如: 内存中有A704H(1010011100000100B),0000H,9A58H 结果为 29C1H(0010100111000001B),0000H,134BH 部分程序已给出,其中原始数据由过程 LOAD从文件 INPUT1.DAT中读入 SOURCE开始的内存单元中,运算结果要求从 RESULT开始存放,由过程 SAVE保 存到文件 OUTPUT1.DAT中。 请填空BEGIN和 END之间已给出的

2、源程序使其完整 (空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可 ),或删除 BEGIN和 END之间原有的代码并白行编程来完成所要求的功能。 对程序必须进行汇编,并与 IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。 试题程序: PC技术机试模拟试卷 80答案与解析 一、程序设计题 1 【正确答案】 (1)0 (2)TEST (3)NZ (4)SHR (5)LOOP NEXT 【试题解析】 此程序要求对内存中的 20个十六位二进制数的每一个数逻辑右移,直到最低位为 1为止。考查了 SHR,TEST,LOOP等指令

3、的用法。 程序的堆栈段定义了一个 128字节的堆栈区。堆栈段下面是数据段。数据段中定义了两个字型变量:原始数据区 SOURCE、结果数据区 RESULT;两个字节型变量:原始数据文件名 NAME0、结果数据文件名 NAME1。数据段下面是代码段,告诉汇编程序,代码段、数据段和堆栈段分别属于段寄存器 CS、 DS、 SS。 先将原始数据偏移地址装入到 SI中,结果数据偏移地址装入到 DI中, CX赋初值为 N,用于控制循环处理的次数。 NEXT段,将 SI中内容送 AX中,再将 AX与 0做比较,如果 AL等于 0,转向SKIP段。所以第 (1)空填写 “0“。 LOOP1段的开始要填写第 (2

4、)空,这里是要判断 AX的最低位是否为 1,判断的方法是将 AX和 0001H做 TEST指令。注意:这里千万不能用指令 “AND AX,0001H“,否则会改变 AX的初值而 TEST指令不改变 AX的值,它的结果只显示在几个状态标志位上。所以第 (2)空填 写 “TEST“。当 TEST的结果 ZF 0,说明 AX的最低位为 1, AL不需要再逻辑右移了,转向 SKIP段;否则, ZF 1,说明 AX的最低位为 0,还需要将 AX继续逻辑右移 1位,无条件转向 LOOP1段,AX再逻辑右移 1位,再判断,若仍不满足最低位为 1,继续右移 1位,直到 AX最低位变为 1为止。所以第 (3)、 (4)空分别填写 “NZ“和 “SHR“。 再来看 SKIP段,当 AX的最低位为 1,或者 AX等于 0000H时,直接将 AX存入到 DI中, SI和 DI地址都加 2,因为原始数据和结果数据都是字型的,它们在内存中都占两个 地址。接着从 NEXT处循环,处理下一个十六位二进制数。所以第 (5)空填写 “LOOP NEXT“。

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

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

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