教育学习网
 | 网站首页 | 最新动态 | 资料下载 | 免费课件 | 考试频道 | 教师专区 | 留学移民 | 英语学习 | 教育论文 | 常用文书 | 教案例文 | 作文大全 | 
eduxue.com baidu
栏目更新推荐  
·备考三级PC南开100题(8)
·备考三级PC南开100题(7)
·备考三级PC南开100题(6)
·备考三级PC南开100题(5)
·备考三级PC南开100题(4)
·备考三级PC南开100题(3)
·备考三级PC南开100题(2)
·备考三级PC南开100题(1)
赞助广告  
 
 教育学习网 > 考试频道 > 计算机类考试 > 计算机等级考试 > 模拟试题 > 文章正文
备考三级PC南开100题(8)
www.eduxue.com 来源:本站原创 更新时间:2007-9-11 【字体:
推荐文章:全国计算机等级考试一级15
推荐文章简介:
1.微机中1K字节表示的二进制位数是( )。D  A、1000 B、8x1000 C、1024 D、8x1024   2.计算机硬件能直接识别和执行的只有( )。D  A、高级语言 B、符号语言 C、汇编语言 D、机器语言    3.用于保存计算机输入输出数

第七十一题:

一、请编制程序,其功能是:内存中连续存放着由串行通讯接收到的10个字节数,根据通讯协议,前九个数应为ASCII字符(8位二进制数表示,最高位为零)的偶校验码,最后一个数为前九个偶校验码的累加码(累加值的低8位二进制数),现依次判别接收的前九个字节数是否为偶校验码,若是,则将其转换为ASCII字符,否则以07H代替。然后计算接收的前九个字节数的累加码,并与接收到的累加码比较,若相等则在紧跟九个转换结果后的一个内存单元中置06H,否则置07H。

例如:

    内存中有    B7H,38H,39H…

结果为      37H,07H,39H…后跟06H或07H。

部分程序已给出, 其中原始数据由过程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(?)        ;顺序存放9个ASCII字符

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****

        MOV      SI,OFFSET SOURCE

MOV      DI,OFFSET RESULT

        MOV      DX,N-1

        MOV      AL,0

PRO:    MOV      BL,[SI]

        ________ AX

MOV      CX,8

MOV      AL,0

LP1:    ROR      BL,1

ADC      AL,0

LOOP     LP1

AND      AL,01H

________ GOOD0

MOV      BL,07H

JMP      STORE0

GOOD0:  AND      ________,________

STORE0: MOV      [DI],BL

        ________ AX

        ADD      AL,[SI]

        INC      DI

        INC      SI

DEC      DX

JNZ      LP0

__________________________

JZ       GOOD1

MOV      AL,07H

JMP      STORE1

GOOD1:  MOV      AL,06H

STORE1: MOV      [DI],AL

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,N           ;结果字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CODE    ENDS

        END    START

 

 

第七十二题:

一、请编制程序,其功能是:内存中连续存放着10个无符号8位二进制数,现将此十个数转换成10个8位格雷码表示的数,结果存入内存。其转换方法为格雷码的最高位g7与二进制数的最高位d7相同,格雷码的其余七位gk(k=6,…0)分别为二进制数的位dk+1(k=6,…,0)与位dk(k=6,…,0)异或的结果。

例如:

    内存中有    00H,02H,32H,45H,08H,19H,67H,03H,90H,85H

    结果为      00H,03H,2BH,67H,0CH,15H,54H,02H,D8H,C7H

    部分程序已给出, 其中原始数据由过程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(?)        ;顺序存放10个字节数

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*2               ;字节数

        CALL     LOAD                 ;从'INPUT1.DAT'中读取数据

;****BEGIN****

        LEA      SI,SOURCE

LEA      DI,RESULT

        MOV      CX,10

AGN0:   MOV      AL,[SI]

______________________

MOV      CX,8

MOV      BX,0

AGN1:   MOV      AH,0

________ BL,1

ROL      AL,1

_________________________

CMP      AH,BH

________ SET_ONE

JMP      NEXT

SET_ONE:OR       BL,01H

NEXT:   MOV      _________,AH

LOOP     AGN1

_________________________

MOV      [DI],BL

INC      SI

INC      DI

LOOP     AGN0

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,N           ;结果字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CODE    ENDS

        END    START

 

 

第七十三题:

一、请编制程序,其功能是:内存中连续存放着5个递增的无符号8位二进制数,此5个数分别对应于某非线性温度传感器在温度0℃、3℃、6℃、9℃和12℃时的输出值Yn(n=0、3、6、9、12),现采用分段线性插值法求出传感器在温度1℃、2℃、4℃、5℃、7℃、8℃、10℃和11℃时的近似输出值Yk(k=1、2、4、5、7、8、10、11),Yk取整数,其公式为Yk=[(Yn+3-Yn)/3]*(k-n)+Yn,其中k=n+1、n+2,n=0、3、6、9,将结果存入内存。

