教育学习网
 | 网站首页 | 最新动态 | 资料下载 | 免费课件 | 考试频道 | 教师专区 | 留学移民 | 英语学习 | 教育论文 | 常用文书 | 教案例文 | 作文大全 | 
eduxue.com baidu
栏目更新推荐  
·备考三级PC南开100题(4)
·备考三级PC南开100题(3)
·备考三级PC南开100题(2)
·备考三级PC南开100题(1)
·二级FORTRAN程序设计上机题1
·二级FORTRAN程序设计上机题2
·二级FORTRAN程序设计上机题3
·二级FORTRAN程序设计上机题4
赞助广告  
 
 教育学习网 > 考试频道 > 计算机类考试 > 计算机等级考试 > 模拟试题 > 文章正文
备考三级PC南开100题(4)
www.eduxue.com 来源:http://www.eduxue.com 更新时间:2007-9-8 【字体:
推荐文章:备考三级PC南开100题(2)
推荐文章简介:
第十一题:一、请编制程序,其功能是:以SOURCE开始的内存区域存放着多个字节的数据,其中有压缩BCD码和其他数据。现按下列编码规则进行编码:在第每个压缩BCD码前面加两个字节前缀代码BEH和CCH,并在其后加两个字后

第三十一题:

一、请编制程序,其功能是:内存中连续存放着10个16位二进制数,分别对每个数的高位字节和低位字节进行逻辑与运算及逻辑或运算。运算结果以字的形式按序连续存放(低位字节存入逻辑与运算的结果,高位字节存入逻辑或运算的结果)。

例如:

内存中有  AA55H,55AAH,FFAAH…

结果为      FF00H,FF00H,FFAAH…

部分程序已给出, 其中原始数据由过程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 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      DI,OFFSET RESULT

        MOV      CX,N

        MOV      BX,00

PRO:    MOV      AX,_______________

MOV      DX,AX

AND      _________,DH

        ________ AH,AL

        MOV      _________,DL

ADD      BX,2

        ___________________________

        JNZ      PRO

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,N*2         ;字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CODE    ENDS

        END    START

 

 

第三十二题:

一、请编制程序,其功能是:将连续20个字节的十六进制数顺序转换成40个ASCII字符(字母用大写)。转换的顺序是先高四位,后低四位。

例如: 原始数据是      AFH,14H…

   转换后应是      41H,46H,31H,34H…

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

  请在BEGIN和END之间补充一段源程序,完成要求的功能。

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

   

    试题程序:

 

         EXTRN    LOAD:FAR,SAVE:FAR

N        EQU      20

DSEG    SEGMENT

SOURCE   DB       N DUP(?)       

RESULT   DB       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,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,N                 ;字节数

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

;****BEGIN****

LEA       SI,SOURCE

LEA       DI,RESULT

MOV       CX,N

LOOP2: MOV       BL,2
MOV       AL,[SI]

MOV       AH,AL

PUSH      CX

MOV       CL,4

SHR       AL,CL

POP       CX

EXCH:  CMP       AL,9

JNA       CHAR

ADD       AL,07H

CHAR:  ADD       AL,30H

MOV       [DI],AL

INC       DI

DEC       BL

JZ        LOOP1

AND       AH,0FH

MOV       AL,AH

JMP       EXCH

LOOP1: INC       SI

       LOOP      LOOP2

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,N*2         ;字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CSEG    ENDS

        END    START

 

 

第三十三题:

一、请编制程序,其功能是:为一个ASCII字符串中所有的字符最高位加上奇校验位。字符串以00H结束,长度不超过20个字节。

例如: 字符串为      41H,42H,43H,00H(’ABC’)

   转换后为      C1H,C2H,43H,00H

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

  请在BEGIN和END之间补充一段源程序,完成要求的功能。

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

   

    试题程序:

 

         EXTRN    LOAD:FAR,SAVE:FAR

N        EQU      20

DSEG    SEGMENT

SOURCE   DB       N DUP(?)       

RESULT   DB       N DUP(0)       

NAME0    DB       'INPUT1.DAT',0

NAME1    DB       'OUTPUT1.DAT',0

DSEG    ENDS

SSEG    SEGMENT  STACK

         DW       256 DUP(?)

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,N                 ;字节数

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

;****BEGIN****

LEA       SI,SOURCE

LEA       DI,RESULT

LOOP2: MOV       AL,[SI]
CMP       AL,00H

