[试题]

编制一个程序,其实现的功能为:将内存中从SOURCE开始的区域里存放的20个字节的压缩BCD码转换为ASCⅡ码,每个压缩的BCD码转换为两个ASCⅡ码,并在最高位加上奇校验位,结果存放到RESULT开始的内存区域。

例如:

内存中有:73H,45H……

则结果为:37H,B3H,34H,B5H……

部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。

请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

(试题程序)

E.XTRN LOAD:FAR,SAVE:FAR

N EQU 20

D.SEG SEGMENT

SOURCE DB N DUP(?)

RESULT DB N*2 DUP(0)

NAME0 DB 'INPUT.DAT',0

NAME1 DB 'OUTPUT.DAT',0

D.SEG ENDS

SSEG SEGMENT STACK

D.B 256 DUP(?) SSEG ENDS CSEG SEGMENT

A.SSUME CS:CSEG,DS:DSEG,SS:SSEG START PROC FAR

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DSEG

MOV DS,AX

LEA DX,SOURCE

LEA SI,NAME0

MOV CX,N

C.ALL LOAD

; ******** BEGIN ********

LEA SI,SOURCE

LEA DI,RESULT

MOV CX,N

A.GAIN: MOV AL,[SI]

MOV AH,AL(1)

A.ND AH,0FOH(2)

MOV CL,4(3)

POP CX

A.DD AL,30H(4) NEXT

OR AL,80H

NEXT: MOV [DI],AL

INC DI

A.DD AH,30H(5) NEXT1

OR AH,80H

NEXT1: MOV [DI],AH

INC DI

INC SI

LOOP AGAIN

; ******** END ********

LEA DX,RESULT

LEA SI,NAME1

MOV CX,N*2

C.ALL SAVE

RET

START ENDP

C.SEG ENDS

E.ND START

参考答案与解析:

相关试题

请编制程序,其功能为:从SOURCE开始的内存区域存放着N个字节的有符号数。现找

[试题]请编制程序,其功能为:从SOURCE开始的内存区域存放着N个字节的有符号数。现找出最大的数,结果存放到RESULT 指示的,其后存放原N个数逻辑取反后的值。例如:数据为:09H,7EH,89H,F6H,17H……67H(N个数据)结果为:7EH (最大数),F6H,81H,76H,0CH,E8H……98H(原N个数的逻辑反)部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT 中读入从SOURCE开始的内存单元,运算结果要求从RESIULT开始存放,由SAVE 过程保存到OUTP

  • 查看答案
  • 编制一个程序,其实现的功能为:求出内存中连续存放的20个无符号数序列的最大值和最

    [试题]编制一个程序,其实现的功能为:求出内存中连续存放的20个无符号数序列的最大值和最小值,并将结果按要求存入。结果的存放形式为:按原序列存放20个需要处理的无符号数,后跟该序列的最小值和最大值(最小值在前,最大值在后)。例如:内存中有:23H,45H,61H……结果为: 23H,45H,61H…… (20个需要处理的原来的无符号数),后面跟该序列的最小值和最大值(最小值在前,最大值在后)。部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果

  • 查看答案
  • 请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域存放着多个字

    [试题]请编制程序PROG1.ASM,其功能是:以SOURCE开始的内存区域存放着多个字节的数据,其中有压缩BCD码和其他数据。现按下列编码规则进行编码:在每个压缩BCD码前面加两个字节前缀代码BEH和CCH,并在其后加两个字节后缀代码DDH和EDH;如果不是压缩BCD码,则该数据前后均加两个代码0DH和0EH。编码后的数据存放到RESULT指示的内存区域。例如:原信息为:12H,D9H,86H,54H,……结果为:BEH,CCH,12H,DDH,EDH,0DH,0EH,D9H,0DH,0EH,BEH,C

  • 查看答案
  • 下面一段程序要实现的功能是:在内存中从地址SOURCE开始有一个长度为50的字符

    [单选题]下面一段程序要实现的功能是:在内存中从地址SOURCE开始有一个长度为50的字符串,测试该字符串中是否存在数字,如有则将DL的第三位置1,否则将该位置0。 BEGIN: MOV CX,50 MOV SI, 0 LP: MOV SOURCE[SI] CMP AL,30H JB GOON CMP AL, ① JA GOON OR DL,20H JMP EXIT GOON: INC SI LOOP LP AND DL, ② EXIT: 则①,②中应为:A.35H,0DFHB.35H,0FFHC.39H

  • 查看答案
  • 请编制程序,其功能为:内存中连续存放着20个无符号字节数,求它们的和。和值按字的

    [试题]请编制程序,其功能为:内存中连续存放着20个无符号字节数,求它们的和。和值按字的形式存放,此前先按序存放参加运算的20个字节。例如;内存中有:01H,02H,03H ……结果为:01H,02H,03H …… (参加运算的字节),后跟一个字(为前面各字节的和)部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END之间补充使其完整,完成要求的功

  • 查看答案
  • 一个字节可存放一个汉字。

    [判断题] 一个字节可存放一个汉字。A . 正确B . 错误

  • 查看答案
  • 一个字节型变量在内存中占据()字节的空间。

    [单选题]一个字节型变量在内存中占据()字节的空间。A . 1B . 2C . 4D . 8

  • 查看答案
  • 一个ASCⅡ码用一个字节存放,一个汉字占用两个字节。( )

    [主观题]一个ASCⅡ码用一个字节存放,一个汉字占用两个字节。( )

  • 查看答案
  • 请编制程序,其功能为:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的

    [试题]请编制程序,其功能为:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的字符串。字符串以00H结束,长度不超过20个字节。例如:原字符串为:4EH,4EH,4EH,42H,1AH,31H,31H,00H:新字符串为:4EH,42H,1AH,31H,00H部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1. DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END 之间补充一段源程序,完

  • 查看答案
  • 存储器中的一个字节,可以存放()。

    [单选题]存储器中的一个字节,可以存放()。A . 一个汉字B . 一个英文字母C . 一个希腊字母D . 一个小数

  • 查看答案
  • 编制一个程序,其实现的功能为:将内存中从SOURCE开始的区域里存放的20个字节