例如:

    内存中有    01H,0AH,19H,31H,5EH

结果为      04H,07H,0FH,14H,21H,29H,40H,4FH

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

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

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

    试题程序:

 

         EXTRN    LOAD:FAR,SAVE:FAR

N        EQU      5

STAC    SEGMENT  STACK

         DB       128 DUP(?)

STAC    ENDS

DATA    SEGMENT

SOURCE   DB       N DUP(?)        ;顺序存放10个字节数

RESULT   DB       5 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*2               ;字数

        CALL     LOAD                 ;从'INPUT1.DAT'中读取数据

;****BEGIN****

        LEA      SI,SOURCE

        LEA      DI,RESULT

        MOV      CX,4

        __________________________

AGN0:   MOV      BL,[SI]   

        INC      SI

        MOV      AL,[SI]

SUB      AL,BL

__________________________

MOV      BH,1

AGN1:   MUL      _________________

        DIV      DL

ADD      ___________,BL

MOV      [DI],AL

INC      DI

__________________________

INC      BH

CMP      BH,______________

JNA      AGN1

LOOP     AGN0

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,8           ;结果字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CODE    ENDS

        END    START

 

 

第七十四题:

一、请编制程序,其功能是:以SOURCE开始的内存区域存放着N个字节的有符号数。现找出最大的数,结果存放到RESULT指示的单元,其后存放原N个数逻辑取反后的值。

内存中有  09H,7EH,89H,F3H,17H,…,67H(N个数据)

结果为    7EH(最大数),F6H,81H,76H,0CH,E8H,…,98H(原来N个数的逻辑反)

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

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

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

   

    试题程序:

 

         EXTRN    LOAD:FAR,SAVE:FAR

N        EQU      19

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

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

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

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

        MOV      CX,N                 ;字节数

        CALL     LOAD                 ;从'INPUT1.DAT'中读取数据

;****BEGIN****

        ________ SI,SOURCE

        MOV      BX,OFFSET SOURCE

        LEA      DI,RESULT

MAXD1:  MOV      CX,N

        MOV      DX,CX

        MOV      AL,_______________

MAXD2:  INC      BX

        ________ AL,[BX]

        ___________________________

MOV      AL,[BX]

MAXD3:  DEC      DX

        JNZ      __________________

MOV      [DI],AL

INC      DI

CLD

MREP:   LODSB

        NOT      AL

        ____________________________

LOOP     MREP

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,N+1         ;字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CODE    ENDS

        END    START

第七十五题:
一、请编制程序,其功能是:内存中连续存放着两个无符号字节数序列Ak和Bk(k=0,…,9),求序列Ck,Ck为Ak和Bk异或运算的结果。以字节的形式按C0,…,C9的顺序存放逻辑运算的结果。
例如:
序列Ak为:     00H,03H,07H…
序列Bk为:     FFH,AAH,55H…
序列Ck为:     FFH,A9H,52H…
    部分程序已给出, 其中原始数据由过程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*2 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*2               ;字节数
        CALL     LOAD                 ;从'INPUT1.DAT'中读取数据
;****BEGIN****
        MOV      __________________
        MOV      __________________
        MOV      BX,0
PRO:    MOV      AL,_______________
        XOR      AL,[BX]
        MOV      __________________
        INC      DI
        DEC      CX
        JNZ      PRO
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N           ;字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CODE    ENDS
        END    START
 
 
第七十六题:
一、请编制程序,其功能是:将10个无符号字节数据中高4位和低4位所表示的十六进制数分别转换为ASCII码,并按照先低后高位的顺序存放在指定的内存区中。
例如:
内存中有      61H,4AH,5BH…
结果为        31H,36H,41H,34H,42H,35H…
    部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
    对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
   
    试题程序:
 
         EXTRN    LOAD:FAR,SAVE:FAR
N        EQU      10                 
DSEG    SEGMENT
SOURCE   DB       N DUP(?)           
RESULT   DW       2*N DUP(0)           
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                 ;从'INPUT1.DAT'中读取数据
;****BEGIN****
        LEA      SI,SOURCE
        LEA      DI,RESULT
        MOV      CX,N
        CLD
NEXT:   LODSB
MOV      BL,AL
AND      AL,_______________
CALL     SR
MOV      AL,BL
PUSH     CX
MOV      CL,4
SHR      AL,_______________
___________________________
CALL     SR
LOOP     NEXT
JMP      EXIT
SR      PROC
        CMP      AL,0AH
        JB       NUM
        ADD      AL,07H
NUM:    ADD      AL,_______________
        STOSB
        RET
SR      ___________________________
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,2*N         ;字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CSEG    ENDS
        END    START
 
 
第七十七题:
一、请编制程序,其功能是:计算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                 ;从'INPUT1.DAT'中读取数据
;****BEGIN****
        LEA      SI,SOURCE
        LEA      DI,RESULT
        MOV      BX,1
