微机原理课后习题答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理课后习题答案
第3章 80X86指令系统
习题与思考题
1. 指出下列各指令中源操作数和⽬的操作数的寻址⽅式:
⑴ MOV BX,WORD PTR[2200H] ⑵ AAA
⑶ JUM 2200H ⑷ LES DI,[2100H]
⑸ MOV [BX+SI+8], BX
解答
⑴ MOV BX, WORD PTR[2200H]
源操作数:直接寻址;⽬的操作数:寄存器寻址
⑵ AAA
源操作数:寄存器寻址AL(也称隐含寻址);⽬的操作数:寄存器寻址
⑶ JUM 2200H
程序转移段内直接寻址⽅式
⑷ LES DI,[2100H]
源操作数:直接寻址;⽬的操作数:寄存器寻址
⑸ MOV [BX+SI+8], BX
源操作数:寄存器寻址;⽬的操作数:基址加变址寻址
2. 若AX=0ABCDH,BX=7F8FH,CF=1。

求分别执⾏8086 CPU指令
⑴ ADD AX,BX ⑵ ADC AX,BX
⑶ SBB AX,BX ⑷ NEG AX
⑸ AND AX,BX ⑹ OR AX,BX
⑺ XOR AX, BX ⑻ IMUL BL
后,AX寄存器中的内容,并指出标志寄存器SF,ZF,AF,PF,CF及OF的状态。

解答
⑴ AX=2B5CH, SZAPCO=001110B
⑵ AX=2B5DH, SZAPCO=001010B
⑶ AX=2C3DH, SZAPCO=001001B
⑷ AX=5433H, SZAPCO=001110B
⑸ AX=2B8DH, SZAPCO=00X100B
⑹ AX=FFCFH, SZAPCO=10X100B
⑺ AX=D222H, SZAPCO=10X100B
⑻ AX=3283H, SZAPCO=XXXX11B
3. 若AL=78H,BL=87H,
DAA
之后,AL=?、标志AF=?、CF=?
⑵若执⾏指令 SUB AL,BL与DAS后,AL=?、标志AF=?、CF=?
解答
⑴ AL=65H, AF=1, CF=1。

⑵ AL=91H, AF=0, CF=1。

4. 指出下列指令中哪些是错误的,并指出错在何处?
⑴ MOV DL,[DX] ⑵ MOV ES,2000H
⑶ SUB [BX],[SI] ⑷ ADD AX,[BX+CX]
⑸ XCHG DS,[2400H] ⑹ DEC 15H
⑺ IN AL,DX ⑻ OUT 300H,AX
解答
⑴错,DX不能作为间接寻址的寄存器。

⑵错,⽴即数不能直接送给段寄存器。

⑶错,两个存储单元间内容不能直接相减。

⑷错,CX寄存器不能作为变址寄存器。

⑸错,不允许段寄存器与存储单元内容进⾏交换
⑹错,减1指令不能对段寄存器直接操作
⑺对
⑻错,输出指令的地址若是16位,必须⽤DX间址。

5. 下列程序段执⾏后AX=?
设数据段有: TABLE DW 100,200,300,400
ENTRY DW 3
代码段对DS初始化
MOV BX,OFFSET TABLE
MOV SI,ENTRY
MOV AX,[BX+SI]
执⾏后AX=2C00
6. 将AL中的8位⼆进制数按倒序⽅式重新排列,即AL原来为D7D6...D0,倒序后AL=D0D1 (7)参考答案

MOV CX, 8
L: SHL AL, 1

7.若起始地址偏移量为2000H的内存单元存放有100个ASCII码字符,现给这些字符添加奇偶校验位(bit7),使每个字符中“1”的个数为偶数,在顺序输出到地址为100H的端⼝。