JE        EXIT

ADD       AL,0

JNP       LOOP1

OR        AL,80H

LOOP1:  MOV       [DI],AL
INC       DI

INC       SI

JMP       LOOP2

EXIT:   MOV       [DI],AL

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,N           ;字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CSEG    ENDS

        END    START

 

 

第三十四题:

一、请编制程序,其功能是:为一个ASCII字符串中所有的大写字母全部变成小写字母,其它字符不变。字符串以00H结束,长度不超过20个字节。

例如: 字符串为      41H,42H,31H,65H,00H(’AB1e’)

   转换后为      61H,62H,31H,65h,00H(’ab1e’)

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

  请在BEGIN和END之间补充一段源程序,完成要求的功能。

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

   

    试题程序:

 

         EXTRN    LOAD:FAR,SAVE:FAR

N        EQU      20

DATA    SEGMENT PARA PUBLIC  'DATA'

SOURCE   DB       N DUP(?)       

RESULT   DB       N DUP(0)       

NAME0    DB       'INPUT1.DAT',0

NAME1    DB       'OUTPUT1.DAT',0

DATA    ENDS

SSEG    SEGMENT  STACK

         DB       256 DUP(?)

SSEG    ENDS

CODE    SEGMENT

         ASSUME  CS:CODE,DS:DATA,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,N                 ;字节数

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

;****BEGIN****

LEA       SI,SOURCE

LEA       DI,RESULT

LOOP1:  MOV       AL,[SI]
CMP       AL,00H

JE        EXIT

CMP       AL,41H

JB        KEEP

CMP       AL,5AH

JNBE      KEEP

ADD       AL,20H

KEEP:   MOV       [DI],AL

        INC       DI
INC       SI

JMP       LOOP1

EXIT:   MOV       [DI],AL

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,N           ;字节数

        CALL     FAR PTR SAVE   ;保存结果到文件

        RET

START   ENDP

CODE    ENDS

        END    START

 

 

第三十五题:

一、请编制程序,其功能是:设20个8位有符号数构成一个数组,试依次去掉其中负的奇数,生成一个新的数组(顺序不变)。

部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中(请自行在CX中设定输出长度)。

  请在BEGIN和END之间补充一段源程序,完成要求的功能。

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

   

    试题程序:

 

         EXTRN    LOAD:FAR,SAVE:FAR

LE       EQU      20

DSEG    SEGMENT

SOURCE   DB       LEN DUP(?)       

RESULT   DB       LEN DUP(0)       

NAME0    DB       'INPUT1.DAT',0

NAME1    DB       'OUTPUT1.DAT',0

DSEG    ENDS

SSEG    SEGMENT  STACK

         DW       256 DUP(?)

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,LEN               ;字节数

        CALL     LOAD                 ;从'INPUT1.DAT'中读取20个字节的数据

;****BEGIN****

LEA       SI,SOURCE

LEA       DI,RESULT

MOV       CX,20

LOOP1: MOV       AL,[SI]
MOV       AH,AL

SHR       AH,1

JNC       KEEP

CMP       AL,0

JNL       KEEP

JMP       EXIT

KEEP:  MOV       [DI],AL

INC       DI

EXIT:  INC       SI
       LOOP      LOOP1

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CSEG    ENDS

        END    START

 

 

第三十六题:

一、请编制程序,其功能是:将一个字符串中连续相同的字符仅用一个字符代替,生成一个新的字符串。字符串以00H结束,长度不超过20个字节。

例如: 原字符串为  41H,41H,41H,42H,31H,31H,00H(’AAAB11’)

       新字符串为  41H,42H,31H,00H(’AB1’)

部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中(请自行在CX中设定输出长度)。

  请在BEGIN和END之间补充一段源程序,完成要求的功能。

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

   

    试题程序:

 

         EXTRN    LOAD:FAR,SAVE:FAR

LE       EQU      20

DSEG    SEGMENT

SOURCE   DB       LEN DUP(?)       

RESULT   DB       LEN DUP(0)       

NAME0    DB       'INPUT1.DAT',0

NAME1    DB       'OUTPUT1.DAT',0

DSEG    ENDS

SSEG    SEGMENT  STACK

         DW       256 DUP(?)

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,LEN               ;字节数

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

;****BEGIN****

LEA       SI,SOURCE

LEA       DI,RESULT

MOV       CX,20

