A.100
B. 160
C. 161
D. 256
第1题
例如:
内存中有:30H('0'),39H('9'),31H('1')…
结果为:00H,09H,01H…(最后为M)
部分程序已给出,其中原始数据由过程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,S S: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, (1)
PRO: MOV AL,SOURCE[BX]
(2) AL,3 OH
MOV [DI],AL
(3)
ADD AL,DL
(4)
MOV DL.AL
INC BX
(5)
JNZ PRO
(6)
;****END****
LEA DX,RESULT ; 结果数据区首址
LEA SI,NAME1 ; 结果文件名
MOV CX,N+1 ; 字节数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START
第2题
校验方法为:对字符及字符,之间的7个ASCII字符进行异或操作,若异或操作结果的ASCII字符表示(异或操作结果高4位的ASCII字符表示在前,低4位的ASCII字符表示在后)与原字符串中字符,之后的两个ASCII字符相同,则将原字符串原样保存:反之,则将原字符串中的所有字符(共13个)均用字符!(21H)代替。
例如:
内存中有:33H,35H,23H('',第一个字符串开始),46H,41H,30H,2EH,34H,3DH,31H,2AH(''),32H,
31H,ODH,OAH,46H,23H('',第二个字符串开始),46H,41H,30H,2EH,34H,46H,41H,
30H,46H,41H,30H,2EH,34H,3DH,30H,2AH('*'),32H,31H,ODH,OAH,55H
结果为:23H,46H,41H,30H,2EH,34H,3DH,31H,2AH('*'),32H,31H(校验正确,该字符串原样保持),
ODH,OAH,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H,21H(校验错,整个字符串用字符“!”代替)
部分程序已给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中。运算结果要求从 RESULT开始存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
EXTRN LOAD:FAR, SAVE:FAR
N EQU 26
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DB N+4 DUP(?)
RESULT DB N DUP(0)
HH DB 2 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+4 ; 字节数
CALL LOAD ; 从'INPUT. DAT' 中读取数据
;******** BEGIN ********
MOV SI,0
MOV DI,0
MOV BX,2 ; 两个ASCII 字符串
REPEAT: MOV AH,0
SEARCH: MOV AL,SOURCE[SI]
INC SI
CMP AL,''
(1) SEARCH
MOV RESULT[DI],AL
INC DI
SEARCH1: MOV AL,SOURCE[SI]
INC SI
CMP AL, (2)
JE ASCII
&nb
第3题
例如:
内存中有:21H,43H,(共五个字节)
结果为:31H('1'),32H('2'),33H('3'),34H('4'),…(共十个字节)
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DA丁中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放, 由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白处已用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序存在错误之处,请加以修改。
[试题程序]
EXTRN LOAD:FAR,SAVE:FAR
N EQU 5
STAC SEGMENT STACK
DB 128 DUP (?)
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(?)
RESULT DB N*2 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,NANE0 ;原始数据文件名
MOV CX,N ;字节数
CALL LOAD ;从"INPUT.DAT"中读取数据
; ********* BEGIN **********
LEA SI,SOURCE
LEA DI,RESULT
MOV CX,N
NEXT: MOV (1) ,[SI]
(2)
MOV BL,AL
AND AL, (3)
OR AL,30H
MOV [DI], (4)
(5)
MOV AL, (6)
PUSH (7)
MOV CL, (8)
SHR AL,CL
POP (9) OR AL,30H
MOV [DI],AL
(10)
LOOP NEXT
; ******** END ********
LEA DX,RESULT ; 结果数据区首址
LEA SI,NANE1 ; 结果文件名
MOV CX,N*2 ; 结果字节数
CALL SAVE ; 保存结果到文件
RET
START ENDP
CODE ENDS
END START
第4题
(1)A.80K B.96K C.160K D.192K
(2)A.2 B.5 C.8 D.10
A.A
B.B
C.C
D.D@@@SXB@@@A.A
B.B
C.C
D.D
第9题
B.能处理的数据最大是32位二进制数
C.CPU与内存之间每次都是传输32位数据
D.内存储器每4个字节为一个存储单元
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!