解答
MOV SI, 2000H
MOV CX, 100
MOV DX, 100H
NEXT2: MOV AL, [SI] ;取字符串中字符送AL
AND AL, 0FFH ;改变标志位
JPE NEXT1 ;“1”的个数为偶,bit7不变
OR AL, 80H ;“1”的个数为奇,bit7变为1
NEXT1: OUT DX, AL
INC SI
LOOP NEXT2
MOV AH, 4CH
INT 21H
8. 若SS=1000H,SP=2000H,AX=1234H,BX=5678H,FR=2115,试说明执⾏指令
PUSH AX
PUSH BX
PUSHF
POP CX
POP DX
之后,SP=? SS=? CX=? DX=? 并画图指出堆栈中各单元的内容。

解答: SS=1000H
SP=1FFEH
CX=2115H
DX=5678H
栈中各单元内容如下所⽰:
1.画出以下变量在内存中存储的⽰意图。

D1 DB ‘A’,’123’,09H, 45
D2 DW ‘A’,’CD’,23H, 4567H
D3 DD 1234H, 23456789H
2.设计⼦程序分别完成以下功能:
1)根据给定的参数值,判断该参数是偶数还是奇数。

2)把给定参数值的⾼、低数据位互换。

3.设计相应的宏完成以下功能:
1)把给定的参数按⼆进制显⽰。

2)求两个参数的和,并按⼗进制形式显⽰。

