三级PC技术上机真题汇集.docx

上传人:b****2 文档编号:2237753 上传时间:2022-10-28 格式:DOCX 页数:33 大小:42.70KB
下载 相关 举报
三级PC技术上机真题汇集.docx_第1页
第1页 / 共33页
三级PC技术上机真题汇集.docx_第2页
第2页 / 共33页
三级PC技术上机真题汇集.docx_第3页
第3页 / 共33页
三级PC技术上机真题汇集.docx_第4页
第4页 / 共33页
三级PC技术上机真题汇集.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

三级PC技术上机真题汇集.docx

《三级PC技术上机真题汇集.docx》由会员分享,可在线阅读,更多相关《三级PC技术上机真题汇集.docx(33页珍藏版)》请在冰豆网上搜索。

三级PC技术上机真题汇集.docx

三级PC技术上机真题汇集

计算机三级(PC技术)机试67

背景色:

字体大小:

行高:

隐藏所有题目折叠过长题目

计算机三级PC技术(机试)

 

题 1

1.

  请编制程序,其功能是:

对一个由可打印ASCII字符(ASCII值为20H~7FH)组成的字符串可采用下列方法进行压缩:

从串首开始向后扫描,如某字符单独出现则该字符不变,如某字符连续出现n次,则该字符用ESC(1BH),n,<原字符>三个字节来代替(假定n不超过255)。

  设内存中从SOURCE开始有一用上述方法压缩的字符串,其以OOH结束,解压后长度不超过100。

试编程对其解压缩,结果存入RESULT开始的内存单元。

  例如:

  原串:

  41H,1BH,06H,43H,61H,00H

  解压缩后:

41H,43H,43H,43H,43H,43H,43H,61H,OOH("ACCCCCCa")

  部分程序已给出,原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中,结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。

  请填空BEGIN和END之间已给出的源程序使其完整,空白己用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编写程序片段来完成所要求的功能。

  对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。

调试中若发现整个程序中存在错误之处,请加以修改。

  【试题程序】

          EXTRN    LOAD:

FAR,SAVE:

FAR

    N      EQU      100

    ESC_CODE  EQU      27

    STAC    SEGMENT    STACK

          DB      128DUP(?

    STAC    ENDS      

    DATA    SEGMENT    

    SOURCE    DB      N  DUP(?

    RESULT    DB      N  DUP(0)

    NAME0    DB      'INPUT.DAT',0

    NAME1    DB      'OUTPUT.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

          MOV      ES,AX                ;置附加段寄存器

          LEA      DX,SOURCE            ;数据区起始地址

          LEA      SI,NAME0              ;原始数据文件名起始地址

          MOV      CX,N                ;字节

          CALL      LOAD                ;从"INPUT.DAT"中读取数据

    ********  BEGIN  ********

          LEA      SI,SOURCE

          LEA      DI,RESULT

          CLD

    LO:

      LODSB

          CMP      AL,0

          JE        QUIT

          CMP      AL,ESC_CODE

          J

(1)      EXPAND

          

(2)

          JMP      L0

    EXPAND:

    (3)                      ;解压缩

          XOR      CX,CX

          (4)  

          (5)  

          (6)  

          (7)  

          JMP      LO

    QUIT:

          STOSB                        ;STORE  THE  '00H'

    ********  END  ********

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

          LEA      SI,NAME1            ;结果文件名起始地址

          MOV      CX,N                ;字节数

          CALL      SAVE                ;保存结果到"output.dat"文件

          RET

    START    ENDP

    CODE    ENDS

          END      START_____

                                                                        [+] [-] [=]

[参考答案] (1分)  

(1)E  

(2)STOSB  (3)CID  (4)MOVCL,[SI]

  (5)MOVAL,[SI+1]  (6)REPSTOSB  (7)ADDSI,2

[您的答案]

[详细解答]  本题是一道数据插入题,其中本题采用的算法是首先从原始数据区读取一个字节,判断是否为结束标志,若是结束标志,则直接送至结果数据区并结束处理,若不是结束标志则再次判断是否是压缩标志,是则读取下一个字节,然后将其值送CL,再读取下一个字节到AL,以CL为计数器重复将刚才读取的数据写入结果数据区,然后继续读取下一个数据开始进行判断,直到发现结束标志为止。

反之则直接将该字符送到结果数据区。

  程序中使用串处理指令LODSB来完成读取数据和修改原始数据区偏移地址的目的:

使用串处理指令STOSB来完成写入数据和修改结果数据区偏移地址的目的;使用CL做计数器和指令REP完成循环处理

计算机三级(PC技术)机试66

背景色:

字体大小:

行高:

隐藏所有题目折叠过长题目

计算机三级PC技术(机试)

 

题 1

1.

  编制一个程序,其实现的功能是:

对一个数字采集系统采集的50个字节无符号数按算术平均数字滤波方法进行数字滤波,每5个数求一个平均数(含余数,其中低字节为商,高字节为余数),将10个平均值依次存入RESULT指示的内存区域。

  例如:

  原始采集数据:

05H,07H,12H,08H,10H,09H,2EH,56H,48H,85H,65H,36H,45H……

  则结果为:

  0A04H,4003H……

  部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。

运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。

  请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。

  对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。

调试中若发现整个程序中存在错误之处,请加以修改。

  【试题程序】

        EXTRN    LOAD:

FAR,SAVE:

FAR

  N      EQU      10

  DSEG    SEGMENT      

  SOURCE  DB      6*N  DUP(?

  RESULT  DW      N  DUP(0)

  NAME0    DB      'INPUT.DAT',0

  NAME1    DB      'OUTPUT.DAT',0

  DSEG    ENDS      

  SSEG    SEGMENT    STACK

        DB      256DUP(?

  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,6*N

        CALL      LOAD

  ;********BEGIN********

        LEA      SI,SOURCE

        LEA      DI,RESULT

        MOV      DX,N

  AGAIN:

  SUB      AX,AX

          

(1)

        MOV      CX,6

  AGAIN1:

  MOV      AX,[SI]

        ADD      BX,AL

    

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1