编制一个程序,其实现的功能为:求出内存中连续存放的20个无符号数序列的最大值和最小值,并将结果按要求存入。结果的存放形式为:按原序列存放20个需要处理的无符号数,后跟该序列的最小值和最大值(最小值在前,最大值在后)。
例如:
内存中有:23H,45H,61H……
结果为: 23H,45H,61H…… (20个需要处理的原来的无符号数),后面跟该序列的最小值和最大值(最小值在前,最大值在后)。
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
EXTRN LOAD:FAR,SAVE:FAR
N EQU 20
SSEG SEGMENT STACK
DB 256 DUP ( )
SSEG ENDS
DSEG SEGMENT
SOURCE DB N DUP ( )
RESULT DB N+2 DUP (0)
NAME0 DB ’INPUT.DAT’,0
NAME1 DB ’0UTPUT.DAT’,0
DSEG 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
; ******** BEGIN ********
LEA SI,SOURCE
LEA DI,RESULT
MOV DL,[SI]
MOV DH,DL
MOV [DI],DL
INC SI
INC DI
MOV CX, (1)
AGAIN: MOV AL,[SI]
CMP (2)
JBE MIN
(3)
JMP NEXT
MIN: CMP (4)
JAE NEXT
MOV DL,AL
NEXT: MOV [DI],AL
INC SI
INC DI
LOOP AGAIN
MOV [DI],DL
MOV (5)
; ******** END ********
LEA DX,RESULT
LEA SI,NAME1
MOV CX,N+2
CALL SAVE
RET
START ENDP
CSEG ENDS
END START

(A) N-A (B) AL,DH (C) MOV DH,AL (D) AL,DL (E) [DI+A],DH

请编制程序,其功能是:内存中连续存放着20个无符号字节数序列,请将它们排成升序(从小到大)。
例如:
内存中有:01H,04H,02H…(假设后17个字节均大于04H)
结果为: 01H,02H,04H…(后跟17个字节,按从小到大的顺序排列)
部分程序已给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
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 ’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
LEA DX,SOURCE ; 数据区起始地址
LEA SI,NAME0 ; 原始数据文件名
MOV CX,N ; 字节数
CALL LOAD ; 从’INPUT.DAT’中读取数据
; ******** BEGIN ********
LEA SI,SOURCE
LEA DI,RESULT
MOV CX,N
NEXT0: MOV AL,[SI]
MOV [DI],AL
INC SI
(1)
LOOP (2)
CLD
MOV BX, (3)
NEXT1: LEA SI,RESULT
MOV CX,BX
NEXT2: LOD (4)
CMP [SI],AL
JAE (5)
XCHG [SI], (6)
MOV [SI-1],AL
NEXT3: LOOP (7)
DEC (8)
JNZ (9)
; ******** END ********
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名
MOV CX,N ; 结果字节数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START

(1) INC DI (2) NEXT0 (3) N-1 (4) SB
(5) NEXT3 (6) AL (7) NEXT2 (8) BX (9) NEXT1

请编制程序,其功能是:内存中连续存放着20个十进制数字的ASCⅡ字符,把它们转换成10个字节的压缩型(组合型) BCD码。
例如:
内存中有:31H(’1’),32H(’2’),33H(’3’),34H(’4’)…(共20个字节)
结果为: 21H,43H,…(共10个字节)
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白处已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序存在错误之处,请加以修改。
【试题程序】
EXTRN LOAD:FAR, SAVE:FAR
N EQU 10
STAC SEGMENT STACK
DB 128 DUP ( )
STAC ENDS
DATA SEGMENT
SOURCE DB N*2 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 ********
LEA SI,SOURCE
LEA DI,RESULT
MOV CX,N
NEXT: MOV (1) ,[SI]
(2)
AND AL, (3)
MOV BL,AL
(4)
ADD SI,2
PUSH (5)
MOV CL, (6)
SAL AL,CL
POP (7)
ADD AL, (8)
MOV (9) ,AL
(10)
LOOP NEXT
; ******** END ********
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START

AX (B) MOV BH,AH (C) 0FH (D) MOV AL (E) CX
(F) D (G) CX (H) BL (I) [DI] (A0) INC DI

