完整版《微机原理及接口技术》课后习题详细解答期末复习.docx
《完整版《微机原理及接口技术》课后习题详细解答期末复习.docx》由会员分享,可在线阅读,更多相关《完整版《微机原理及接口技术》课后习题详细解答期末复习.docx(15页珍藏版)》请在冰豆网上搜索。
完整版《微机原理及接口技术》课后习题详细解答期末复习
第1章微型计算机系统概述
〔习题1.3〕微型计算机主要由哪些基本部件组成?
各部件的主要功能是什么?
〔解答〕微机主要有存储器、I/O设备和I/O接口、CPU、系统总线、操作系统和应用软件组成,各部分功能如下:
CPU:
统一协调和控制系统中的各个部件
系统总线:
传送信息
存储器:
存放程序和数据
I/O设备:
实现微机的输入输出功能
I/O接口:
I/O设备与CPU的桥梁
操作系统:
管理系统所有的软硬件资源
〔习题1.10〕简述计算机中“数”和“码”的区别,计算机中常用的数制和码制各有哪些?
〔解答〕
(1)数—用来直接表征量的大小,包括:
定点数、浮点数。
(2)码—用来指代某个事物或事物的某种状态属性,包括:
二进制、八进制、
十进制,十六进制
区别:
使用场合不同,详见P16.
〔习题1.12〕请写出与数据+37和-37对应的8位机器数原码、反码、补码和移码,并分别用二进制和十六进制表示出来。
〔解答〕
原码反码补码
+3700100101/25H00100101/25H00100101/25H
-3710100101/A5H11011010/DAH11011011/DBH
〔习题1.13〕请将上题中+37和-37的8位补码机器数分别扩充为16位和32位的形式,用十六进制表示出来。
〔解答〕
+37
-37
16位
32位
16位
32位
0025H
00000025H
FF5BH
FFFFFF5BH
第2章微处理器指令系统
〔习题2.1〕微处理器内部具有哪3个基本部分?
8088分为哪两大功能部件?
其各自的主要功能是什么?
〔解答〕算术逻辑单元ALU、寄存器组和控制器;
总线接口单元BIU:
管理8088与系统总线的接口负责cpu对接口和外设进行访问
执行单元EU:
负责指令译码、执行和数据运算;
8位CPU在指令译码前必须等待取指令操作的完成,8088中需要译码的指令已经取到了指令队列,不需要等待取指令。
而取指令是CPU最为频繁的操作,因此8088的结构和操作方式节省了大量等待时间,比8位CPU节省了时间,提高了性能。
〔习题2.2〕说明8088的8个8位和8个16位通用寄存器各是什么?
〔解答〕8个8位寄存器:
AH、AL、BH、BL、CH、CL、DH、DL;
8个16位寄存器:
累加器AX、基址寄存器BX、计数器CX、数据寄存器DX、源地址寄存器SI、目的地址寄存器DI、基址指针BP、堆栈指针SP。
〔习题2.3〕什么是标志?
状态标志和控制标志有什么区别?
画出标志寄存器FLAGS,说明各个标志的位置和含义。
〔解答)标志用于反映指令执行结果或者控制指令执行形式。
状态标志用于记录程序运行结果的状态信息;
控制标志用于控制指令执行的形式。
OF--溢出标志,若算术运算的结果有溢出,则OF=1;否则OF=0
DF--方向标志
IF--中断允许标志
TF--陷阱标志
SF--符号标志
ZF--零标志,若运算结果为0,则ZF=1;否则ZF=0
AF--辅助进位标志
PF--奇偶标志
CF--进位标志,当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置为1,即CF=1;否则CF=0。
〔习题2.5〕什么是8088中的逻辑地址和物理地址?
逻辑地址如何转换成物理地址?
1MB最多能分成多少个逻辑段?
请将如下逻辑地址用物理地址表达:
⑴FFFFH:
0⑵40H:
17H⑶2000H:
4500H⑷B821H:
4567H
〔解答〕
.物理地址:
物理存储单元具有的一个唯一的20位编号
逻辑地址:
在8088内部和用户编程时,所采用的“段地址:
偏移地址”形式
将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址
1MB最多能分成1MB÷16B=220÷24=216个逻辑段,因为每隔16个字节单元就可以开始一个逻辑段
⑴FFFFH:
0=FFFF0H
⑵40H:
17H=00417H
⑶2000H:
4500H=24500H
⑷B821H:
4567H=BC777H
〔习题2.7〕什么是有效地址EA?
8088的操作数如果在主存中,有哪些寻址方式可以存取它?
〔解答〕8088的存储空间分段管理,程序设计时采用逻辑地址。
由于段地址在默认的或指定的段寄存器中,所以只需要偏移地址,称为有效地址EA.
操作数在主存中有以下几种寻址方式:
直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址。
〔习题2.8〕已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12H、34H、56H、78H,[21200H]~[21203H]依次存放2AH、4CH、B7H、65H,说明下列每条指令执行完后AX寄存器的内容,以及源操作数的寻址方式?
⑴movax,1200h
⑵movax,bx
⑶movax,[1200h]
⑷movax,[bx]
⑸movax,[bx+1100h]
⑹movax,[bx+si]
⑺movax,[bx][si+1100h]
〔解答〕
⑴movax,1200h;AX=1200H,立即数寻址
⑵movax,bx;AX=0100H,寄存器寻址
⑶movax,[1200h];AX=4C2AH,直接寻址
⑷movax,[bx];AX=3412H,寄存器间接寻址
⑸movax,[bx+1100h];AX=4C2AH,寄存器相对寻址
⑹movax,[bx+si];AX=7856H,基址变址寻址
⑺movax,[bx][si+1100h];AX=65B7H,相对基址变址寻址
〔习题2.11〕给出下列各条指令执行后AL值,以及CF、ZF、SF、OF和PF的状态:
moval,89h
addal,al
addal,9dh
cmpal,0bch
subal,al
decal
incal
〔解答〕
moval,89h;AL=89HCFZFSFOFPF
addal,al;AL=12H10011
addal,9dh;AL=0AFH00101
cmpal,0bch;AL=0AFH10101
subal,al;AL=00H01001
decal;AL=0FFH00101
incal;AL=00H01001
〔习题2.13〕设X、Y、Z、V均为16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。
movax,X
imulY
movcx,ax
moxbx,dx
movax,Z
cwd
addcx,ax
adcbx,dx
subcx,540
sbbbx,0
movax,V
cwd
subax,cx
sbbdx,bx
idivX
〔解答〕:
[V -(X*Y+Z-540 )]/X
〔习题2.18〕如下是一段软件延时程序,请问NOP指令执行了多少次?
xorcx,cx
delay:
nop
loopdelay
〔解答〕:
FFFFH--0001H=216-1=65535次
(若将“xorcx,cx”改为“movcx,0”,则为0次)
第3章汇编语言程序设计
简化段定义格式的源程序框架
.modelsmall
.stack
.data
………
.code
start:
movax,@data
movds,ax
………
movax,4c00h
int21h
………
endstart
完整段定义格式的源程序框架
stacksegmentstack
db1024dup(0)
stackends
datasegment
...;在数据段定义数据
dataends
codesegment‘code’
assumecs:
code,ds:
data,ss:
stack
start:
movax,data
movds,ax
...;在代码段填入指令序列
movax,4c00h
int21h
...;子程序代码
codeends
endstart
〔习题3.13〕名字和标号有什么属性?
〔解答〕:
包括逻辑地址--名字和标号对应存储单元的逻辑地址,含有段地址和偏移地址。
类型--标号、子程序名的类型可以是NEAR(近)和FAR(远),分别表示 段内或段间
变量名的类型可以是BYTE(字节)、WORD(字)和DWORD(双字)等。
第4章 微处理器的外部特性
〔习题4.1〕8088一共有20根地址线。
在访问内存时它所使用的地址线是A0~A19,可直接寻址1MB的内存空间;在访问外设时它所使用地址线是A0~A15,共能寻址64K个输入输出端口。
实际上,PC/XT在寻址外设时,只使用地址线A0~A9若A9=1,说明它要寻址的I/O端口位于I/O通道。
〔习题4.2〕总线操作指的是发生在总线上的某些特定的操作,总线周期指的是CPU通过总线操作与外界(存储器和I/O端口)进行一次数据交换的过程(时间),对8088引脚信号来说,其典型的总线周期由4个T状态组成。
如果8088的CLK引脚接5MHz的时钟信号,那么每个T状态的持续时间为200ns。
〔习题4.4〕在8088的工作过程中,什么情况下会产生TW?
具体发生在什么时刻?
〔解答〕
⏹当8088进行读写存储器或I/O接口时,如果存储器或I/O接口无法满足CPU的读 写时序(来不及提供或读取数据时),需要CPU插入等待状态Tw。
⏹在读写总线周期的T3和T4之间插入Tw。
〔习题4.9〕以最小组态下的I/O读为例,说明在T2~T4期间,8088CPU和I/O端口的工作表现。
〔解答〕:
P109-110
〔习题4.11〕在最小组态下,当8088在进行存储器读、存储器写、输入和输出操作时,其引脚信号
、
和
的有效状态各是什么情况?
〔解答〕:
P101
第5章 存储器系统
〔习题5.2〕在半导体存储器中,RAM指的是随机存取存储器,它可读可写,但断电后信息一般会丢失;而ROM指的是只读存储器,正常工作时只能从中读取信息,但断电后信息不会丢失。
以EPROM芯片2764为例,其存储容量为8K×8位,共有8条数据线、13条地址线。
用它组成64KB的ROM存储区共需8片芯片。
〔习题5.4〕一个容量为4K×4位的假想RAM存储芯片,它应该有多少个地址引脚和多少个数据引脚?
如果让你来进行设计,那么需要安排哪些控制引脚?
这些引脚分别起什么样的控制作用?
〔解答〕
⏹(非双译码设计,即单译码设计时)应该有12根地址线引脚,以及4根数据线引脚
⏹控制引脚:
⏹读取信号OE*:
有效时,表示读取存储单元的数据
⏹写入信号WE*:
有效时,表示将数据写入存储单元
⏹片选信号CS*:
有效时,表示选中该芯片,可以进行读写操作
〔习题5.7〕什么是存储芯片连接中的“位扩充”和“地址扩充”?
采用静态RAM芯片2114(1K×4位)或动态RAM芯片4116(16K×1位)来组成32KB的RAM存储区,请问各需要 多少芯片?
在位方向和地址方向上各需要进行什么样的扩充?
〔解答〕
位扩充——存储器芯片数据位数小于主机数据线数时,利用多个存储器芯片在数据“位”方向的扩充;
⏹地址扩充(字扩充)——当一个存储器芯片不能满足系统存储容量时,利用多个存储器芯片在“地址”方向的扩充
⏹组成32KB存储空间,用SRAM2114(1K×4)需要64个芯片;
⏹组成32KB存储空间,用DRAM4116(16K×1)需要16个芯片;
⏹它们都需要进行位扩充和地址扩充
第6章 输入输出及接口
〔习题6.1〕在80x86系统中,I/O口的地址采用I/O端口独立编址方式,访问端口时要使用专门的I/O(输入输出)指令,有2种寻址方式,其具体形式是:
直接寻址和通过DX间接寻址。
〔习题6.2〕一般的I/O接口电路安排有哪三类寄存器?
它们各自的作用是什么?
〔解答〕
(1)数据寄存器
⏹保存外设给CPU和CPU发往外设的数据
(2)状态寄存器
⏹保存外设或接口电路的状态
(3)控制寄存器
⏹保存CPU给外设或接口电路的命令
〔习题6.3〕简述CPU与外设进行数据交换的几种常用方式。
〔解答〕:
P159
〔习题6.8〕什么是中断源?
为什么要安排中断优先级?
什么是中断嵌套?
什么情况下程序会发生中断嵌套?
〔解答〕
•中断源:
计算机系统中引起中断的事件或原因
•当多个中断源同时请求时,CPU需要利用中断优先权决定首先响应哪一个;当一 个中断正在服务时,又发生了新的中断请求,CPU需要利用中断优先权确定后者是否优先权更高,以便实现中断嵌套
•中断嵌套:
当一个中断服务时CPU又响应新的中断请求就形成中断嵌套
•CPU允许中断(开中断)、新的中断请求比正在服务的中断优先权更高,通常发生中断嵌套
第8章中断控制接口
〔习题8.1〕8088CPU具有哪些中断类型?
各种中断如何产生,如何得到中断向量号?
〔解答1〕:
内(软)中断、外(硬)中断,具体如下:
⏹除法错中断:
在执行除法指令时,除数为0或商超过了寄存器所能表达的范围产生
⏹指令中断:
在执行中断指令INTn时产生
⏹溢出中断:
在执行溢出中断指令INTO时,溢出标志OF为1产生
⏹单步中断:
单步标志TF为1,在每条指令执行结束后产生
⏹非屏蔽中断:
外部通过NMI请求信号向微处理器提出请求时产生
⏹可屏蔽中断:
外部通过INTR请求信号向微处理器提出请求,并在允许可屏蔽中断的条件下产生
〔解答2〕:
⏹除法错中断、溢出中断、单步中断、非屏蔽中断的向量号是8086微处理器内部已经确定
⏹指令中断的操作数n就是向量号
⏹可屏蔽中断的向量号在响应中断时通过数据总线从外部获得
〔习题8.2〕8088中断向量表的作用是什么?
〔解答〕:
中断向量表是一种表数据结构。
是中断向量号与对应中断服务程序之间的连接表。
〔习题8.5〕PC/XT机的ROM-BIOS对8259A的初始化程序如下:
moval,13h
out20h,al
moval,08h
out21h,al
moval,09h
out21h,al
请说明其设定的工作方式。
〔解答〕
moval,13h;13H=00010011,设定工作方式:
单片,边沿触发,要写入ICW4
out20h,al;写入ICW1:
主(单)片地址是20H(参见表8-1)
moval,08h;08H=00001000,设定主(单)片IR0的中断向量号为08H
out21h,al;写入ICW2:
地址参见表8-1
moval,09h;09H=00001001,设定为16位80x86CPU、非自动中断结束、
;该片8259A是从片(按教材是“从”片,个人认为应该是“主片”)、
;8259A数据线采用缓冲方式、8259A工作于普通全嵌套方式
out21h,al;写入ICW4:
地址参见表8-1
〔习题8.8〕某一8086CPU系统中,采用一片8259A进行中断管理。
设定8259A工作在普通全嵌套方式,发送EOI命令结束中断,采用边沿触发方式请求中断,IR0对应的中断向量号为90H。
另外,8259A在系统中的I/O地址是FFDCH(A0=0)和FFDEH(A0=1)。
请编写8259A的初始化程序段。
〔解答〕
MOVDX,0FFDCH;地址参考教材表8-1
MOVAL,00010011 ;参见教材图8-7
OUTDX,AL;
MOVDX,0FFDEH;地址参考教材表8-1
MOVAL,10001000;参见教材图8-7、204/205页例程
OUTDX,AL;
MOVAL,00000111;参见教材图8-7
OUTDX,AL;
第9章 定时计数控制接口
〔习题9.3〕8253每个通道有___种工作方式可供选择。
若设定某通道为方式0后,其输出引脚为低电平;当写入计数初值(并进入减1计数器)后通道开始计数,CLK信号端每来一个脉冲减1计数器就减1;当计数器减为0,则输出引脚输出高电平,表示计数结束。
8253的CLK0接1.5MHz的时钟,欲使OUT0产生频率为300KHz的方波信号,则8253的计数值应为5(=1.5MHz÷300KHz),应选用的工作方式是3。
〔习题9.4〕试按如下要求分别编写8253的初始化程序,已知8253的计数器0~2和控制字I/O地址依次为204H~207H。
⑴使计数器1工作在方式0,仅用8位二进制计数,计数初值为128。
⑵使计数器0工作在方式1,按BCD码计数,计数值为3000。
⑶使计数器2工作在方式2,计数值为02F0H。
〔解答〕为便于理解,在语句后面加了注释。
真正答题时不需要写注释
⑴;写入方式控制字
MOVAL,50H;50H=01010000,参考图9-9
MOVDX,207H;地址参考表9-1
OUTDX,AL;写入方式控制字
;写入计数初值
MOVAL,128;80H:
计数初值
MOVDX,205H;计数器1的地址参考表9-1
OUTDX,AL;向计数器1写入初值
⑵;写入方式控制字
MOVAL,33H;33H=00110011,先低后高写入十进制计数初值
MOVDX,207H;地址参考表9-1
OUTDX,AL;写入方式控制字。
参考图9-9
;写入计数初值
MOVDX,204H;计数器0的地址参考表9-1
MOVAX,3000H;不是3000,而是BCD码形式的十进制数
OUTDX,AL;向计数器0写入计数初值的低字节
MOVAL,AH;
OUTDX,AL;向计数器0写入计数初值的高字节
⑶;写入方式控制字
MOVAL,0B4H;B4H=10110100,先低后高写入二进制计数初值
MOVDX,207H;地址参考表9-1
OUTDX,AL;写入方式控制字
;写入计数初值
MOVDX,206H;计数器2的地址参考表9-1
MOVAX,02F0H;
OUTDX,AL;向计数器2写入计数初值的低字节
MOVAL,AH
OUTDX,AL;向计数器2写入计数初值的高字节
〔习题9.5〕设8253计数器0~2和控制字的I/O地址依次为F8H~FBH,说明如下程序的作用。
moval,33h
out0fbh,al
moval,80h
out0f8h,al
moval,50h
out0f8h,al
〔解答〕
;设置计数器0采用工作方式1,先低后高写入计数值
;BCD码十进制计数
MOVAL,33H;33H=00110011
OUT0FBH,AL
;计数值为5080
MOVAL,80H
OUT0F8H,AL
;;-----------------------------------;;
MOVAL,50H
OUT0F8H,AL
总结:
计数器0采用工作方式1,计数初值为十进制5080(BCD码形式),先低后高写入计数初值
〔习题9.6〕PC机是如何应用8253每个通道的?
〔解答〕
⏹计数器0——
每隔55ms产生一个IRQ0中断请求
⏹计数器1——
每隔15µs产生一个DRAM刷新请求
⏹计数器2——
控制扬声器音调
第11章并行接口
〔习题11.4〕设定8255A的口A为方式1输入,口B为方式1输出,则读取口C的数据的各位是什么含义?
〔解答〕
参见教材图11-8
口C的各个引脚
口A为方式1输入,且口B为方式1输出时
口C的各个引脚被用作——
PC7
I/O引脚
PC6
I/O引脚
PC5
IBFA引脚
PC4
INTEA(STBA*)引脚
PC3
INTRA引脚
PC2
INTEB(ACKB*)引脚
PC1
IBFB*引脚
PC0
INTRB引脚
注:
PC4
INTEA(STBA*)引脚
和
PC2
INTEB(ACKB)引脚
中,括号内的注释可参见教材248页“
(2)选通输出方式”上面的那一段的讲解,以及图11-3、图11-4、图11-8
〔习题11.5〕对8255A的控制寄存器写入B0H,则其端口C的PC5引脚是什么作用的信号线?
〔解答〕
⏹方式控制字为B0H=10110000B,说明A组为方式1输入,它将征用PC5引脚作为输入缓冲器满信号IBFA