假设二进制数A为八位,为获取其高五位的值可采用(15),如要比较A和另一个二进制数B是否相等,则可采用(16)。
A.将A与11111000进行或运算
B.将A与00000111进行或运算
C.将A与11111000进行与运算
D.将A与00000111进行与运算
用二进制数0与累加器X的内容进行______运算,并将结果放在累加器X中,一定可以完成对X的清0操作。
A.与
B.或
C.异或
D.比较
试用2个4位数值比较器组成三个数的判断电路。要求能够判断三个4位二进制数(A,B,C)是否相等,A是否最大,A是否最小,分别给出三个数相等、A最大、A最小的输出信号。其逻辑功能可以用图5 实现,其中F1表示A 最大 F2表示A=B=C, F3表示A最小 。 ()
请编制程序,其功能为:内存中存放着10个二进制数,需对此数组进行加密。方法为将前一个字节数(两位十六进制数a1a2表示)的低位十六进制数a2与后一个字节数(两位十六进制数b1b2表示)的高位十六进制数b1进行交换:第一个字节数的高位十六进制数与最后一个字节的低位十六进制数进行交换,加密后的结果存入内存。
例如:内存中原始数据为:50H,61H,72H,83H,94H,…,E9H
结果:90H,07H,18H,29H,3AH,…,85H
部分程序已经给出,其中原始数据由LOAD 过程从文件INPUT1.DAT 中读入从SOURCE开始的内存单元,转换结果(要求从RESULT开始读入)由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END之间补充使其完整,完成要求的功能。或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生PROG1. EXE执行文件,最终产生运行结果。
部分程序如下:
;PROG1.ASM
EXTRN LOAD:FAR, SAVE:FAR
N EQU 10
DSEG SEGMENT
SOURCE DW N DUP ()
RESULT DW N DUP (0)
NAME0 DB 'INPUT1.DAT',0
NAME1 DB 'OUTPUT1.DAT',0
DSEG ENDS
SSEG SEGMENT STACK
DB 128 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
MOV ES, AX
LEA DX,SOURCE
LEA SI,NAME0
MOV CX,N
CALL LOAD
; *** BEGIN ***
MOV DI,0
MOV SI,0
MOV CX,N
CONT: MOV AL, SOURCE [SI]
MOV AH,AL
AND AL,0FH
AND AH,0F0H
INC SI
CMP SI,N
____________
MOV SI,0
ONE: MOV BL, SOURCE [SI]
MOV BH,BL
AND BL,0FH
AND BH,0FOH
____________
MOV CX,4
LI: SBR BH, 1
SHL AL,1
LOOP L1
______,CX
OR AH,BH
OR AL,BL
CMP DI, 0
JNZ STOPE1
MOV SOURCE [SI] ,AL
DEC SI
MOV SOURCE [SI], AH
INC SI
JMP NEXT
STORE1: CMP DI, N-1
JL STORE2
MOV RESULT [DI], AH
MOV DI, 0
MOV RESULT [DI], AL
JMP NEXT
STORE2: MOV ______, AH
MOV ______, AL
NEXT: INC DI
LOOP CONT
; *** END ***
LEA DX, RESULT
LEA SI, NAME1
MOV CX, N
CALL SAVE
RET
START ENDP
CSEG ENDS
END START
已知某高速缓存(Cache采用组相联映像方式,即组问直接映像,组内全相联映像。假设主存容量为4096块,每块256字节,高速缓存包含32块,分8组,每组4块。高速缓存的地址变换表应包含(1)个存储单元;每个存储单元应能存放(2)位二进制数;每次参与相联比较的是(3)个存储单元。
(1)
A.8
B.16
C.32
D.48
例如:
内存中有:50H,61H,72H,83H,94H,A5H,B6H,C7H,D8H,E9H
结果为:96H,07H,18H,29H,3AH,4BH,5CH,6DH,7EH,85H
部分程序已给出,其中原始数据由过程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个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 OX,SOURCE ; 数据区起始地址
LEA SI,NAMEO ; 原始数据文件名
MOV CX,N ; 字节数
CALL LOAD ; 从INPUT1.DAT中读取数据
;****BEGIN****
MOV DI,0
MOV SI,0
MOV CX,N
AGN1: MOV AL,SOURCE[SI]
MOV AH ,AL
AND AL,0FH
AND AH,0FOH
INC SI
CMP SI,N
(1)
MOV SI,0
LW: MOV BL,SOURCE[SI]
MOV BH,BL
AND BL,0FH
AND BH,0FOH
(2) CX
MOV CX,4
L1: SHR BH,1
SHL AL,1
LOOP L1
&