就业数据资源平台
当前位置:首页 > PC技术
计算机等级考试三级PC上级题精选11-20(11)

上机题之20
以下内容为程序代码: 
;*      请编制程序PROG1.ASM, 其功能是: 将十个无符号字节数据中高
;*  4位和低4位所表示的十六进制数分别转换为ASCII码, 并按照先低位
;*  后高位的顺序存放在指定的内存区中。
;*      例如:
;*      内存中有   61H,4AH,5BH,.....
;*      结果为     31H,36H,41H,34H,42H,35H,.....
;*      部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT
;*  中读入SOURCE开始的内存单元中, 转换结果要求从RESULT开始存放,
;*  由过程SAVE保存到文件OUTPUT1.DAT中。
;*      填空BEGIN和END之间已经给出的一段源程序使其完整,填空处已
;*  经用横线标出, 每个空白一般只需要填一条指令或指令的一部分(指
;*  令助记符或操作数), 考生也可以填入功能相当的多条指令, 或删去
;*  BEGIN和END之间原有的代码并自行编程来完成要求的功能。
;*      对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,
;*  最终运行程序产生结果(无结果或结果不正确者均不得分)。
EXTRN LOAD:FAR,SAVE:FAR
N       EQU     10
DSEG    SEGMENT
SOURCE  DB      N DUP(?)
RESULT  DB      2*N  DUP(0)
NAME0   DB      ’INPUT1.DAT’,0
NAME1   DB      ’OUTPUT1.DAT’,0
DSEG    ENDS
SSEG    SEGMENT STACK
        DB      256 DUP (?)
SSEG    ENDS
CSEG    SEGMENT
        ASSUME  CS:CSEG,SS:SSEG,DS:DSEG
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
        MOV     AX,DSEG
MOV DS,AX
        MOV     ES,AX

LEA DX,SOURCE
LEA SI,NAME0
        MOV     CX,N
        CALL    LOAD            
;   *** BEGIN ***
        LEA     SI,SOURCE
        LEA     DI,RESULT
        MOV     CX,N
        CLD
NEXT:   LODSB
        MOV     BL,AL
        and     al,0fh
        ;AND     AL,___
        CALL    SR
        MOV     AL,BL
        PUSH    CX
        MOV     CL,4
        shr     al,cl
        pop     cx
        ;SHR     AL,__
        ;_____________
        CALL    SR
        LOOP    NEXT
        JMP     EXIT
SR      PROC
        CMP     AL,0AH
        JB      NUM
        ADD     AL,07H
NUM:    add     al,30h
        ;ADD     AL,___
        STOSB
        RET
sr      endp
;SR      ____
;   *** END   ***
EXIT: LEA DX,RESULT
LEA SI,NAME1
        MOV     CX,2*N
        CALL    SAVE            
RET
START ENDP
CSEG    ENDS
        END     START


input1.dat 内容如下:
124A583B464789231C26
output1.dat 内容应当如下:
32 31 41 34 38 35 42 33 36 34 37 34 39 38 33 32 
43 31 36 32
就业数据资源平台