请编制程序,其功能是:内存中连续存放着20个ASCⅡ字符,如果是小写字母a~z之间的字符(包括字母a和z),请把它们转换成相应的大写字母所对应的ASCⅡ字符;若为其他字符,不作转换。
例如:
内存中有:61H(’a’),62H(’b’),31H(’1’),41H(’A’),42H(’B’)…
结果为: 41H(’A’),42H(’B’),31H,41H,42H…
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白处已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序存在错误之处,请加以修改。
【试题程序】
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 ; 从"INPUT.DAT"中读取数据
; ******** BEGIN ********
LEA SI, SOURCE
LEA DI, RESULT
MOV CX, N
NEXT: MOV AL,[SI]
CMP AL,’a’
JB (1)
CMP AL, (2)
J (3) UPPER2
SUB AL, (4)
UPPER2: HOV [DI], (5)
INC (6)
INC (7)
(8) NEXT
; ******** END ********
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名
MOV CX,N ; 结果字节数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START

(1) UPPER2 (2) ’z’ (3) JA (4) 20H
(5) AL (6) SI (7) DI (8) LOOP

请编制程序,其功能是:从第0行第0列开始,依次取出N阶矩阵中对角线上的元素(字节型)并计算累加和(字型),然后将其存放在指定的内存区中。
例如:
内存中有:01H,01H,01H,02H,02H,02H,03ff,03H,03H
结果为: 01H,02H,03H,06H,00H
部分程序已给出,其中原始数据由过程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 N*10 DUP( )
RESULT DB (N+2) DUP(0)
NAME0 DB ’INPUT.DAT’,0
NAME1 DB ’OUTPUT.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*10
CALL LOAD
******** BEGIN ********
LEA DI,RESULT
MOV CX,0
MOV DH,0 ;行
MOV DL,0 ;行
NEXT: MOV AL,N
MUL (1)
MOV BX,AX
MOV AL,DL
(2)
MOV SI, AX ;列号送SI
MOV AL, (3) [BX+SI]
MOV [DI],AL
ADD CL,AL
(4)
INC DI
INC DH
INC DL
CMP DL, (5)
JNE NEXT
MOV [DI],CX
; ******** END ********
LEA DX,RESULT
LEA SI,NAME1
MOV CX,N+2
CALL SAVE
RET
START ENDP
CSEG ENDS
END START

(1)DH (2)MOV AH,0
(3)SOURCE (4)ADC CH,0 (5)N

编制一个程序,实现如下功能:将内存中连续存放的10个八位二进制无符号数按照从大到小的顺序排列。
例如:
内存中有:3EH,0FEH,5DH……(假设后面的7个数都小于3EH)
结果为: 0FEH,5DH,3EH……(后面跟7个字,按照从大到小的顺序排列)。
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
EXTRN LOAD:FAR,SAVE:FAR
N EQU 10
SSEG SEGMENT STACK
DB 256 DUP ( )
SSEG ENDS
DSEG SEGMENT
SOURCE DB N DUP ( )
RESULT DB N DUP (0)
NAME0 DB ’INPUT.DAT’,0
NAME1 DB ’OUTPUT.DAT’,0
DSEG 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
;******** BEGIN ********
MOV SI,OFFSET SOURCE
MOV DI,OFFSET RESULT
MOV CX,N
AGAIN0: MOV AX, [SI]
MOV [DI],AX
ADD SI, (1)
(2)
LOOP AGAIN0
CLD
MOV BX,N-1
AGAIN1: MOV SI,OFFSET RESULT
MOV CX,BX
AGAIN2: LODSB
CMP [SI],AX
(3)
XCHG [SI],AX
(4)
NEXT: LOOP AGAIN2
(5)
JNZ AGAIN1
;******** END ********
LEA DX,RESULT
LEA SI,NAME1
MOV CX,N
CALL SAVE
RET
START ENDP
CSEG ENDS
END START

(1)1 (2)ADD DI,1 (3)JBE NEXT
(4)MOV[SI-1],AX (5)DEC BX

请编制程序,其功能是:对一个由可打印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 128 DUP( )
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)E (2)STOSB (3)CID (4)MOV CL,[SI]
(5)MOV AL,[SI+1] (6)REP STOSB (7)ADD SI,2

计算机的技术性能指标主要是指

A:所配备语言、操作系统、外围设备 B:字长、运算速度、内/外存容量和CPU的主频 C:显示器的分辨率、打印机的配置 D:磁盘容量、内存容量

如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用的方法是

A:分块法 B:顺序法 C:二分法 D:散列法

对线性表进行二分法查找,其前提条件是

A:线性表以顺序方式存储,并且按关键码值排好序 B:线性表以顺序方式存储,并且按关键码值的检索频率排好序 C:线性表以链接方式存储,并且按关键码值排好序 D:线性表以链接方式存储,并且按关键码值的检索频率排好序

微信扫码获取答案解析
下载APP查看答案解析