LPI:    MOV      DX,0
        MOV      CX,1
LPJ:    MOV      AL,[SI]
        ___________________________
        ADD      DX,AX
INC      __________________
INC      CX
CMP      CX,_______________
JBE      LPJ
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
 
 
第七十八题:
一、请编制程序,其功能是:计算10×3矩阵中每一行元素(八位二进制数)之和,并将其存放在指定的内存区中。
例如:
内存中有      0,0,0,0,0,0,0,0,0,0(第1行),1,1,1,1,1,1,1,1,1,1(第2行)…9,9,9,9,9,9,9,9,9,9,9,9,9(第3行)
结果为        000AH,000AH…000AH
    部分程序已给出, 其中原始数据由过程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(?)
SRC      DW       SOURCE          
RESULT   DW       N/3 DUP(0)
I        EQU      3
J        EQU      10          
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                 ;从'INPUT1.DAT'中读取数据
;****BEGIN****
        LEA      SI,SOURCE
        LEA      DI,RESULT
        MOV      BX,1
LPJ:    MOV      DX,0
        MOV      CX,1
LPI:    MOV      AL,[SI]
        ___________________________
        ADD      DX,AX
        ADD      SI,_______________
INC      CX
CMP      CX,I
JBE      LPI
MOV      [DI],DX
ADD      DI,_______________
INC      SRC
___________________________
CMP      BX,_______________
JBE      LPJ
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N*2/3       ;字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CSEG    ENDS
        END    START
 
 
第七十九题:
一、请编制程序,其功能是:在递增的有序字节数组中插入一个正整数,并按指定的数组个数存入内存区中。假设数组元素均为正数。
例如,将02H插入下面的数组中:
01H,03H,04H,05H…
结果为    01H,02H,03H,04H,05H…
    部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
    对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
   
    试题程序:
 
         EXTRN    LOAD:FAR,SAVE:FAR
N        EQU      10                 
DSEG    SEGMENT
MIN      DB       -1
SOURCE   DB       N DUP(?)           
X        EQU      2                   ;插入的个数
RESULT   DB       N DUP(0)
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                 ;从'INPUT1.DAT'中读取数据
;****BEGIN****
        LEA      BX,SOURCE
        MOV      SI,N-2
        ADD      BX,SI
MOV      SI,0
MOV      AL,X
LP:     CMP      ________,[BX+SI]
        JGE      INS
        MOV      DL,[BX+SI]
        MOV      [BX+SI+1],________
        DEC      __________________
        JMP      LP
INS:    MOV      ____________,AL
        CLD
LEA      SOURCE
LEA      RESULT
MOV      CX,N
________ MOVSB
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N           ;字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CSEG    ENDS
        END    START
 
 
第八十题:
一、请编制程序,其功能是:对内存中存放的四组带符号8位二进制数(每组由五个数组成,均不为零)进行处理。处理方法为:当每组中负数多于正数时,将组内正数变成负数(但绝对值不变,下同),组内负数不变。反之,将组内负数变成正数,组内正数不变。变换好的数按原序存放在内存中。
例如:
内存中有  FDH,FEH,02H,01H,03H,03H,01H,FFH,FEH,FDH…(共四组20个数)
结果为    03H,02H,02H,01H,03H,FDH,FFH,FFH,FEH,FDH…(共20个数)
部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除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****
        MOV      SI,0
MOV      DI,0
        MOV      BX,_______________
REPT1:  MOV      DX,0
        MOV      CX,5
CAMP:   MOV      AL,SOURCE[SI]
        INC      SI
        CMP      AL,0
        ________ CONT
        JMP      __________________
CONT:   INC      DX
NEXT:   LOOP     CAMP
        SUB      SI,5
        MOV      CX,5
        CMP      DX,3
        ________ NEG1
        JMP      NEXT1
NEG1:   MOV      AL,SOURCE[SI]
        INC      SI
CMP      AL,0
JG       NEG2
JMP      NOTNEG
NEG2:   NEG      AL
NOTNEG: MOV      RESULT[DI],AL
        INC      DI
LOOP     NEG1
JMP      NEXT2
NEXT1:  MOV      AL,SOURCE[SI]
INC      SI
CMP      AL,_______________
JL       NEG3
JMP      __________________
NEG3:   NEG      AL
NOTNEG1:MOV      RESULT[DI],AL
        INC      DI
        LOOP     NEXT1
NEXT2:  DEC      BX
        ___________________________
        JMP      REPT1
EXIT:   NOP
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N           ;字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CODE    ENDS
        END    START

 

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 百度相关搜索: 模拟试题
     
    关于〖备考三级PC南开100题(8)〗的最新评论:
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站地图
    教育学习中心主办 苏ICP备05003810号
    Copyright© 2003-2008 www.EduXue.com All rights reserved.