教育学习网
 | 网站首页 | 最新动态 | 资料下载 | 免费课件 | 考试频道 | 教师专区 | 留学移民 | 英语学习 | 教育论文 | 常用文书 | 教案例文 | 作文大全 | 
eduxue.com baidu
栏目更新推荐  
·备考三级PC南开100题(9)
·备考三级PC南开100题(8)
·备考三级PC南开100题(7)
·备考三级PC南开100题(6)
·备考三级PC南开100题(5)
·备考三级PC南开100题(4)
·备考三级PC南开100题(3)
·备考三级PC南开100题(2)
赞助广告  
 
 教育学习网 > 考试频道 > 计算机类考试 > 计算机等级考试 > 模拟试题 > 文章正文
备考三级PC南开100题(9)
www.eduxue.com 来源:本站原创 更新时间:2007-9-11 【字体:
推荐文章:全国计算机等级考试一级05
推荐文章简介:
1.    在Word的编辑状态,单击文档窗口标题栏右侧的按钮 后,会( )。D  A、将窗口关闭 B、打开一个空白窗口 C、使文档窗口独占屏幕 D、使当前窗口缩小  2.    在Word的编辑状态,当前编辑的文档是C盘中的d1.doc文档

第八十一题:
一、请编制程序,其功能是:内存中连续存放着20个ASCII字符,如果是小写字母a~z之间的字符,请把它们转换成相应的大写字符;若为其他字符,不作转换。
例如:
内存中有  61H(’a’), 62H(’b’),31H(’1’)41H(’A’),42H(’B’)…
结果为      41H(’A’), 42H(’B’),31H,41H(’A’),42H(’B’)…
部分程序已给出, 其中原始数据由过程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****
        LEA      SI,SOURCE
        LEA      DI,RESULT
        MOV      CX,N
NEXT:   MOV      AL,[SI]
CMP      AL,’a’
JB       ________________
CMP      AL,_____________
J_______ UPPER2
AND      ________________
UPPER2: MOV      [DI],___________
INC      ________________
INC      ________________
________ NEXT
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N           ;字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CODE    ENDS
        END    START
 
 
第八十二题:
一、请编制程序,其功能是:内存中连续存放着两个有符号字节数序列AK和BK(k=0,…,9),求序列CK,CK=AK÷BK(运算结果按序以字的形式连续存放,其中低字节为商,高字节为余数)。
例如:
序列AK为     FFH(-1D),81H(-127D),C0H(-64D),80H(-128D)…
序列BK为     81H(-127D),40H(64D),81H(-127D),01H(1D)…
则结果CK为   FF00H(00H(0D)为商、FFH(-1D)为余数),C1FFH,C000FH,0080H…
    部分程序已给出, 其中原始数据由过程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      DI,______________
        MOV      CX,N
PRO:    MOV      AL,______________
        __________________________    ;AL中数的符号扩展到AH,正的字节变成正的
;字,负的字节变成负的字  
________ SOURCE[BX+N]
MOV      ___________,AX
ADD      DI,2
INC      BX
DEC      CX
JNZ      PRO
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,2*N         ;字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CODE    ENDS
        END    START
 
 
第八十三题:
一、请编制程序,其功能是:内存中连续存放着16个10位无符号二进制数DB9DB8…DB0,其存放格式均为
DB9 DB8 DB7 DB6 DB5 DB4 DB3 DB2         DB1  DB0  0  0  0  0  0  0
|←--------低地址字节------→∣     |←---高地址字节--→∣
    请判别这16个10位二进制数是否小于等于200H;若小于200H,则相应地在内存中存入01H;否则,存入00H。最后存放这16个10位二进制数中小于等于200H的10位列符号二进制数的个数n(n用一个字节表示)。
例如:
内存中有:   C048H,4091H,0080H…
结果为:     01H,00H,01H…(共16个字节),后跟n部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的一段源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
    对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
   
    试题程序:
 
         EXTRN    LOAD:FAR,SAVE:FAR
N        EQU      16
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*2               ;字节数
        CALL     LOAD                 ;从'INPUT1.DAT'中读取数据
;****BEGIN****
        MOV      DI,OFFSET RESULT
MOV      CH,N
        MOV      CL,____________________
MOV      BX,0
MOV      DX,0100H
PRO:    MOV      AH,BYTE PTR SOURCE[BX]  ;10位无符号二进制数高八位
        MOV      AL,____________________ ;10位无符号二进制数低二位
CMP      AX,____________________
JNBE     C_0  
MOV      [DI],__________________                  
INC      _______________________
INC      DI
JMP      JUMP
C_0:    MOV      [DI],DL
INC      DI
JUMP:   ADD      BL,2
DEC      CH
JNZ      PRO
MOV      [DI],CL
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N+1         ;字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CODE    ENDS
        END    START
 
 
第八十四题:
一、请编制程序,其功能是:内存中连续存放着10个二进制字节数,每个数的序号依次定义为0,1,…,9。统计每个数中位为1的个数N0,N1,…,N9(均用一个字节表示),然后按序定义将N0至N9存入内存中,最后再用一个字节这10个数中为1的位的总数n(n=N0+N1+…+N9)。
例如:
    内存中有    00H,01H,03H…
    结果为      00H,01H,02H…最后为n
    部分程序已给出, 其中原始数据由过程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****
        MOV      CL,N
