计算机等级考试三级PC上级题精选21-30(3)
来源:优易学  2010-1-14 16:08:54   【优易学:中国教育考试门户网】   资料下载   IT书店

上机题之23
以下内容为程序代码:
;*      请编制程序PROG1.ASM, 其功能是: 内存中连续存放着十六个
;*  10位二进制数DB9 DB8 … DB0,每个二进制数均用两个字节表示,其
;*  存放格式均为
;*  DB9 DB8 DB7 DB6 DB5 DB4 DB3 DB2    DB1 DB0 0  0  0  0  0  0
;*  │←─── 低地址字节 ───→│  │←──高地址字节──→│
;*      请按序将每个10位无符号二进制数转换成以下格式
;*  DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0   0  0  0  0  0  0  DB9 DB8
;*  │←─── 低地址字节───→│   │←──高地址字节──→│
;*  转换结果按原序存放在内存中。
;*      例如:
;*      内存中有 C048H,4091H,0080H,……
;*      结果为 23H,01H,45H,02H,00H,02H,……
;*      部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT
;*  中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,
;*  由过程SAVE保存到OUTPUT1.DAT文件中。
;*      填空BEGIN和END之间已给出的源程序使其完整 (空白已用横线
;*  标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦
;*  可), 或删除BEGIN和END之间原有的代码并自行编程来完成要求的
;*  功能。
;*      对程序必须进行汇编, 并与IO.OBJ链接产生PROG1.EXE执行文
;*  件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调
;*  试中若发现整个程序中存在错误之处,请加以修改。
          EXTRN      LOAD:FAR,SAVE:FAR
N         EQU         16
STAC      SEGMENT   STACK
           DB          128 DUP (?)
STAC      ENDS
DATA     SEGMENT
SOURCE   DW          N DUP(?)
RESULT   DB          N*2 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*2           ; 字节数
            CALL      LOAD             ; 从 ’INPUT1.DAT’中读取数据

;  **** BEGIN ****
            MOV       DI,OFFSET RESULT
            MOV       BX,0
            MOV       CH,N
PRO:        MOV       AH,BYTE PTR SOURCE[BX]
            mov       al,byte ptr source[bx+1]
            ;MOV       AL,________________
            MOV       DL,AH             ; 10位无符号二进制数高八位
            MOV       DH,AL             ; 10位无符号二进制数低二位
            MOV       CL,2
            shl       ax,cl
            ;SHL       AX,__
            shl       dx,cl
            ;SHL       DX,__
            MOV       AL,DH
            mov       [di],ah
            mov       [di+1],al
            ;MOV       [DI],__
            ;MOV       [DI+1],__
            ADD       DI,2
            ADD       BX,2
            DEC       CH
            JNZ       PRO
;  ****  END  ****
            LEA       DX,RESULT   ; 结果数据区首址
            LEA       SI,NAME1    ; 结果文件名
            MOV       CX,N*2      ; 结果字节数
            CALL      SAVE        ; 保存结果到文件
          RET
START     ENDP
CODE      ENDS
END       START


input1.dat 内容如下:
FF C0 F0 C0 FF 80 FF 40 FF 00 FA 40 FA 80 AA 40 CD 40 11 C0 00 00 31 80 31 40 66 40 66 C0 33 40
output1.dat 内容应当如下:
FF 03 C3 03 FE 03 FD 03 FC 03 E9 03 EA 03 A9 02 
35 03 47 00 00 00 C6 00 C5 00 99 01 9B 01 CD 00

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训