第5章汇编语⾔程序设计
习题与思考题
1. 设数据段中有字节型单元NUMBER和FLAG,判断NUMBER与给定的X和Y的⼤⼩关系(XY,则置FLAG=1,若NUMBER Data segment
NUMBER db ?
FLAG db ?
Data ends
Code segment
Assume cs: Code, ds: Data
Beg: mov ax,data
Mov ds,ax
mov al, X
Mov bl, Y
Cmp NUMBER, X
Jnc P1
Mov FLAG, 0FFH
Jmp exit
P1: cmp NUMBER, Y
Ja P2
Mov FLAG, 00H
Jmp exit
P2: mov FLAG, 01H
End Beg
2. 计算1+2+3+…+100,并把和保存在SUM单元中。

.486
DATA SEGMENT USE16
TT DB 1
SUM DW ?
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX , DATA
MOV DS, AX
MOV CX, 100
MOV AX, 0
START: ADD AX, TT
INC TT
LOOP START
MOV SUM, AX
MOV AH, 4CH
MOV 21H
CODE ENDS
END BEG
3. 对⼀个给定的N数据,⽤冒泡排序法进⾏排序。

解答:.486 Data segment
Buf db ‘abcd18437hj’
Lens equ $-buf
Count db lens
Flag db ?
Data ends
Code segment
Assume cs: code, ds: data
Beg: mov ax, data
Mov ds, ax
Mov cx, count
Mov si, offset buf
Last: mov al, [si]
Mov ah, [si+1]
Cmp ah, al
Jnc next
Mov [si], ah
Mv [si+1], al
Mov flag, 1
Next: inc si
Loop last
Cmp flag, 1
Je again
Done: mov buf+lens, ‘$’
Mov ah, 9
Mov dx, offset buf
Int 21h
Mov ah, 4ch
Int 21h
Code ends
End Beg
4. 由键盘输⼊任意的两个⼗进制数,然后转换成对应的压缩BCD码的形式在屏幕上显⽰。

.486
DATA SEGMENT USE16
BCD DB ?
BUF DB 3
DB ?
DB 3DUP(?)
MESG1 DB ‘PLEASE INPUT :’,0DH,OAH,’$’
MESG2 DB ‘ERROR! NUMBER IS FROM 0 TO 9. PLEASE AGAIN!$’
DATA ENDS
CODE SEGMENT USE16
L1: MOV DX, OFFSET MESG1
MOV AH, 9 ;显⽰MESG1
INT 21H
MOV AH, 0AH
MOV DX, OFFSET BUF
INT 21H ;输⼊字符串
MOV AL,BUF+2
CMP AL,30H
JC ERROR
CMP AL,3AH
JC NEXT ;判断第⼀个数输⼊是否符合要求
ERROR:MOV DX,OFFSET MESG2
MOV AH,9
INT 21H
JMP L1 ;输⼊错误提⽰重新输⼊
NEXT:SUB AL,30H
SAL AL, 4 ;求出⼗位数字
MOV BCD,AL
MOV AL,BUF+3
CMP AL,30H
JC ERROR
CMP AL,3AH
JNC ERROR ;判断第⼆个数输⼊是否符合要求
SUB AL,30H
OR BCD,AL
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
5. 由键盘输⼊两个⼗六进制数,转换成等值的⼗进制数后在屏幕上显⽰。

CMPDISP MACRO NN ;⽤宏语句完成⽐较法⼆进制到⼗进制转换LOCAL LAST,NEXT
MOV DL, 0
LAST: CMP NUM, NN
JMP LAST
NEXT: ADD DL, 30H
MOV AH, 2
INT 21H
ENDM
DATA SEGMENT USE16
NUM DB ?
BUF DB 3
DB ?
DB 3DUP(?)
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX , DATA
MOV DS, AX
MOV AH, 0AH
MOV DX, OFFSET BUF
INT 21H
MOV AL, BUF+2
CMP AL, 39H
JNA L1 ;数字在0到9之间转
SUB AL, 07H ;数字在A到F之间
L1: SUB AL, 30H
MUL 16
MOV NUM, AL
MOV AL, BUF+3
CMP AL, 39H
JNA L2
SUB AL, 07H
L2: SUB AL, 30H
ADD NUM, AL ;NUM中为⼗六进制数的⼆进制表⽰CMPDISP 100
MOV AH, 4CH
INT 21H
CODE ENDS
END BEG
第1章微机运算基础
习题和思考题
1.请完成以下计算:
174.66D=(10101110.10101)B=(AE. A8)H
10101110101.01011B=(1397.344)D=(575.58)H
4BCH=(010*********)B=()BCD
2.设字长为8位,X=(2A)16,当X分别为原码、补码、反码和⽆符号数的时候,其真值是多少?
答:当X表⽰原码时,其真值为:+101010
当X表⽰补码时,其真值为:+101010
当X表⽰反码时,其真值为:+101010
当X表⽰⽆符号数数时,其真值为:00101010
3.设字长为8位,⽤补码形式完成下列计算,要求有运算结果并讨论是否发⽣溢出?120+18 -33-37
-90-70 50+84
答:120+18
其补码形式分别为:(120)补=01111000 (18)补=00010010
01111000
+00010010
10001010
由于C s=0 ,C p=1,因此有溢出,结果错误
-33-37
其补码形式为:(-33)补=11011111 (-37)补=11011011
11011111
+11011011
10111010
由于C s=1,C p=1,所以没有溢出,结果正确
-90-70
其补码形式为:(-90)补=10011100 (-70)补=10111010
01010110
由于C s=1,C p=0,所以有溢出,结果错误
50+84
其补码形式为:(50)补=00110010 (84)补=01010100
00110010
+01010100
10000110
由于C s=0,C p=1,所以有溢出,结果错误
4.请写出下列字符串的ASCII码值。

My name is Zhang san.
4D 79 6E 61 6D 65 69 73 5A 68 61 6E 67 73 61 6E 2E
第2章 80X86微机系统
习题与思考题
1.微型计算机主要由哪些基本部件组成?各部件的主要功能是什么?
答:微型计算机主要由输⼊设备、运算器、控制器、存储器和输出设备组成。

各部件的功能分别是:1、输⼊设备通过输⼊接⼝电路将程序和数据输⼊内存;2、运算器是进⾏算术运算和逻辑运算的部件,它是指令的执⾏部件;3、控制器是计算机的指挥中⼼,它负责对指令进⾏译码,产⽣出整个指令系统所需要的全部操作的控制信号,控制运算器、存储器、输⼊/输出接⼝等部件完成指令规定的操作;4、存储器⽤来存放程序、原始操作数、运算的中间结果数据和最终结果数据; 5、输出设备是CPU通过相应的输出接⼝电路将程序运⾏的结果及程序、数据送到的设备;
2.微处理器的发展过程是什么?
答:微型计算机的发展过程是:
第⼀代(1946~1957)——采⽤电⼦管为逻辑部件,以超声波汞延迟线、阴极射线管、磁芯和磁⿎等为存储⼿段;软件上采⽤机器语⾔,后期采⽤汇编语⾔。

第⼆代(1957~1965)——采⽤晶体管为逻辑部件,⽤磁芯、磁盘作内存和外存;软件上⼴泛采⽤⾼级语⾔,并出现了早期的操作系统。

第三代(1965~1971)——采⽤中⼩规模集成电路为主要部件,以磁芯、磁盘作内存和外存;软件上⼴泛使⽤操作系统,产⽣了分时、实时等操作系统和计算机⽹络。

第四代(1971~⾄今)——采⽤⼤规模集成电路(LSI)、超⼤规模集成电路(VLSI)为主要部件,以半导体存储器和磁盘为内、外存储器;在软件⽅法上产⽣了结构化程序设计和⾯向对象程序设计的思想。

3.简述80486微处理器的基本结构。

书12页
4.80486微处理器的⼯作模式有⼏种?当CS内容为1000H,IP内容为7896H,求在实地址
模式下的物理地址为多少?
答:实模式和保护模式及虚拟8086模式。

当CS内容为1000H,IP内容为7896H,在实地址模式下的物理地址为17896H.
5.简述EPROM的⼯作原理。

书27页。

7.简述ISA与EISA总线的的区别。

它们的局限性表现在哪⾥?
书34页。

8.PCI局部总线有些什么特点?
书35页
9.什么是USB?它有什么特点?
书41页
10.IEEE 1394总线有哪些特点?它与USB总线的区别在哪⾥?
书41页。

11.简述现场总线的特点。

书42页。

12.当代计算发展的主要核⼼技术有哪些?
当代计算机的主要核⼼技术有:CACHE技术、流⽔线技术、VM技术、RISC技术、多内核技术第3章 80X86指令系统
习题与思考题
1. 指出下列各指令中源操作数和⽬的操作数的寻址⽅式:
⑴ MOV BX,WORD PTR[2200H] ⑵ AAA
⑶ JUM 2200H ⑷ LES DI,[2100H]
⑸ MOV [BX+SI+8], BX
解答
⑴ MOV BX, WORD PTR[2200H]
源操作数:直接寻址;⽬的操作数:寄存器寻址
⑵ AAA
源操作数:寄存器寻址AL(也称隐含寻址);⽬的操作数:寄存器寻址
⑶ JUM 2200H
程序转移段内直接寻址⽅式
⑷ LES DI,[2100H]
源操作数:直接寻址;⽬的操作数:寄存器寻址
⑸ MOV [BX+SI+8], BX
源操作数:寄存器寻址;⽬的操作数:基址加变址寻址
2. 若AX=0ABCDH,BX=7F8FH,CF=1。

求分别执⾏8086 CPU指令
⑴ ADD AX,BX ⑵ ADC AX,BX
⑶ SBB AX,BX ⑷ NEG AX
⑸ AND AX,BX ⑹ OR AX,BX
⑺ XOR AX, BX ⑻ IMUL BL
后,AX寄存器中的内容,并指出标志寄存器SF,ZF,AF,PF,CF及OF的状态。

解答
⑴ AX=2B5CH, SZAPCO=001110B
⑵ AX=2B5DH, SZAPCO=001010B
⑶ AX=2C3DH, SZAPCO=001001B
⑷ AX=5433H, SZAPCO=001110B
⑸ AX=2B8DH, SZAPCO=00X100B
⑹ AX=FFCFH, SZAPCO=10X100B
⑺ AX=D222H, SZAPCO=10X100B
⑻ AX=3283H, SZAPCO=XXXX11B
3. 若AL=78H,BL=87H,
⑴求执⾏指令
ADD AL,BL
DAA
之后,AL=?、标志AF=?、CF=?
⑵若执⾏指令 SUB AL,BL与DAS后,AL=?、标志AF=?、CF=?解答
⑴ AL=65H, AF=1, CF=1。

⑵ AL=91H, AF=0, CF=1。

4. 指出下列指令中哪些是错误的,并指出错在何处?
⑴ MOV DL,[DX] ⑵ MOV ES,2000H
⑶ SUB [BX],[SI] ⑷ ADD AX,[BX+CX]
⑸ XCHG DS,[2400H] ⑹ DEC 15H
⑺ IN AL,DX ⑻ OUT 300H,AX
解答
⑴错,DX不能作为间接寻址的寄存器。

⑵错,⽴即数不能直接送给段寄存器。

⑶错,两个存储单元间内容不能直接相减。

⑷错,CX寄存器不能作为变址寄存器。

⑸错,不允许段寄存器与存储单元内容进⾏交换
⑹错,减1指令不能对段寄存器直接操作
⑺对
⑻错,输出指令的地址若是16位,必须⽤DX间址。

5. 下列程序段执⾏后AX=?
设数据段有: TABLE DW 100,200,300,400
ENTRY DW 3
代码段对DS初始化
MOV BX,OFFSET TABLE
MOV SI,ENTRY
MOV AX,[BX+SI]
执⾏后AX=2C00
6. 将AL中的8位⼆进制数按倒序⽅式重新排列,即AL原来为D7D6...D0,倒序后AL=D0D1 (7)
参考答案

MOV CX, 8
L: SHL AL, 1
RCR BL, 1
LOOP L
MOV AL, BL

7.若起始地址偏移量为2000H的内存单元存放有100个ASCII码字符,现给这些字符添加奇偶校验位(bit7),使每个字符中“1”的个数为偶数,在顺序输出到地址为100H的端⼝。

解答
MOV SI, 2000H
MOV CX, 100
MOV DX, 100H
NEXT2: MOV AL, [SI] ;取字符串中字符送AL
AND AL, 0FFH ;改变标志位
JPE NEXT1 ;“1”的个数为偶,bit7不变
OR AL, 80H ;“1”的个数为奇,bit7变为1
NEXT1: OUT DX, AL
INC SI
LOOP NEXT2
MOV AH, 4CH
INT 21H
8. 若SS=1000H,SP=2000H,AX=1234H,BX=5678H,FR=2115,试说明执⾏指令
PUSH AX
PUSH BX
PUSHF
POP CX
POP DX
之后,SP=? SS=? CX=? DX=? 并画图指出堆栈中各单元的内容。

解答: SS=1000H
SP=1FFEH
CX=2115H
DX=5678H
栈中各单元内容如下所⽰:
第4章宏汇编语⾔
习题与思考题
1.画出以下变量在内存中存储的⽰意图。

D1 DB ‘A’,’123’,09H, 45
D2 DW ‘A’,’CD’,23H, 4567H
D3 DD 1234H, 23456789H
2.设计⼦程序分别完成以下功能:
1)根据给定的参数值,判断该参数是偶数还是奇数。

