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

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

1、PC技术机试模拟试卷 6及答案与解析 一、程序设计题 1 请编制程序 PROG1.ASM,其功能是:将连续 20个字节的 ASCII码 (30 39之间 )顺序转换成 10个压缩 BCD码。 例如:原始数据 31H, 33H, 35H, 38H( 后面依次有 16个 ASCII码 ) 转换后为 13H, 58H, ( 后面依次有 8个压缩 BCD码 ) 部分程序已经给出,其中原始数据由过程 LOAD从文件 INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果 (要求从 RESULT开始存入 )由 SAVE过程保存 到 OUTPUT. DAT中。请在 BEGIN和 END之间补充一段

2、源程序,完成要求的功能。 原有数据由过程 LOAD从文件 INPUT1.DAT中读入 SOURCE开始的内存单元中,结果要求从 RESULT开始存放,由 SAVE保存到 OUTPUT1.DAT文件 对程序必须进行汇编,并与 IO.OBJ连接产生 PROG1.EXE执行文件,最终产生运行结果 (无结果或结果不正确均不得分 )。 部分程序如下: EXTRN LOAD: FAR, SAVE: FAR N EQU 20 STAC SEGMENT STACK DB 128 DUP(?) STAC ENDS DATA SEGMENT SOURCE DB 31H, 32H, 33H, 34H, 35H, 3

3、6H, 37H, 38H RESULT DB N DUP(0) NAME0 DB INPUT1.DAT, 0 NAME1 DB OUTPUT1.DAT, 0 DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DATA, SS: STAC START PROC FAR PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX LEA DX, SOURCE ; 数据区起始地址 LEA SI, NAME0 ; 原始数据文件名 MOV CX,N ; 字节数 CALL LOAD ; 从 “INPUT1. DAT“中读取数据 *

4、BEGIN * * END * LEA DX,RESULT ; 结果数据区首地址 LEA SI, NAME1 ; 结果文件名 MOV CX,N ; 结果字节数 CALL SAVE ; 保存结果到文件 RET START ENDP CODE ENDS END START 相关知识: BCD码和压缩 BCD码 BCD码就是以二进制数表示十进制数,以 4位二进制数表示 1位十进制数,0000 1001表示 0 9, 1010 1111六个状态无意义。非压缩 BCD码以一个字节表示一位 BCD码,压缩 BCD码一个字节表示两位 BCD码 。 ASCII码与压缩 BCD码之间的转换 0 9的 ASCH码

5、为 30H 39H,从数字的 ASCII码求数字本身,只要用他的ASCII码减去 30H即可。由两位非压缩 BCD码构成一个字节的压缩 BCD码可将高位的 BCD码移到高四位,然后与低位的 BCD码进行逻辑或 (OR)操作即可完成。 编程思路: 第一步:分析本程序要求完成的功能。 本程序要求完成以下功能: (1)从数据文件 INPUT1.DAT中读取 20个字节的 ASCII码存放在 SOURCE开始的内存单元中。 (2)将 SOURCE开始的 20个 ASCII码求出其对应的数值,然后转换成压缩的BCD码,依次放在 RESULT开始的内存单元中。 (3)将处理之后的字符串存入到 OUTPUT

6、1.DAT。 第二步:用相应汇编程序来实现其功能。 (1)数据的读取和存入题目中已经给出,只要完成 20个 ASCII码到压缩 BCD的转换即可。 (2)由 ASCII码到压缩 BCD码的转换过程如下: 由于 20位 ASCII码正好转换成 10个字节压缩 BCD码,不存在某个字节的 BCD码只有一位。因此依次从 SOURCE开始的内存单元取两 个 ASCII码,前一个转换成压缩 BCD码的高位,后一个转换成压缩 BCD码的低位来构成压缩 BCD码;每两个 ASCII码转换成一个字节的压缩 BCD码,直至转换完毕。 PC技术机试模拟试卷 6答案与解析 一、程序设计题 1 【正确答案】 LEA SI, SOURCE LEA DI, RESULT MOV CX, N/2 LO: MOV AL, SI SUB AL, 30H ;将 ASCII码转换成 10进制数 INC SI MOV AH, SI SUB AH, 30H ;将第二个数转换成 10进制数 SHL AH, 1 SHL AH, SHL AH, 1 SHL AH, 1 ;将第二个数移到高 4位中 OR AL, AH ;将两个 BCD码,压缩到一个字节中,成为压缩 BCD码 MOV DI, AL INC SI INC DI LOOP LO

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

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

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