LOOP1: MOV       AL,[SI]
CMP       AL,00H
JE        EXIT

NEXT:  INC       SI

MOV       AH,[SI]

CMP       AL,AH

JE        NEXT

MOV       [DI],AL

INC       DI

JMP       LOOP1

EXIT:  MOV       [DI],AL

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CSEG    ENDS

        END    START

 

 

第三十七题:

一、请编制程序,其功能是:内存中连续存放着20个十六进制数,对每个数逻辑右移,使其最低位为“1”(值为零的字不变)。

例如:

内存中有:     A704H(1010011100000100B)0000H,9A58H…

结果为:       29C1H(0010100111000001B)0000H,134BH…

    部分程序已给出, 其中原始数据由过程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   DW       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,2*N               ;字节数

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

;****BEGIN****

        LEA      SI,SOURCE

        LEA      DI,RESULT

        MOV      CX,N

NEXT:   MOV      AX,[SI]

        CMP      AX,_______________

JE       SKIP

LOOP1:  ________ AX,0001H

J_______ SKIP

________ AX,1

JMP      LOOP1

SKIP:   MOV      [DI],AX

ADD       SI,2

ADD       DI,2

___________________________

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,N*2         ;字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CODE    ENDS

        END    START

 

 

第三十八题:

一、请编制程序,其功能是:内存中从SOURCE开始连续存放着20个十六位二进制数,试统计每个数中二进制位为1的个数。结果以字节存放。

例如:

内存中有:     139CH,5B8CH,1489H…

结果为:       07H,   08H,   05H…

    部分程序已给出, 其中原始数据由过程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   DW       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,2*N               ;字节数

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

;****BEGIN****

        LEA      SI,SOURCE

        LEA      DI,RESULT

        CLD

MOV      DX,N

LOOP0:  LODS_______________________

___________________________

MOV      CX,16

LOOP1:  ROL      AX,1

        J_______ NEXT

        INC      BX

NEXT:   LOOP     __________________

MOV      [DI],BL

___________________________

DEC      DX

JNZ      LOOP0

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,N           ;字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CODE    ENDS

        END    START

 

 

第三十九题:

一、请编制程序,其功能是:以SOURCE开始的内存区域存放着N个字节的压缩BCD码,将每个压缩BCD码转换成两个ASCII码,并在最高位增加偶校验位,结果存放到RESULT指示的内存区域。

例如:

原压缩BCD码:26H,75H,91H,33H…

结果为:       B2H,36H,B7H,35H,39H,B1H,33H,33H…

    部分程序已给出, 其中原始数据由过程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       2*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

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

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

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

        MOV      CX,N                 ;字节数

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

;****BEGIN****

        LEA      SI,SOURCE

        MOV      DI,OFFSET RESULT

        MOV      CX,N

SERCH1: MOV      __________________

        CMP      AX,AL

        AND      AH,0FH

AND      AL,0F0H

PUSH     CX

MOV      CL,4

___________________________

___________________________

ADD      AL,30H

___________________________

OR       AL,80H

SERCH2: MOV      [DI],AL

INC      DI

___________________________

JP       SERCH3

OR       AH,80H

SERCH3: MOV      [DI],AH

INC      DI

INC      SI

________ SERCH1

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX, 2*N        ;字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CODE    ENDS

        END    START

 

第四十题:

一、请编制程序,其功能是:内存中连续存放着两个无符号字节数序列AK和BK(k=0…9),求序列CK,CK=AK÷BK(运算结果按序以字的形式连续存放,其中低字节为商,高字节为余数)。

例如:

序列AK为:     01H,7FH,80H,FFH…

序列BK为:     FFH,80H,7FH,01H…

序列CK为:     0100H(00H是商、01H为余数),7F00H,0101H,00FFH…

    部分程序已给出, 其中原始数据由过程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,2*N               ;字节数

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

;****BEGIN****

        MOV      SI,OFFSET SOURCE

        MOV      BX,0

        ___________________________

PRO:    MOV      __________________

        ________ _______,SOURCE[BX]

        DIV      __________________

        MOV      [DI],_____________

        ADD      DI,2

        ___________________________

        DEC      CX

        ________ PRO

;****END****

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

        LEA      SI,NAME1       ;结果文件名

        MOV      CX,2*N         ;字节数

        CALL     SAVE           ;保存结果到文件

        RET

START   ENDP

CODE    ENDS

        END    START

 

 

  • 上一篇文章:

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