MOV      DI,OFFSET RESULT
        MOV      BX,0
        MOV      DH,0
PRO:    MOV      DL,0
        MOV      AX,SOURCE[BX]
        MOV      CH,_____________
COUNT:  _________________________
JNC      ________________
INC      DL
JUMP:   DEC      CH
________ COUNT
MOV      [DI],____________
ADD      DH,DL
INC      DI
INC      BX
DEC      CL
JNZ      PRO
MOV      ________________
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N+1         ;结果字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CODE    ENDS
        END    START
 
 
第八十五题:
一、请编制程序,其功能是:内存中有一个ASCII字符串(从SOURCE开始存放),试将其中所有连续的回车与换行符(ODH,0AH)置换成单个回车符(0DH)。字符串以00H结尾,长度(包括00H)不超过100字节。
例如:
字符串    41H,42H,0DH,0AH,43H,00H
转换为    41H,42H,0DH,43H,00H
    部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
    对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
    试题程序:
 
         EXTRN    LOAD:FAR,SAVE:FAR
N        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
L0:     MOV      AL,[SI]
        _________________________       
_________________________
MOV      [DI],AL
INC      SI
INC      DI
CMP      AL,0DH
J_______ L1
JMP      _________________
L1:     MOV      AH,[SI]
CMP      AH,0AH
JNE      L0
__________________________
JMP      L0
QUIT:   NOP
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N           ;结果字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CODE    ENDS
        END    START
 
 
第八十六题:
一、请编制程序,其功能是:设内存中有一个由20个八位无符号数组成的数组A(下标从1开始),试求出一个新数组B使
B(I)=A(I)                          I=1,20
B(I)=(A(I-1)+2*A(I)+A(I+1))/4      I=2~19
    结果仍以八位无符号数存放。为了得到尽可能高的精度,要求最后做除法运算。
例如: A为   39H,C6H,D8H,94H…
       B为   39H,A7H,C2H…
    部分程序已给出, 其中原始数据由过程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
A        DB       N DUP(?)     
B        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,A                 ;数据区起始地址
        LEA      SI,NAME0             ;原始数据文件名
        MOV      CX,N                 ;字节数
        CALL     LOAD                 ;从'INPUT1.DAT'中读取数据
;****BEGIN****
        LEA      SI,A
        LEA      DI,B
        MOV      AL,[SI]              ;B[1]=A[1]
MOV      [DI],AL
________________________      ;B[N]=A[N]
_________________________
INC      SI
INC      DI
MOV      CX,_____________
L0:     XOR      AX,AX
        XOR      BX,BX
XOR      DX,DX
MOV      AL,_____________
MOV      BL,_____________
MOV      DL,_____________
________ AX,1
ADD      AX,BX
ADD      AX,DX
SHR      AX,1
SHR      AX,1
MOV      [DI],AL
INC      SI
INC      DI
LOOP     L0
;****END****
        LEA      DX,B           ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N           ;结果字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CODE    ENDS
        END    START
 
 
第八十七题:
一、请编制程序,其功能是:将内存中的20个有符号字节数据依次除以5,并按照四舍五入原则(即余数绝对值的2倍小于除数,则舍去)将商存入指定的内存区域。
例如:
    内存中有    10H,01H,27H,00H,FFH,F8H…
    结果为      03H,00H,08H,00H,00H,FEH…
    部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
    对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
    试题程序:
 
         EXTRN    LOAD:FAR,SAVE:FAR
N        EQU      20
X        EQU      5
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
         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
        LEA      DX,SOURCE            ;数据区起始地址
        LEA      SI,NAME0             ;原始数据文件名
        MOV      CX,N                 ;字节数
        CALL     LOAD                 ;从'INPUT1.DAT'中读取数据
;****BEGIN****
        LEA      SI,SOURCE
        LEA      DI,RESULT
CONT:   LODSB
CBW
MOV      DL,X
IDIV     DL
_________________________
JNS      PLUS
_________________________
ADD      AH,AH
CMP      AH,DL
JB       ________________
SUB      AL,1
JMP      NEXT
PLUS:   ADD      ________________
        CMP      AH,DL
        JB       NEXT
        _________________________
NEXT:   CMP      SI,N
JB       CONT
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N           ;结果字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CSEG    ENDS
        END    START
 
 
第八十八题:
一、请编制程序,其功能是:对10个无符号字节数据排序(升序)。然后剔除第一个数和最后一个数,并按四舍五入原则计算其余8个数据的算术平均值。将剩余的8个数据存入指定的内存区域中,其后存放平均值。
例如:
    内存中有    1,5,4,0,7,9,2,6,8,3
    结果为      1,2,3,4,5,6,7,8,5
    部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
    对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
    试题程序:
 
         EXTRN    LOAD:FAR,SAVE:FAR
