计算机等级考试三级含金量_计算机等级考试三级PC上级题汇总1-5

等级考试 2021-01-26 网络整理 可可

【shitiku.jxxyjl.com--等级考试】

PC上机题之一
;*      请编制程序PROG1.ASM, 其功能是: 内存中连续存放的二十
;*  个八位有符号数(补码)是由一个八位A/D转换器采集的双极性信
;*  号(Xn),  现要求对该信号作如下限幅处理 (处理后的信号记为
;*  Yn):
;*        a).    Yn= -100        Xn<-100
;*        b).    Yn= Xn         │Xn│<=100
;*        c).    Yn= 100         Xn>100
;*      例如:
;*        Xn:  67H,61H,8EH,38H,...
;*        Yn:  64H,61H,9CH,38H,...
;*      部分程序已在PROG1.ASM中给出, 请填空BEGIN和END之间已给
;*  出的源程序使其完整(空白已用横线标出, 每行空白一般只需一条
;*  指令, 但功能相当的多条指令亦可)或删除BEGIN和END之间原有的
;*  代码并自行编写程序片段来完成要求的功能。
;*      原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内
;*  存单元中, 结果要求从RESULT开始存放, 由过程SAVE保存到文件
;*  OUTPUT1.DAT中。
;*      对程序必须进行汇编, 并与IO.OBJ链接产生PROG1.EXE 执行文
;*  件, 最终运行程序产生结果(无结果或结果不正确者均不得分)。

           EXTRN      LOAD:FAR,SAVE:FAR

N          EQU        20
MAX_VAL    EQU        100

STAC       SEGMENT    STACK
           DB         128 DUP (?)
STAC       ENDS

DATA       SEGMENT
SOURCE     DB         N   DUP(?)
RESULT     DB         N   DUP(0)
NAME0      DB         "INPUT1.DAT",0
NAME1      DB         "OUTPUT1.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

           LEA        DX,SOURCE   ; 数据区起始地址
           LEA        SI,NAME0    ; 原始数据文件名起始地址
           MOV        CX,N        ; 字节数
           CALL       LOAD        ; 从"input1.dat"中读取数据
;  **** BEGIN ****
           LEA        SI,SOURCE
           LEA        DI,RESULT
           mov        cx,N
           ;____________________
NEXT:      MOV        AL,[SI]
           CMP        AL,-MAX_VAL
           jl         LESS
           ;J__        LESS
           CMP        AL,MAX_VAL
           jl         store
           ;______________________
           MOV        AL,MAX_VAL
           JMP        STORE
LESS:      MOV        AL,-MAX_VAL
STORE:     MOV        [DI],AL
           inc        si
           inc        di
           loop       next
           ;______________________
           ;______________________
           ;______________________
;  ****  END  ****
           LEA        DX,RESULT    ; 结果数据区首址
           LEA        SI,NAME1     ; 结果文件名起始地址
           MOV        CX,N         ; 字节数
           CALL       SAVE         ; 保存结果到"output1.dat"文件中
           RET
START      ENDP
CODE       ENDS
           END        START

 

input1.dat 内容如下:
1C 65 7F 72 63 56 D3 99 D9 39 75 83 C8 2D 61 7E 43 8E 6C 61
output1.dat 内容应当如下:
1C 64 64 64 63 56 D3 9C D9 39 64 9C C8 2D 61 64
43 9C 64 61

PC上机题之二
io.obj 与以前几次考试的相同
以下内容为程序代码:

;*      请编制程序PROG1.ASM, 其功能是: 内存中连续存放着10个用
;*  ASCII码表示的十进制个位数,将它们转换成相应的二进制无符号
;*  字节N0, N1,…, N9, 并统计N0, N1,…, N9中大于等于5的十进制
;*  数的个数n。转换结果按原序存放,之后存放n(n用字节表示)。
;*      例如:
;*      内存中有 30H("0"),39H("9"),31H("1"), …
;*      结果为   00H,09H,01H,…,(后跟n,n为N0,N1,…, N9中大于
;*  等于5的十进制数的个数)
;*      部分程序已给出,其中原始数据由过程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          N DUP(?)
RESULT   DB          N+1 DUP(0)
NAME0    DB          "INPUT1.DAT",0
NAME1    DB          "OUTPUT1.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
           LEA        DX,SOURCE        ; 数据区起始地址
           LEA        SI,NAME0         ; 原始数据文件名
           MOV        CX,N             ; 字节数
           CALL       LOAD             ; 从"INPUT1.DAT"中读取数据
