微机组成原理练习试题带答案(六)
微机组成原理练习试题带答案
二、填空
1、下列程序执行后 AX、DX 中的值分别为
、
4,-316
MOV
AX,-2000 CWD MOV
CX,-421 IDIV
CX 2、下列程序执行后 AL 中的十六进制值为 0A5H MOV AX,120FH XOR AL,0AAH 3、下列程序执行后 AX、DX 中的值分别为 3000, 1000
MOV
AX,1000 MOV
DX,2000 XCHG AX,DX ADD
AX,DX 4、若(AX)=8520H,且为有符号数,若实现 (AX)/2,则应使用指令__________________,结果使(AX)=__________。
算术右移指令(SAR AX,1)
0C290H 5、存储器的存取速度可用______和______两个时间参数来衡量,其中后者比前者大。存取时间、存取周期
6、下列程序执行后 AL、AH 中的十六进制值分别为 0A5H,00H MOV AX,120FH XOR AL,0AAH XOR AH,AH 7、EPROM2732 容量为 4K×8bit,其地址线为根,数据线 8 根; 12
8、判断下列指令正误,对的打√错的打×
1、MOV [2000H],[1000H]
( )
2、MOV CS,DS
( )
3、PUSH CS
( )
4、POP 1234
( )
5、POP [1234H]
( )
6、XCHG AX,[1234H]
( )
7、IN AL,100H
( )
8、OUT 80H,AL
( )
9、MOV BX,BUFFER
( )
10、DEC WORD PTR [DI]
( )
×
× √ × √ × × √ √ √
三、判断 1、在一个外设端口中,往往需要几个接口才能满足和协调外设工作的要求(
) 2、统一编址方式的一个特点是存储器和 I/O 端口共用统一的地址空间
( )
3、MOV AX,[BP+SI]的源操作数的物理地址为(DS)×16+(BP)+(SI)。
( )
4、近过程(NEAR)的 RET 指令把当前栈顶的一个字弹出到 IP。
( )
5、条件转移指令 JNE 的测试条件是 CF=1。
( )
6、REPZ SCANS 指令中,当 CX!=0 且(ZF)=0 时重复执行(
) 1、×2、√3、×4、√5、×6、× 四、简答 1、判断下列指令正误,错的指明错误原因 MOV [2000H],[0]
MOV CS,DS
PUSH CS
POP 1234
DEC WORD PTR [BX] 错(不可同为内存,类型不明确)、 错(不能同为段寄存器)、
对、
错(立即数不能为目的操作数)、
对
2、 指出下列程序段的功能
MOV CX,10
CLD
LEA SI,,First
LEA DI,Second
REP MOVSB 把以 First 开始的 10 字节数传送到 Second 开始的内存区域
3、分别指出下列指令源操作数的寻址方式 MOV AX,1090H
MOV AL,[1064H]
MOV AL,[BP+TABLE]
MOV AX,[BX][SI+COUNT]
MOV AX,1234
MOV AL,[1234]
MOV AL,[BP+1234]
MOV AX,[BX][SI+1234]
立即寻址 直接寻址 寄存器相对寻址 基址变址相对寻址 立即寻址 直接寻址 寄存器相对寻址 基址变址相对寻址
4、源程序如下:
CMP
AX, BX
JNC
L1 JZ
L2 JNS
L3 JNO
L4
JMP
L5
设 AX=74C3H,BX=95C3H,则程序最后将转到哪个标号处执行?试说明理由。
∵
74C3H
- 95C3H
DF00H
且有:CF=1, ZF=0, SF=1, OF=1
程序将转到 L5 标号处执行、 ……
4、已有 AX=E896H,BX=3976H,若执行 ADD BX,AX 指令,则结果 BX,AX,标志位 CF,OF,ZF 各为何值
BX=220CH
AX=E896H
CF=1
OF=0
ZF=0
6、选用最少的指令,实现下述要求的功能. (1))AH的高4位清 0
(2)AL 的高4位取反 (1)AND AH,0FH (2)XOR AL,0FH 7、高(BX)=6D16H,(AX)=1100H,写出下列三条指令执行后,AX 和 BX 中的内容.
MOV
CL,06H
ROL
AX,CL
SHR
BX,CL (AX)=4004H (BX)=01B4H)
8、下面程序执行后屏幕上显示的内容是什么?HELLO WORLD!
... BUFFER DB "Hello World!$" ... PUSH DS POP ES
LEA SI,BUFFER LEA DI,BUFFER CLD NEXT: LODSB
CMP AL,"$"
JZ DONE
CMP AL,61H
JC OK
CMP AL,7BH
JNC OK
SUB AL,20H OK:
STOSB
JMP NEXT DONE:
MOV DX,OFFSET BUFFER
MOV AH,09H
INT 21H .. 9、根据以下程序填充变量在内存中的存储情况(A 的 ASCII 值为 41H;段地址为 1000H)
值 地址
1000H:0000H
0001H
0002H
0003H
0004H
Data segment VAR1
DB
"AB" VAR2
DW
"AB" VAR4
DW
VAR2 Data ends
10、根据以下程序填充变量在内存中的存储情况(’B’ 的 ASCII 值为 42H;段地址为 3011H)
Data segment VAR1
DB
"BC" VAR2
DW
"BC" VAR4
DW
VAR2 Data ends
11、DMA 控制器的工作方式有哪 3 种? 单字节传输方式
成组(块)传输方式
请求传输方式
0005H 值 41H 42H 42H 41H 02H 00H 值 地址
30110H
30111H
30112H
30113H
30114H
30115H 值 42H 43H 43H 42H 02H 00H
12、以 JMP VAR_ADD 指令为例试分析 8086 段内间接转移和段间间接转移差别?
段内间接转移,VAR_ADD 是一个 16 内存变量,指令完成以下 (IP)←(VAR_ADD)
段内间接转移,VAR_ADD 是一个 16 内存变量,指令完成以下 (IP)←(VAR_ADD) (CS) ←(VAR_ADD+2)
13、 内存中有下列指令 地址
机器语言
汇编语言 1234H
B812AB
Mov
AX, 5678H 请问执行完这条指令后寄存器 IP 与 AX 的内容分别是多少? (IP)=1237H
(AX)=5678H
14、分别指出下列 4 条指令源操作数的寻址方式 MOV
BL, 12H
MOV
BX, DX
MOV
AX, [DI]
MOV
AH, [BP][DI]
立即寻址 寄存器寻址 寄存器间接寻址 基址变址寻址 15、下列程序执行后 AX,BX,CX 中的值分别是多少? ARRAY
DD
20 DUP (?) STR
DB
"THIS IS TEST" ... MOV AX, TYPE STR MOV BX, LENGTH ARRAY MOV CX, SIZE ARRAY 1 20 80
16、根据下图,指出 ABCDEF 6 种中断各自的名称(6 分)
A:非屏蔽中断
B:可屏蔽中断
C:溢出中断
D:断点中断
E:单步中断
F:除法错误中断
17、 设机器字长为 8 位,最高位为符号位,试对 43+8 进行二进制补码运算,并判断结果是否溢出。
∵
[43] 补 =00101011B,[8] 补 =00001000B
∴ [43] 补 +[8] 补 =00101011B+00001000B=00110011B=33H
00101011B
+ 00001000B
00110011B
∵
C S =0,C D =0,OF=C S ⊕C D =0⊕0=0
∴
无溢出 18、设有变量 x=11101111B,y=11001001B,试计算 x+y=? 请问:① 若为无符号数,计算结果是否正确?② 若为带符号补码数,计算结果是否溢出?
x+y = 11101111B+11001001B=10111000B=1B8 H
1110 1111 B
+ 1100 1001B
1011 1000B
① 若为无符号数
② 若为带符号补码数
∵ CF=1
∴ 不正确
∵ CF=1,DF=1
OF=0
∴ 不溢出
值 物理地址
20000H
20001H
20002H
20003H
20004H
五、综合题
1、用 16K×8 位芯片组成 64K×8 位的存储器,请完成下图剩余连接,并指出 A、B、C、D 分别为 A0-A15 中哪根地址线,以及(1)(2)(3)(4)四个芯片的地址范围。
1 号:0000H-3FFFH
2 号:4000H-7FFFH
3 号:8000H-BFFFH
)
4 号:C000H-FFFFH
2、 设某 8 位机系统需装 6KB 的 ROM,地址范围安排在 0000H17FFH。请画出使用EPROM 芯片 2716 构成的连接线路图。
各组芯片的地址范围
20005H 值 物理地址
20000H
20001H
20002H
20003H
20004H
20005H 值 物理地址
20000H
20001H
20002H
20003H
20004H
20005H 值 物理地址
20000H
20001H
20002H
20003H
20004H
20005H 值 物理地址
20000H
20001H
20002H
20003H
20004H
20005H
芯片 A15 A14 A13 A12 A11 A10 A0 地址范围 EPROM1 0 0 0 0 0 000 0000 0000(最低地址) 111 1111 1111(最高地址) 0000H 07FFH EPROM2 0 0 0 0 1 000 0000 0000 (最低地址) 111 1111 1111 (最高地址) 0800H 0FFFH EPROM3 0 0 0 1 0 000 0000 0000 (最低地址) 111 1111 1111 (最高地址) 1000H 17FFH 74LS138 G2B G2A C B A G1=RD+IO/M
3、用 1K×4 位的 RAM 芯片组成 4K×8 位的存储器,要求采用全译码方式,地址空间从 0000H 开始。请画出连接图,并说明全译码地址空间。
Y 0 1 A B C G 1 G 2A
G 2B
Y7 Y 6 Y 5 Y 4 Y 3 Y 2 Y1 A 15 A 14
A 13
A 12
A 11
A 10 ~A 0
IO/M RD D 7 ~D 0
A 10 ~A 0
A 10 ~A 0
A 10 ~A 0
CS O 7 ~O 0
O 7 ~O 0
O 7 ~O 0
PD/PGM PD/PGM PD/PGM CS CS EPROM 1 2716EPROM 2 2716EPROM 3 271674LS138 EPROM与CPU的连接
4、 一个数据块由大小写字母.数字和其他符号组成,结束符是回车符 CR(ASCII码是 0DH),数据块的首地址是 BLOCK1.将数据块传送到以 BLOCK2 为首地址的内存区,交将其中所用小写字母(a---z) 转换成大写字母(A----Z),其余不变.
LEA SI,BLOCK1
LEA D I,BLOCK2
CLD
NEXT:LODSB
CMP AL,0DH
JZ DONE
CMP AL , 61H
JC OK
CMP AL,7BH
JNC OK
SUB AL,20H
OK: STOSB
JMP NEXT
DONE:HLT
5、编写完整 16 位汇编程序,在屏幕上输出 32 行“Hello, world! This is my asm code!”。
Data segment Str db ‘Hello, world! This is my asm code!’,0dH,0aH,’$’ Data ends Code segment Assume cs:code,ds:data Start: Mov ax,Data Mov ds,ax Lea dx,Str Mov cx,32 Mov ah,9 Next: Int 21h Dec cx Jnz next Mov ah,4ch Int 21h Code ends End start
6、编写完整 16 位汇编程序,在屏幕上输出所有 256 个 ASCII 码
code segment
assume cs:code begin: mov dl,0 next: mov ah,02h int 21h inc dl
jnz next mov ah,4ch int 21h code ends end begin
7、假设 X 和 X+2 单元与 Y 和 Y+2 单元中分别存放的是两个双字有符号数据 A和 B(X、Y 为低位字)。阅读以下程序段,并回答问题。
MOV
DX,X+2 MOV
AX,X ADD
AX,X
ADC
DX,X+2
CMP
DX,Y+2
JL
L2
JG
L1
CMP
AX,Y JBE
L2 L1:
MOV
AX,1 JMP
EXIT L2:
MOV
AX,2 EXIT:
HLT 1) 该程序段所完成的操作是什么?
2) AX=1 和 AX=2 分别说明了什么?
3) 若 JBE
L2 改为 JB
L2,在操作结果上有什么区别
1)比较 2A 与 B 的大小
2)AX=1 说明 2A>B,AX=2 说明 2A≤B
3)JB 指令排除两数相等的可能