职业教育新东方网 > 职业教育 > 计算机 > 等级考试 > 计算机三级 > PC技术 > 文章正文

2012年计算机三级PC技术第三十五套上机试题及答案

分享到:

2012-01-18 09:57  作者:  来源:互联网  字号:T|T

  请编制程序,其功能是:设20个8位有符号数构成一个数组,试依次去掉其中负的奇数,生成一个新的数组(顺序不变)。

  部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中(请自行在CX中设定输出长度)。

  请在BEGIN和END之间补充一段源程序,完成要求的功能。

  对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。

  试题程序:

  EXTRN LOAD:FAR,SAVE:FAR

  LE EQU 20

  DSEG SEGMENT

  SOURCE DB LEN DUP(?)

  RESULT DB LEN DUP(0)

  NAME0 DB 'INPUT1.DAT',0

  NAME1 DB 'OUTPUT1.DAT',0

  DSEG ENDS

  SSEG SEGMENT STACK

  DW 256 DUP(?)

  SSEG ENDS

  CSEG SEGMENT

  ASSUME 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,LEN ;字节数

  CALL LOAD ;从'INPUT1.DAT'中读取20个字节的数据

  ;****BEGIN****

  LEA SI,SOURCE

  LEA DI,RESULT

  MOV CX,20

  LOOP1: MOV AL,[SI]

  MOV AH,AL

  SHR AH,1

  JNC KEEP

  CMP AL,0

  JNL KEEP

  JMP EXIT

  KEEP: MOV [DI],AL

  INC DI

  EXIT: INC SI

  LOOP LOOP1

  ;****END****

  LEA DX,RESULT ;结果数据区首址

  LEA SI,NAME1 ;结果文件名

  CALL SAVE ;保存结果到文件

  RET

  START ENDP

  CSEG ENDS

  END START

 

《《《我要报班:  点击进入

(责任编辑:单月)

 

热点课讯

精彩问答

提问