就业数据资源平台
当前位置:首页 > PC技术
06年9月全国计算机等级考试三级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

就业数据资源平台