Discuz!NT
欢迎 游客 , 注册 | 登录 | 会员 | 界面 | 简洁版本 | 在线 | 帮助
商都网教育宝典宝库

发表新主题 回复该主题
本主题被查看913次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第   上一主题   下一主题
标题: 2007年4月全国计算机等级考试三级PC上机试题
-[尕硴]
超级版主
UID: 71
来自:
精华: 130
积分: 14003
帖子: 12909
注册: 2007-10-22 17:59:00
状态: 离线
威望: 444.00
金钱: 3355.00 元
只看楼主 2007-11-01 17:02
2007年4月全国计算机等级考试三级PC上机试题
试题1:
  〈三级PC南开100题〉的第五题
  一、请编制程序,其功能是:内存中从SOURCE开始连续存放着21个八位有符号数(补码),其相邻两数之间差值不超过-8至7。对这种变化缓慢的数据可采用差分方法进行压缩。即第一个数据不变,其后的数据取与前一数据的差值并用四位二进制补码表示,两个差值拼成一个字节,前一个差值放在高四位,后一个差值放在低四位。
  例如:
        原数据(X[n]):23H,27H,2AH,29H,22H…
  压缩后(Y[n]):23H,      43H,      F9H…
  编程按上述方法进行压缩,结果保存在RESULT开始的内存单元中。
      部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
      对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
   试题程序:
   EXTRN    LOAD:FAR,SAVE:FAR
  N        EQU      10
  STAC    SEGMENT  STACK
          DB      128 DUP(?)
  STAC    ENDS
  DATA    SEGMENT
  SOURCE  DB      2*N+1 DUP(?)       
  RESULT  DB      N+1 DUP(0)       
  NAME0    DB      'INPUT1.DAT',0
  NAME1    DB      'OUTPUT1.DAT',0
  NDATA    DB      N DUP(0)
  PDATA    DB      N DUP(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
          MOV      ES,AX                ;置附加段寄存器
          LEA      DX,SOURCE            ;数据区起始地址
          LEA      SI,NAME0            ;原始数据文件名
          MOV      CX,2*N+1            ;字节数
          CALL    LOAD                ;从'INPUT1.DAT'中读取数据
  ;****BEGIN****
          LEA      SI,SOURCE
          LEA      DI,RESULT
          CLD
          MOVSB                        ;Y[0]=X[0]
          XOR      BX,BX                ;FLAG=0
          MOV      DX,N*2              ;COUNTER
  COMPRESS:
    LODSB                        ;X[n]-X[n-1]
          SUB      _______________      ;FLAG=NOT FLAG
          ________________________
  J_______ LOW_HEX
          MOV      CL,4
          ________ AL,CL 
          MOV      AH,AL
          JMP      NEXT
  LOW_HEX:
  _________________________
          OR      AL,AH
          STOSB
  NEXT:  _________________________
          JNE      COMPRESS
  ;****END****
          LEA      DX,RESULT      ;结果数据区首址
          LEA      SI,NAME1      ;结果文件名
          MOV      CX,N+1        ;字节数
          CALL    SAVE          ;保存结果到文件
          RET
  START  ENDP
  CODE    ENDS
          END    START
  答案:
  5.(1)AL,[SI-2]
  (2)XOR BX,0FFH
  (3)Z
  (4)SHL
  (5)AND AL,0FH
  (6)DEC DX
#1  
发表新主题 回复该主题
本主题被查看913次, 共1个帖子, 1页, 当前为第1页     选择页数: 1      跳转到第







现在的时间是 2008-08-22 09:38:25

版权所有 商都网教育宝典
         Powered by Discuz!NT 1.0.6666    Copyright © 2001-2008 Comsenz Inc.
Processed in 0 seconds