2)把给定参数值的⾼、低数据位互换。

3.设计相应的宏完成以下功能:
1)把给定的参数按⼆进制显⽰。

2)求两个参数的和,并按⼗进制形式显⽰。

第5章汇编语⾔程序设计
习题与思考题
1. 设数据段中有字节型单元NUMBER和FLAG,判断NUMBER与给定的X和Y的⼤⼩关系(XY,则置FLAG=1,若NUMBER Data segment
NUMBER db ?
FLAG db ?
Data ends
Code segment
Assume cs: Code, ds: Data
Beg: mov ax,data
Mov ds,ax
mov al, X
Mov bl, Y
Cmp NUMBER, X
Jnc P1
Mov FLAG, 0FFH
Jmp exit
P1: cmp NUMBER, Y
Ja P2
Mov FLAG, 00H
Jmp exit
P2: mov FLAG, 01H
Exit: mov ah, 4ch
Int 21h
Code ends
End Beg
2. 计算1+2+3+…+100,并把和保存在SUM单元中。

.486
DATA SEGMENT USE16
TT DB 1
SUM DW ?
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX , DATA
MOV DS, AX
MOV CX, 100
MOV AX, 0
START: ADD AX, TT
INC TT
LOOP START
MOV SUM, AX
MOV AH, 4CH
MOV 21H
CODE ENDS
END BEG
3. 对⼀个给定的N数据,⽤冒泡排序法进⾏排序。

解答:.486
Data segment
Buf db ‘abcd18437hj’
Lens equ $-buf
Count db lens
Flag db ?
Data ends
Code segment
Assume cs: code, ds: data
Beg: mov ax, data
Mov ds, ax
Again: dec count
Jz done
Mov flag, 0
Mov cx, count
Mov si, offset buf
Last: mov al, [si]
Mov ah, [si+1]
Cmp ah, al
Jnc next
Mov [si], ah
Mv [si+1], al
Mov flag, 1
Next: inc si
Loop last
Cmp flag, 1
Je again
Done: mov buf+lens, ‘$’
Mov ah, 9
Mov dx, offset buf
Int 21h
Mov ah, 4ch
Int 21h
Code ends
End Beg
4. 由键盘输⼊任意的两个⼗进制数,然后转换成对应的压缩BCD码的形式在屏幕上显⽰。

.486
DATA SEGMENT USE16
BCD DB ?
BUF DB 3
DB ?
DB 3DUP(?)
MESG1 DB ‘PLEASE INPUT :’,0DH,OAH,’$’
MESG2 DB ‘ERROR! NUMBER IS FROM 0 TO 9. PLEASE AGAIN!$’DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX , DATA
MOV DS, AX
L1: MOV DX, OFFSET MESG1
MOV AH, 9 ;显⽰MESG1
INT 21H
MOV AH, 0AH
MOV DX, OFFSET BUF
INT 21H ;输⼊字符串
MOV AL,BUF+2
CMP AL,30H
JC ERROR
CMP AL,3AH
JC NEXT ;判断第⼀个数输⼊是否符合要求
ERROR:MOV DX,OFFSET MESG2
MOV AH,9
INT 21H
JMP L1 ;输⼊错误提⽰重新输⼊
NEXT:SUB AL,30H
SAL AL, 4 ;求出⼗位数字
MOV BCD,AL
MOV AL,BUF+3
CMP AL,30H
JC ERROR
CMP AL,3AH
JNC ERROR ;判断第⼆个数输⼊是否符合要求
SUB AL,30H
OR BCD,AL
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
5. 由键盘输⼊两个⼗六进制数,转换成等值的⼗进制数后在屏幕上显⽰。

CMPDISP MACRO NN ;⽤宏语句完成⽐较法⼆进制到⼗进制转换LOCAL LAST,NEXT
MOV DL, 0
LAST: CMP NUM, NN
JC NEXT
INC DL
SUB NUM, NN
JMP LAST
NEXT: ADD DL, 30H
MOV AH, 2
INT 21H
ENDM
DATA SEGMENT USE16
NUM DB ?
BUF DB 3
DB ?
DB 3DUP(?)
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA
BEG: MOV AX , DATA
MOV DS, AX
MOV AH, 0AH
MOV DX, OFFSET BUF
INT 21H
MOV AL, BUF+2
CMP AL, 39H
JNA L1 ;数字在0到9之间转
SUB AL, 07H ;数字在A到F之间
L1: SUB AL, 30H
MUL 16
MOV NUM, AL
MOV AL, BUF+3
CMP AL, 39H
JNA L2
SUB AL, 07H
L2: SUB AL, 30H
ADD NUM, AL ;NUM中为⼗六进制数的⼆进制表⽰
CMPDISP 100
CMPDISP 10
CMPDISP 1
MOV AH, 4CH
INT 21H
CODE ENDS
END BEG
第6章接⼝技术
习题与思考题
1.什么是接⼝?
两个部件或两个系统之间的连接。

微机接⼝,则涉及到微处理器与各外部设备之间的接⼝、微处理器与存储器之间的接⼝以及微型计算机之间的接⼝。

习惯上说到接⼝只是指I/O接⼝,是指微处理器与外设之间的接⼝称为I/O接⼝。

2.端⼝独⽴编址有哪些特点?和统⼀编址的区别是什么?
解答:解答:输⼊/输出指令和访问存储器的指令明显区分开,使程序清晰,可读性好;⽽且I/O指令长度短,执⾏的速度快,也不占⽤内存空间,I/O地址译码电路较简单。

不⾜之处是CPU指令系统中必须有专门的IN和OUT指令,这些指令的功能没有访问存储器的指令的功能强;I/O端⼝数⽬有限。

另外,CPU要能提供区分存储器读/写和I/O读/写的控制信号。

3.DX间接寻址主要应⽤在什么情况?和直接端⼝寻址的区别是什么?
端⼝地址⼤于255的时候。

4.I/O端⼝地址译码电路有哪⼏种结构形式?
解答:固定式译码和可选式译码。

5.CPU和I/O设备间的数据传送⽅式有哪些?区别是什么?
有4种。

⽆条件、查询、中断和DMA⽅式。

区别见书140页。

第7章中断技术
习题与思考题
1.什么是中断?什么是中断优先级?设置中断优先级的⽬的是什么?
书143页。

2.中断处理的⼀般过程是什么?
中断请求,中断判优,中断响应,中断处理,中断返回。

3.什么是中断嵌套?如何处理中断嵌套?
当前中断还未处理完毕,⼜有了新的优先级更⾼的中断请求,cpu转⽽去处理优先级更⾼的中断称为中断嵌套。

4.什么是中断向量?它与中断服务程序⼊⼝地址的关系是什么?
中断向量即中断服务程序的⼊⼝地址。

5.什么是中断类型号?它的作⽤是什么?
中断类型号就是中断源的编号,在中断系统中⽤作中断源的识别。

6.可屏蔽中断和INTn中断的处理区别是什么?
可屏蔽中断是硬件中断⽽INTn中断是软件中断。

7.不可屏蔽中断和可屏蔽中断各有何特点?其⽤途如何?
不可屏蔽中断的优先级⾼于可屏蔽中断,不可屏蔽中断不受指令cli的影响,常⽤于紧急情况的故障处理,并由系统使⽤,⼀般⽤户不能使⽤。

8.PC微机的中断系统由哪⼏部分组成?
由CPU端的中断逻辑以及中断控制器8259组成。

9.80X86的异常有哪⼏个层次?各层次的特点是什么?
书148页
10.保护虚拟地址下的中断如何管理?
采⽤中断描述表IDT进⾏管理。

11.可编程中断控制器8259A协助CPU处理哪些中断事务?
书162页。

12.8259A具有哪些⼯作⽅式和中断操作功能?指出与这些功能相对应的命令字(ICW/OCW)的内容?
书164页。

13.在什么情况下,才要求⽤户对8259A进⾏初始化?
在没有配置完善的操作系统的单板机上需要对8259初始化。

14.如何对8259A进⾏初始化编程(包括单⽚使⽤和双⽚使⽤)?
书176,177页。

15.什么是中断响应周期?在中断响应周期中CPU和8259A⼀般要完成哪些⼯作?
书165页
16.⽤户利⽤PC微机的中断系统资源进⾏中断传送时,要求⽤户对8259A的哪些命令进⾏编程使⽤?
17.中断结束命令安排在程序的什么地⽅?在什么情况下要求发中断结束命令?
中断结束命令安排在中断返回指令iret前。

如果8259⼯作在⾮⾃动中断结束⽅式下则要求发送中断结束命令。

18.保护模式下中断服务程序怎样⼊⼝?
书157页。

第8章常⽤I/O接⼝芯⽚
习题与思考题
1.可编程并⾏接⼝8255A⾯向CPU⼀侧的端⼝有⼏个。

4个。

分别是1个控制⼦端⼝和3个数据⼝。

2.PC⼝按位置/复位字是如何定义的?
PC⼝按位置/复位命令字⽤于PC引脚作输出单位控制或软件设定8255A的相应状态。

PC
其中:
D0为置/复位选择位:D0=0表⽰相应位清0,D0=1表⽰相应位置1。

D3D2D1选择被置/复位的位号:D3D2D1=000选择PC⼝第0位;
D3D2D1=001选择PC⼝第1位;。

相关文档
最新文档