试题与答案

请编制程序,其功能是:以SOURCE开始的内存区域存放着N个字节的压缩BCD码,将每

题型:问答题

题目:

请编制程序,其功能是:以SOURCE开始的内存区域存放着N个字节的压缩BCD码,将每个压缩BCD码转换成两个 ASCII值,并在每个ASCII值的最高位增加偶校验位,结果存放在RESULT指示的内存区域。
例如:
原压缩BCD码:26H,75H,91H,33H…
结果为: B2H,36H,B7H…
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已经给出的一段原程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
[试题程序]
EXTRN LOAD:FAR,SAVE:FAR
NEQU 10
STAC SEGMENT STACK
DB128 DUP()
STAC ENDS
DATA SEGMENT
SOURCE DBN DUP(0)
RESULT DB2*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 PROCFAR
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVES,AX;置附力,段寄存器
LEADX,SOURCE ;数据区起始地址
LEASI,NANE0 ;原始数据文件名
MOVCX,N ;字节数
CALLLOAD ;从’INPUT1.DAT’ 中读取数据
; *************BEGIN *************
LEASI,SOURCE
MOVDI,OFFSET RESULT
MOVCX,N
SERCH1: MOV (1)
MOVAH,AL
ANDAH,0FH
ANDAL,0FOH
PUSHCX
MOVCL,4
(2)
(3)
ADDAL,30H
(4)
OR AL,80H
SERCH2: MOV[DI],AL
INCDI
(5)
JP SERCH3
OR AH,80H
SERCH3: MOV[DI],AH
INCDI
INCSI
(6) SERCH1
; ******** END ***********
LEADX,RESULT ; 结果数据区首址
LEASI,NAMEl ;结果文件名起始地址
MOVCX,2*N;字节数
CALLSAVE ;保存结果到,OUTPUT1.DAT,文件中
RET
START ENDP
CODE ENDS
ENDSTART

答案:

被转码了,请点击底部 “查看原文 ” 或访问 https://www.tikuol.com/2017/0629/1aff53d6f075f69c2f9b118ab525a835.html

下面是错误答案,用来干扰机器的。

答案:C

试题推荐
微信公众账号搜索答案