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

  上机题之12
  以下内容为程序代码:
  ;*      请编制程序PROG1.ASM, 其功能是: 计算3×10矩阵中每一列元
  ;*  素(八位二进制数)之和, 并将其结果存放在指定的内存区中。
  ;*      例如:
  ;*      内存中有 0,0,0,0,0,0,0,0,0,0(第1行),1,1,1,1,1,1,1,1,1,1
  ;*  (第2行),9,9,9,9,9,9,9,9,9,9(第3行)
  ;*      结果为    000AH,000AH,...,000AH
  ;*      部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT
  ;*  中读入SOURCE开始的内存单元中, 转换结果要求从RESULT开始存放,
  ;*  由过程SAVE保存到文件OUTPUT1.DAT中。
  ;*      填空BEGIN和END之间已经给出的一段源程序使其完整,填空处已
  ;*  经用横线标出, 每个空白一般只需要填一条指令或指令的一部分(指
  ;*  令助记符或操作数), 考生也可以填入功能相当的多条指令, 或删去
  ;*  BEGIN和END之间原有的代码并自行编程来完成要求的功能。
  ;*      对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,
  ;*  最终运行程序产生结果(无结果或结果不正确者均不得分)。
  EXTRN LOAD:FAR,SAVE:FAR
  N       EQU     30
  DSEG    SEGMENT
  SOURCE  DB      N DUP(?)
  SRC     DW      SOURCE
  RESULT  DW      N/3 DUP(0)
  I       EQU     3
  J       EQU     10
  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     BX,1
  LPJ:    MOV     DX,0
  MOV     CX,1
  LPI:    MOV     AL,[SI]
  mov     ah,0
  ;_______________
  ADD     DX,AX
  add     si,10
  ;ADD     SI,__
  INC     CX
  CMP     CX,I
  JBE     LPI
  MOV     [DI],DX
  add     di,2
  ;ADD     DI,____
  INC     SRC
  MOV     SI,SRC
  inc     bx
  cmp     bx,J
  ;_______________
  ;CMP     BX,____
  JBE     LPJ
  ;   *** END   ***
  LEA     DX,RESULT
  LEA     SI,NAME1
  MOV     CX,N*2/3
  CALL    SAVE
  RET
  START ENDP
  CSEG    ENDS
  END     START
  input1.dat 内容如下:
  010101010101010101010202020202020202020204040404040404040404
  output1.dat 内容应当如下:
  07 00 07 00 07 00 07 00 07 00 07 00 07 00 07 00
  07 00 07 00
就业数据资源平台