1632位微机原理汇编语言和接口技术教程课后习题答案解析.docx
《1632位微机原理汇编语言和接口技术教程课后习题答案解析.docx》由会员分享,可在线阅读,更多相关《1632位微机原理汇编语言和接口技术教程课后习题答案解析.docx(26页珍藏版)》请在冰豆网上搜索。
1632位微机原理汇编语言和接口技术教程课后习题答案解析
《16/32位微机原理、汇编语言及接口技术教程》
部分习题参考解答
第1章微型计算机系统概述
〔习题1.2〕
什么是通用微处理器、单片机(微控制器)、芯片、嵌入式系统?
〔解答〕
通用微处理器:
适合较广的应用领域的微处理器,例如装在机、笔记本电脑、工作站、服务器上的微处理器。
单片机:
是指通常用于控制领域的微处理器芯片,其内部除外还集成了计算机的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
芯片:
称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:
利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。
〔习题1.5〕
说明微型计算机系统的硬件组成及各部分作用。
〔解答〕
:
也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:
存储器是存放程序和数据的部件。
外部设备:
外部设备是指可与微机进行交互的输入()设备和输出()设备,也称设备。
设备通过接口与主机连接。
总线:
互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
〔习题1.6〕
什么是总线?
微机总线通常有哪3组信号?
各组信号的作用是什么?
〔解答〕
总线:
传递信息的共用通道,物理上是一组公用导线。
3组信号线:
数据总线、地址总线和控制总线。
(1)地址总线:
传输将要访问的主存单元或端口的地址信息。
(2)数据总线:
传输读写操作的数据信息。
(3)控制总线:
协调系统中各部件的操作。
〔习题1.7〕
简答如下概念:
(1)计算机字长
(2)取指-译码-执行周期
(3)
(4)中断
(5)总线
〔解答〕
(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。
(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
(3)是“基本输入输出系统”,操作系统通过对的调用驱动各硬件设备,用户也可以在应用程序中调用中的许多功能。
(4)中断是正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
(5)总线是指机上使用的系统总线。
〔习题1.8〕
下列十六进制数表示无符号整数,请转换为十进制形式的真值:
(1)
(2)0H(3)5(4)
〔解答〕
(1)255
(2)0
(3)94
(4)239
〔习题1.9〕
将下列十进制数真值转换为压缩码:
(1)12
(2)24(3)68(4)99
〔解答〕
(1)12H
(2)24H
(3)68H
(4)99H
〔习题1.10〕
将下列压缩码转换为十进制数:
(1)
(2)(3)(4)
〔解答〕
(1)91
(2)89
(3)36
(4)90
〔习题1.11〕
将下列十进制数用8位二进制补码表示:
(1)0
(2)127(3)-127(4)-57
〔解答〕
(1)0
(2)01111111
(3)10000001
(4)11000111
〔习题1.12〕
数码0~9、大写字母A~Z、小写字母a~z对应的码分别是多少?
码0和0分别对应什么字符?
〔解答〕
数码0~9对应的码依次是30H~39H。
大写字母A~Z对应的码依次是:
41H~5。
小写字母a~z对应的码依次是:
61~7。
码0和0分别对应的是回车和换行字符。
第2章微处理器指令系统
〔习题2.1〕
微处理器内部具有哪3个基本部分?
8088分为哪两大功能部件?
其各自的主要功能是什么?
这种结构与8位相比为什么能提高其性能?
〔解答〕
算术逻辑单元、寄存器组和控制器;
总线接口单元:
管理8088与系统总线的接口负责对接口和外设进行访问
执行单元:
负责指令译码、执行和数据运算;
8位在指令译码前必须等待取指令操作的完成,8088中需要译码的指令已经取到了指令队列,不需要等待取指令。
而取指令是最为频繁的操作,因此8088的结构和操作方式节省了大量等待时间,比8位节省了时间,提高了性能。
〔习题2.2〕
说明8088的8个8位和8个16位通用寄存器各是什么?
〔解答〕
8个8位寄存器:
、、、、、、、;
8个16位寄存器:
累加器、基址寄存器、计数器、数据寄存器、源地址寄存
器、目的地址寄存器、基址指针、堆栈指针。
〔习题2.4〕
举例说明和标志的差异。
〔解答〕
例:
有运算:
376H
作为无符号数运算,没有进位,0;
作为有符号数运算,结果超出范围,1.
〔习题2.5〕
什么是8088中的逻辑地址和物理地址?
逻辑地址如何转换成物理地址?
1最多能分成多少个逻辑段?
请将如下逻辑地址用物理地址表达:
⑴:
0⑵40H:
17H⑶2000H:
4500H⑷B821H:
4567H
〔解答〕
物理地址:
物理存储单元具有的一个唯一的20位编号
逻辑地址:
在8088内部和用户编程时,所采用的“段地址:
偏移地址”形式
将逻辑地址中的段地址左移二进制4位(对应16进制是一位,即乘以16),加上偏移地址就得到20位物理地址
1最多能分成1÷16B=220÷24=216个逻辑段,因为每隔16个字节单元就可以开始一个逻辑段
⑴:
0=0H
⑵40H:
17H=00417H
⑶2000H:
4500H=24500H
⑷B821H:
4567H=777H
〔习题2.8〕
已知=2000H、=0100H、=0002H,存储单元[20100H]~[20103H]依次存放12H、34H、56H、78H,[21200H]~[21203H]依次存放2、4、B7H、65H,说明下列每条指令执行完后寄存器的内容,以及源操作数的寻址方式?
⑴,1200h
⑵
⑶,[1200h]
⑷,[]
⑸,[1100h]
⑹,[]
⑺,[][1100h]
〔解答〕
⑴,1200h;=1200H,立即数寻址
⑵;=0100H,寄存器寻址
⑶,[1200h];=4C2,直接寻址
⑷,[];=3412H,寄存器间接寻址
⑸,[1100h];=4C2,寄存器相对寻址
⑹,[];=7856H,基址变址寻址
⑺,[][1100h];=65B7H,相对基址变址寻址
〔习题2.9〕
说明下面各条指令的具体错误原因
⑴⑵
⑶,1234h⑷
⑸,300⑹[]
⑺⑻20
〔解答〕
(1)为字寄存器,为字节寄存器,类型不匹配。
(2)指令的目的操作数只能是寄存器或者主存单元,是指针。
(3)不允许立即数到段寄存器的传送。
(4)不允许段寄存器之间的直接传送。
(5)数据溢出。
(6)不能用于寄存器间接寻址。
(7)格式不对。
应为:
[]
(8)指令的操作数不能是立即数。
〔习题2.10〕
已知数字0~9对应的格雷码依次为:
18H、34H、05H、06H、09H、0、0、11H、12H、14H,它存在于以为首地址(设为200H)的连续区域中。
请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。
8
〔解答〕
;获取的首地址,=200H
8;传送欲转换的数字,=8
;转换为格雷码,=12H
〔习题2.11〕
给出下列各条指令执行后值,以及、、、和的状态:
89h
9
0
〔解答〕
89h;=89H
;=12H10011
9;=000101
0;=010101
;=00H01001
;=000101
;=00H01001
〔习题2.12〕
请分别用一条汇编语言指令完成如下功能:
⑴把寄存器和寄存器的内容相加,结果存入寄存器。
⑵用寄存器和的基址变址寻址方式把存储器的一个字节与寄存器的内容相加,并把结果送到中。
⑶用和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和寄存器的内容相加,并把结果送回存储器中。
⑷用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。
⑸把数0A0H与寄存器的内容相加,并把结果送回中
〔解答〕
⑴
⑵,[]
⑶[0b2h]
⑷[0520h],3412h
⑸,0a0h
〔习题2.13〕
设有4个16位带符号数,分别装在X、Y、Z、V存储单元中,阅读如下程序段,得出它的运算公式,并说明运算结果存于何处。
Y
540
0
X
〔解答〕
((X*540)
〔习题2.14〕
给出下列各条指令执行后的结果,以及状态标志、、、、的状态。
1470h
0f0f0h
〔解答〕
1470h;=1470H
;=1470H00000
;=1470H00000
;=0000H01001
;=01001
0f0f0h;=00101
〔习题2.15〕
控制转移类指令中有哪三种寻址方式?
〔解答〕
相对寻址、直接寻址、间接寻址(还可以分成寄存器间接、存储器间接)
〔习题2.16〕
假设=2000H、=1256H、的偏移地址是20A1H,物理地址232F7H处存放3280H,试问执行下列段内间接寻址的转移指令后,转移的有效地址是什么?
⑴
⑵[]
〔解答〕
(1)1256H
(2)3280H
〔习题2.17〕
判断下列程序段跳转的条件
⑴,1e1
⑵,10000001b
⑶,64h
〔解答〕
⑴=1e1(异或后为0)
⑵的D0或D7至少有一位为1
⑶(无符号数)<64h
〔习题2.18〕
如下是一段软件延时程序,请问指令执行了多少次?
:
〔解答〕
216次
〔习题2.20〕
按照下列要求,编写相应的程序段:
⑴由指示起始地址的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给寄存器。
⑵有两个32位数值,按“小端方式”存放在两个缓冲区1和2中,编写程序段完成←1-2功能。
⑶编写一个程序段,在高4位全为0时,使=0;否则使=-1。
⑷把中的双字右移4位
⑸有一个100个字节元素的数组,其首地址为,将每个元素减1(不考虑溢出或借位)存于原处。
〔解答〕
(1)
[1]
[6]
(2)
1
2
;先减低16位
1+2
2+2
;后减高16位,需减低16位的借位
(3)
0f000h
1
:
0
:
…
(4)
4
:
1;右移一位,移出的低位进入标志
1;将移进高位,同时实现右移
;循环4次,实现4位右移
(5)
100
0
:
[],1
第