N        EQU      20
DSEG    SEGMENT
SOURCE   DB       N DUP(?)     
RESULT   DB       N-1 DUP(0)     
NAME0    DB       'INPUT1.DAT',0
NAME1    DB       'OUTPUT1.DAT',0
TEMP     DW       0
DSEG    ENDS
SSEG    SEGMENT  STACK
         DB       256 DUP(?)
SSEG    ENDS
 
CSEG    SEGMENT
         ASSUME  CS:CSEG,SS:SSEG,DS:DSEG,ES: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****
        MOV      BX,_____________
GOONI:  _________________________
        LEA      SI,SOURCE
GOONJ:  MOV      AL,[SI]
        CMP      AL,[SI+1]
        JLE      NEXT
        XCHG     AL,[SI+1]
        MOV      [SI],AL
NEXT:   ADD      SI,1
        LOOP     GOONJ
        _________________________
        JNZ      GOONI
CLD
LEA      SI,SOURCE
LEA      DI,RESULT
MOV      CX,______________
INC      SI
LP2:    LODSB
CBW
ADD      TEMP,AX
STOSB
LP1:    LOOP     LP2
        MOV      AX,TEMP
        __________________________
        DIV      DL
ADD      AH,AH
CMP      AH,DL
JB       OFF
__________________________
OFF:    MOV      [DI],AL
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N-1         ;结果字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CSEG    ENDS
        END    START
 
 
第八十九题:
一、请编制程序,其功能是:分别统计内存中字符串SEGMENT、EQU、DB、MOV、ADD、ENDS、
PROC、ENDP、AL、END的个数,然后将统计的个数以字节类型依次存入指定的内存中。
例如:
    内存中有    SEGMENT,EQU,DB,DB,MOV,ADD,ENDS,PROC,ENDP,AL,AL,AL,END,SUB,MUL
    结果为      01H,01H,02H,01H,01H,01H,01H,01H,03H,03H
    部分程序已给出, 其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
  填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每行空白一般只需一条指令, 但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
    对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处, 请加以修改。
    试题程序:
 
MSTR     MACRO    STRX,NX1,NX2
         LOCAL    NEXT,AGAIN,FOUND
         CLD
         LEA      SI,SOURCE
NEXT:    CMP      [SI],’$$’
         JE       AGAIN
         MOV      CX,NX1
         LEA      DI,STRX
         REPE     CMPSB
         JNE      NEXT
FOUND:   INC      BYTE PTR NX2
         JMP      NEXT
AGAIN:   ENDM
         EXTRN    LOAD:FAR,SAVE:FAR
N1       EQU      277
N2       EQU      10
DSEG    SEGMENT
SOURCE   DB       N1 DUP(?)     
RESULT   DB       N2 DUP(0)     
STR0     DB       'SEGMENT'
STR1     DB       'EQU'
STR2     DB       'DB'
STR3     DB       'MOV'
STR4     DB       'ADD'
STR5     DB       'ENDS'
STR6     DB       'PROC'
STR7     DB       'ENDP'
STR8     DB       'AL'
STR9     DB       'END'
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,ES:DSEG
START   PROC     FAR
        PUSH     DS
        XOR      AX,AX
        PUSH     AX
        MOV      AX,DSEG
        MOV      DS,AX
        LEA      DX,SOURCE            ;数据区起始地址
        LEA      SI,NAME0             ;原始数据文件名
        MOV      CX,N1                ;字节数
        CALL     LOAD                 ;从'INPUT1.DAT'中读取数据
;****BEGIN****
MSTR    ________________
MSTR    ________________
MSTR    ________________
MSTR    ________________
MSTR    ________________
MSTR    ________________
MSTR    ________________
MSTR    ________________
MSTR    ________________
MSTR    ________________
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,N2          ;结果字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CSEG    ENDS
        END    START
 
 
第九十题:
一、请编制程序,其功能是:内存中连续存放着20个无符号字节数序列,求出该序列的最大值和最小值。结果存放形式为:先按原序存放20个需处理的无符号字节序列,后跟该序列的最大值和最小值(最大值在前,最小值在后)。
例如:
    内存中有 01H,02H,03H…
    结果为   01H,02H,03H…(共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****
;最大值放在BH中,最小值放在BL中
        LEA      SI,SOURCE
        LEA      ________RESULT
        MOV      BH,[SI]
MOV      BL,BH
ADD      SI,____________
________________________
        MOV      CX,N-1
NEXT:   MOV      AL,[SI]
CMP      AL,BH
        ________ CHKMIN
        MOV      BH,AL
        JMP      ENDL
CHKMIN: CMP      AL,BL
JAE      ENDL
MOV      ________,AL
ENDL:   MOV      [DI],AL
        ADD      SI,1
        ADD      DI,1
LOOP     NEXT
MOV      [DI],_____________
___________________________
;****END****
        LEA      DX,RESULT      ;结果数据区首址
        LEA      SI,NAME1       ;结果文件名
        MOV      CX,2+N         ;字节数
        CALL     SAVE           ;保存结果到文件
        RET
START   ENDP
CODE    ENDS
        END    START
  • 上一篇文章:

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