;  **** BEGIN ****            
           MOV        DI,OFFSET RESULT
           MOV        BX,0
           MOV        CX,N
           mov        dl,0
           ;MOV        DL,__
PRO:       MOV        AL,[BX]
           sub        al,30h
           ;SUB        AL,___
           CMP        AL,05
           jl         jump
           inc        dl
           ;__         JUMP              ; 小于5
           ;INC        __                ; 大于等于5
JUMP:      MOV        [DI],AL
           INC        BX
           INC        DI
           DEC        CX
           JNZ        PRO
           mov        [di],dl
           ;_______________
;  ****  END  ****
           LEA        DX,RESULT        ; 结果数据区首址
           LEA        SI,NAME1         ; 结果文件名
           MOV        CX,N+1           ; 结果字节数
           CALL       SAVE             ; 保存结果到文件
         RET
START    ENDP
CODE     ENDS
END      START

 

input1.dat 内容如下:
30 39 31 38 32 37 33 36 34 35
output1.dat 内容应当如下:
00 09 01 08 02 07 03 06 04 05 05

上机题之三
以下内容为程序代码:

;*      请编制程序PROG1.ASM,其功能是:
;*      对内存中存放的20个带符号8位二进制数进行处理。处理方法
;*  为:大于等于+64的数用ASCII字符">"(3EH)表示;大于0小于+64的数
;*  用ASCII字符"+"(2BH)表示;等于0的数用ASCII字符"0"(30H)表示;
;*  小于0大于-64的数用ASCII字符"-"(2DH)表示; 小于等于-64的数用
;*  ASCII字符"<"(3CH)表示。
;*      例如:
;*      内存中有 00H,01H,3FH,40H,41H,7EH,7FH,80H,FFH,C0H,…
;*  (共20个字)
;*      结果为   30H,2BH,2BH,3EH,3EH,3EH,3EH,3CH,2DH,3CH,…
;*  (共20个ASCII码)
;*      部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT
;*  中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,
;*  由过程SAVE保存到文件OUTPUT1.DAT中。
;*      请在BEGIN和END之间补充一段源程序完成要求的功能。
;*      对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,
;*  最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中
;*  若发现整个程序中存在错误之处, 请加以修改。

           EXTRN      LOAD:FAR,SAVE:FAR
N          EQU        20
STAC       SEGMENT    STACK
           DB         128 DUP (?)
STAC       ENDS
DATA       SEGMENT
SOURCE     DB         N DUP(?)
RESULT     DB         N DUP(0)
NAME0      DB         "INPUT1.DAT",0
NAME1      DB         "OUTPUT1.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
           LEA        DX,SOURCE          ; 数据区起始地址
           LEA        SI,NAME0           ; 原始数据文件名
           MOV        CX,N               ; 字节数
           CALL       LOAD               ; 从 "INPUT1.DAT"中读取数据
;  **** BEGIN ****
           LEA        SI,SOURCE
           LEA        DI,RESULT
           mov        cx,N
NEXT:      MOV        AL,[SI]
           CMP        AL,0
           jl         fu
           jg         zheng
           mov        al,30h
           jmp        store
fu:        CMP        AL,-64
           jle        less
           mov        al,2dh
           jmp        store
less:      mov        al,3ch
           jmp        store
zheng:     cmp        al,64
           jge        great
           mov        al,2bh
           jmp        store
great:     mov        al,3eh
STORE:     MOV        [DI],AL
           inc        si
           inc        di
           dec        cx
           jne        next

;  ****  END  ****
           LEA        DX,RESULT          ; 结果数据区首址
           LEA        SI,NAME1           ; 结果文件名
           MOV        CX,N               ; 结果字节数
           CALL       SAVE               ; 保存结果到文件
           RET
START      ENDP
CODE       ENDS
           END        START

 

input1.dat 内容如下:
C0 FF 80 7F FE 41 40 3F 01 00 00 01 3F 40 41 FE 7F 80 FF C0
output1.dat 内容应当如下:
3C 2D 3C 3E 2D 3E 3E 2B 2B 30 30 2B 2B 3E 3E 2D
3E 3C 2D 3C

上机题之四
以下内容为程序代码:

;*      请编制程序PROG1.ASM, 其功能是: 内存中连续存放的二十个八
;*  位无符号数是一个自动抄表仪抄录的二十个用户某月的用水量(立方
;*  米),为了控制用水量,水费计算公式如下(X表示用水量; Y表示水费,
;*  单位为分):
;*        a).    Y= X*70                  X<=10
;*        b).    Y= 10*70+(X-10)*120      X>10
;*      例如:
;*        用水量(X):    04H,  0FH,  18H,...
;*        水费( Y ):  0118H,0514H,094CH,...
;*      试计算出这二十个用户应缴纳的水费, 结果用字(word)表示。
;*      部分程序已在PROG1.ASM中给出, 请填空BEGIN和END之间已给
;*  出的源程序使其完整(空白已用横线标出, 每行空白一般只需一条
;*  指令, 但功能相当的多条指令亦可)或删除BEGIN和END之间原有的
;*  代码并自行编写程序片段来完成要求的功能。
;*      原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内
;*  存单元中, 结果要求从RESULT开始存放, 由过程SAVE保存到文件
;*  OUTPUT1.DAT中。
;*      对程序必须进行汇编, 并与IO.OBJ链接产生PROG1.EXE 执行文
;*  件, 最终运行程序产生结果(无结果或结果不正确者均不得分)。

           EXTRN      LOAD:FAR,SAVE:FAR

N          EQU        20
RATE1      EQU        70
RATE2      EQU        120
DELTA      EQU        10

STAC       SEGMENT    STACK
           DB         128 DUP (?)
STAC       ENDS

DATA       SEGMENT
SOURCE     DB         N   DUP(?)
RESULT     DW         N   DUP(0)
NAME0      DB         "INPUT1.DAT",0
NAME1      DB         "OUTPUT1.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

           LEA        DX,SOURCE   ; 数据区起始地址
           LEA        SI,NAME0    ; 原始数据文件名起始地址
           MOV        CX,N        ; 字节数
           CALL       LOAD        ; 从"input1.dat"中读取数据
;  **** BEGIN ****

           LEA        SI,SOURCE
           LEA        DI,RESULT
           CLD           
           MOV        CX,N
           MOV        BL,RATE1
           MOV        BH,RATE2
NEXT:      mov        al,[si]
           ;_________________________
           CMP        AL,DELTA
           ja         great
           ;J__        GREAT
           MUL        BL
           JMP        STORE
GREAT:     sub        ax,delta
           ;_________________________
           MUL        BH
           add        ax,delta*rate1
           ;_________________________
STORE:     mov        [di],ax
           add        di,2
           ;_________________________
           ;_________________________
           INC        SI
           LOOP       NEXT

;  ****  END  ****
           LEA        DX,RESULT    ; 结果数据区首址
           LEA        SI,NAME1     ; 结果文件名起始地址
           MOV        CX,N*2       ; 字节数
           CALL       SAVE         ; 保存结果到"output1.dat"文件中
           RET
START      ENDP
CODE       ENDS
           END        START

 

input1.dat 内容如下:
05 03 0A 22 0C 03 04 05 19 0C 0B 04 03 11 10 01 15 83 0F 0A
output1.dat 内容应当如下:
5E 01 D2 00 BC 02 FC 0D AC 03 D2 00 18 01 5E 01
C4 09 AC 03 34 03 18 01 D2 00 04 06 8C 05 46 00
E4 07 74 3B 14 05 BC 02

上机题之五
以下内容为程序代码:

;*      请编制程序PROG1.ASM, 其功能是: 计算10×3矩阵中每一行元
;*  素(八位二进制数)之和, 并将其存放在指定的内存区中。
;*      例如:
;*      内存中有 0,0,0(第1行),1,1,1(第2行),.....,9,9,9(第10行)
;*      结果为   0000H,0003H,...,001BH
;*      部分程序已经给出,其中原始数据由过程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(?)
RESULT  DW      N/3 DUP(0)
I       EQU     10
J       EQU     3
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
LPI:    MOV     DX,0
        MOV     CX,1
LPJ:    MOV     AL,[SI]
        mov     ah,0
        ;_______________
        ADD     DX,AX
        inc     si
        ;INC     __
        INC     CX
        cmp     cx,J
        ;CMP     CX,__
        JBE     LPJ
        mov     [di],dx
        add     di,2
        ;MOV     [DI],___
        ;ADD     DI,_____
        INC     BX
        CMP     BX,I
        JBE     LPI
;   *** END   ***
        LEA     DX,RESULT
        LEA     SI,NAME1
        MOV     CX,N*2/3
        CALL    SAVE
        RET
START ENDP
CSEG    ENDS
        END     START

 

input1.dat 内容如下:
010101020202030303040404050505060606070707080808090909101010
output1.dat 内容应当如下:
03 00 06 00 09 00 0C 00 0F 00 12 00 15 00 18 00
1B 00 30 00

 


本文来源:https://shitiku.jxxyjl.com/dengjikaoshi/1280.html

Copyright @ 2011- 考试题库网 All Rights Reserved. 版权所有

免责声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

 站长统计