32位微机原理汇编语言与接口技术教程课后习题答案.docx
- 文档编号:9341700
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:30
- 大小:64.17KB
32位微机原理汇编语言与接口技术教程课后习题答案.docx
《32位微机原理汇编语言与接口技术教程课后习题答案.docx》由会员分享,可在线阅读,更多相关《32位微机原理汇编语言与接口技术教程课后习题答案.docx(30页珍藏版)》请在冰点文库上搜索。
32位微机原理汇编语言与接口技术教程课后习题答案
《16/32位微机原理、汇编语言及接口技术教程》
部分习题参考解答
第1章微型计算机系统概述
〔习题1.2〕什么是通用微处理器、单片机(微控制器)、DSP芯片、嵌入式系统?
〔解答〕通用微处理器:
适合较广的应用领域的微处理器,例如装在PC机、笔记本电脑、工
作站、服务器上的微处理器。
单片机:
是指通常用于控制领域的微处理器芯片,其内部除CPU外还集成了计算机
的其他一些主要部件,只需配上少量的外部电路和设备,就可以构成具体的应用系统。
DSP芯片:
称数字信号处理器,也是一种微控制器,其更适合处理高速的数字信号,内部集成有高速乘法器,能够进行快速乘法和加法运算。
嵌入式系统:
利用微控制器、数字信号处理器或通用微处理器,结合具体应用构成的控制系统,其典型的特点是把计算机直接嵌入到应用系统之中。
〔习题1.5〕说明微型计算机系统的硬件组成及各部分作用。
〔解答〕
CPU:
CPU也称处理器,是微机的核心。
它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。
处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。
存储器:
存储器是存放程序和数据的部件。
外部设备:
外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。
I/O设备通过I/O接口与主机连接。
总线:
互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。
习题1.6〕
什么是总线?
微机总线通常有哪3组信号?
各组信号的作用是什么?
解答〕
总线:
传递信息的共用通道,物理上是一组公用导线。
3组信号线:
数据总线、地址总线和控制总线。
(1)地址总线:
传输将要访问的主存单元或I/O端口的地址信息。
(2)数据总线:
传输读写操作的数据信息。
(3)控制总线:
协调系统中各部件的操作。
〔习题1.7〕
简答如下概念:
(1)计算机字长
(2)取指-译码-执行周期
(3)ROM-BIOS
(4)中断
(5)ISA总线
〔解答〕
(1)处理器每个单位时间可以处理的二进制数据位数称计算机字长。
(2)指令的处理过程,即指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。
(3)ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬
件设备,用户也可以在应用程序中调用BIOS中的许多功能。
(4)中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先
安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。
(5)ISA总线是指IBMPC/AT机上使用的系统总线。
习题1.8〕
(1)
FFH
解答〕
(1)
255
(2)
0
(3)
94
(4)
239
2)0H
3)5EH(4)EFH
列十六进制数表示无符号整数,请转换为十进制形式的真值:
习题1.9〕
将下列十进制数真值转换为压缩BCD码:
(1)12
(2)24
(3)68
(4)99
解答〕
(1)
12H
(2)
24H
(3)
68H
(4)
99H
〔习题1.10〕将下列压缩BCD码转换为十进制数:
(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对应的ASCII码分别是多少?
ASCII码
0DH和0AH分别对应什么字符?
〔解答〕
数码0〜9对应的ASCII码依次是30H〜39H。
大写字母A〜Z对应的ASCII码依次是:
41H〜5AH。
小写字母a〜z对应的ASCII码依次是:
61〜7AH。
ASCII码0DH和0AH分别对应的是回车和换行字符。
第2章微处理器指令系统
〔习题2.1〕微处理器内部具有哪3个基本部分?
8088分为哪两大功能部件?
其各自的主要功能
是什么?
这种结构与8位CPU相比为什么能提高其性能?
〔解答〕算术逻辑单元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.4〕
举例说明CF和OF标志的差异。
解答〕
例:
有运算:
3AH+7CH=B6H作为无符号数运算,没有进位,CF=0;作为有符号数运算,结果超出范围,OF=1.
〔习题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:
O=FFFFOH
⑵40H:
17H=00417H
⑶2000H:
4500H=24500H
⑷B821H:
4567H=BC777H
〔习题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+11OOh];AX=4C2AH,寄存器相对寻址
⑹movax,[bx+si];AX=7856H,基址变址寻址
⑺movax,[bx][si+11OOh];AX=65B7H,相对基址变址寻址
习题2.9〕
说明下面各条指令的具体错误原因
1)cx为字寄存器,dl为字节寄存器,类型不匹配。
(2)mov指令的目的操作数只能是寄存器或者主存单元,ip是指针。
3)不允许立即数到段寄存器的传送。
4)不允许段寄存器之间的直接传送。
5)数据溢出。
6)sp不能用于寄存器间接寻址。
7)格式不对。
应为:
movax,[bx+di]
8)mov指令的操作数不能是立即数。
〔习题2.10〕
已知数字0〜9对应的格雷码依次为:
18H、34H、05H、06H、09H、OAH、OCH、11H、12H、14H,它存在于以table为首地址(设为200H)的连续区域中。
请为如下程序段的每条指令加上注释,说明每条指令的功能和执行结果。
leabx,table
moval,8
xlat
〔解答〕
leabx,table;获取table的首地址,BX=200H
moval,8;传送欲转换的数字,AL=8
xlat;转换为格雷码,AL=12H
〔习题2.11〕
给出下列各条指令执行后
AL值,以及
CF、
ZF、
SF、
OF和PF的状态
moval,89h
addal,al
addal,9dh
cmpal,0bch
subal,al
decal
incal
〔解答〕
moval,89h
;AL=89H
CF
ZF
SF
OFPF
addal,al;AL=12H1
0011
addal,9dh
;AL=0AFH0
0
1
0
1
cmpal,0bch
;AL=0AFH1
0
1
0
1
subal,al;AL=00H0
1001
decal;AL=0FFH
0010
1
incal;AL=00H
0100
1
习题2.12〕
请分别用一条汇编语言指令完成如下功能:
⑴把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
⑵用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。
⑶用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。
⑷用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。
⑸把数0A0H与AL寄存器的内容相加,并把结果送回AL中〔解答〕
⑴adddx,bx
⑵addal,[bx+si]
⑶add[bx+0b2h],cx
⑷addwordptr[0520h],3412h
⑸addal,0a0h
〔习题2.13〕
设有4个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
CF、OF、SF、ZF、PF的状态。
习题2.14〕给出下列各条指令执行后的结果,以及状态标志movax,1470handax,axorax,axxorax,axnotaxtestax,0f0f0h
解答〕
movax,1470h
;AX=1470H
CF
ZF
SFOFPF
andax,ax;AX=1470H
00
0
0
0
orax,ax;AX=1470H
00
0
0
0
xorax,ax;AX=0000H
01
0
0
1
notax;AX=FFFFH
01
0
0
1
testax,0f0f0h
;AX=FFFFH
0
0
101
习题2.15〕
控制转移类指令中有哪三种寻址方式?
解答〕
相对寻址、直接寻址、间接寻址(还可以分成寄存器间接、存储器间接)〔习题2.16〕
假设DS=2000H、BX=1256H、TABLE的偏移地址是20A1H,物理地址232F7H处存放3280H,试问执行下列段内间接寻址的转移指令后,转移的有效地址是什么?
⑴JMPBX
⑵JMPTABLE[BX]
〔解答〕
(1)1256H
(2)3280H
〔习题2.17〕
判断下列程序段跳转的条件
⑴xorax,1e1eh
jeequal
⑵testal,10000001b
jnzthere
⑶cmpcx,64h
jbthere
〔解答〕
⑴AX=1e1eh(异或后为0)
⑵AL的Do或D7至少有一位为1
⑶CX(无符号数)v64h
〔习题2.18〕如下是一段软件延时程序,请问NOP指令执行了多少次?
xorcx,cxdelay:
noploopdelay
〔解答〕216次
〔习题2.20〕按照下列要求,编写相应的程序段:
⑴由string指示起始地址的主存单元中存放有一个字符串(长度大于6),把该字符
串中的第1个和第6个字符(字节量)传送给DX寄存器。
⑵有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写
程序段完成DX.AX-bufferl—buffer2功能。
⑶编写一个程序段,在DX高4位全为0时,使AX=0;否则使AX=—1。
⑷把DX.AX中的双字右移4位
⑸有一个100个字节元素的数组,其首地址为array,将每个元素减1(不考虑溢出
或借位)存于原处。
〔解答〕
(1)
movdl,string[1]
movdh,string[6]
(2)
movax,wordptrbuffer1
subax,wordptrbuffer2
;先减低16位
movdx,wordptrbuffer1+2
sbbdx,wordptrbuffer2+2
;后减高16位,需减低16位的借位(3)
testdx,0f000h
jznext
movax,-1
jmpdonenext:
movax,0
done:
…
(4)
movcx,4again:
shrdx,1;右移一位,移出的低位进入CF标志
rcrax,1;将CF移进AX高位,同时实现AX右移
loopagain;循环4次,实现4位右移(5)
movcx,100movbx,0again:
subarray[bx],1
incbx
loopagain
第3章汇编语言程序设计
〔习题3.9〕给出下列语句中,指令立即数(数值表达式)的值:
⑴moval,23hAND45hOR67h
⑵movax,1234h/16+10h
⑶movax,23hSHL4
⑷moval,'a'AND(NOT('-'a'A'))
⑸movax,(76543LT32768)XOR7654h〔解答〕
1)
al=67h
2)
ax=133h,dx=4h
3)
ax=0230h
4)
al=41h
5)
ax=7654h
习题3.10〕画图说明下列语句分配的存储空间及初始化的数据值:
⑴byte_vardb'ABC',10,10h,'EFd'up,3(-1,?
3dup(4))
⑵word_vardw10h,-5,3dup(?
)
解答〕
(1)从低地址到高地址,各个字节依次是:
41h42h43h0ah10h45h46hffh-04h04h04hffh-04h04h04hffh-04h04h04h
(2)从低地址到高地址,各个字节依次是:
10h0FBhFFh
其中“-”表示无初值,实际上汇编程序会填入0。
〔习题3.11〕请设置一个数据段,按照如下要求定义变量:
⑴my1b为字符串变量,表示字符串“PersonalComputer”⑵my2b为用十进制数表示的字节变量,这个数的大小为20⑶my3b为用十六进制数表示的字节变量,这个数的大小为20⑷my4b为用二进制数表示的字节变量,这个数的大小为20⑸my5w为20个未赋值的字变量⑹my6c为100的符号常量⑺my7c为字符串常量,代替字符串“PersonalComputer”〔解答〕my1bdb'PersonalComputer'my2bdb20my3bdb14hmy4bdb00010100bmy5wdw20dup(?
)my6c=100my7cequ
〔习题3.15〕
假设myword是一个字变量,mybyte1和mybyte2是两个字节变量,指出下列语句中的具体错误原因。
⑴movbyteptr[bx],1000
⑵movbx,offsetmyword[si]
⑶cmpmybyte1,mybyte2
⑷movmybyte1,al+1
⑸subal,myword
⑹jnzmyword
〔解答〕
(1)1000超过一个字节所能表达的最大整数
(2)SI应为偶数
(3)两个内存单元不能直接运算
(4)不能使用al+1,应改为[al+1]
(5)源操作数与目的操作数类型不匹配
(6)条件转移指令后面应接标号,而不是变量
〔习题3.16〕编写一个程序,把从键盘输入的一个小写字母用大写字母显示出来。
〔解答〕
movah,1;只允许输入小写字母
int21h
subal,20h;转换为大写字母
movdl,al
movah,2
int21h;显示
第4章微机总线
〔习题4.1〕
微机总线的信号线包括、、、以及电源和地线。
微机系统可以
将总线划分为三层(类),它们是、和。
〔解答〕
数据总线、地址总线、控制总线
芯片总线、内总线、外总线
〔习题4.2〕
占用总线进行数据传输,一般需要经过总线请求和仲裁、、和
结束4个阶段。
〔解答〕
寻址,数据传送
〔习题4.7〕
执行一条指令所需要的时间被称为周期,而总线周期指的是,8088基本
的总线周期由个T组成。
如果8088的CLK引脚接5MHz的时钟信号,那么每个T
状态的持续时间为。
〔解答〕
指令
CPU通过总线操作与外界(存储器和I/O端口)进行一次数据交换的过程(时间)
4
200ns
〔习题4.8〕
请解释8088以下引脚信号:
CLK、A19/S6〜A16/S3、Ai5〜A8、AD7〜ADo、10/M、RD、WR、ALE的含义,并画出它们在存储器写总线周期中的波形示意。
〔解答〕
CLK:
CPU时钟信号
A19/S6〜A16/S3:
地址信号A19〜A16和状态信号S6〜S3分时复用信号
A15〜A8:
地址信号A15〜A8
AD7〜AD0:
地址信号A7〜A0和数据信号D7〜D0分时复用信号
IO/M*:
I/O接口和存储器操作区别信号
RD*:
读控制信号,WR*:
写控制信号
1OA1*
ALE:
地址锁存信号
»枫f/s.丄Xg〜也X焉〜%X~
A均〜AgI]A寸A乂
AD7—AD0~X人厂抵X输出数据X
ALE_UL|IL
WR*n!
IL
RD叫READY电平)
〔习题4.9〕
在8088的工作过程中,什么情况下会产生Tw?
具体发生在什么时刻?
〔解答〕
当8088进行读写存储器或I/O接口时,如果存储器或I/O接口无法满足CPU的读
写时序(来不及提供或读取数据时),需要CPU插入等待状态Tw。
在读写总线周期的T3和T4之间插入Tw。
〔习题4.11〕
在8088系统中,读取指令“ADD[2000H],AX”(指令长度为3个字节)和执行该指令各需要几个总线周期?
它们各是什么样的总线周期?
〔解答〕
8088每个总线周期只能读写一个字节数据。
所以读取指令长度为3个字节的指令
“ADD[2000H],AX需要3个时钟周期,执行时需要2个时钟周期。
读取指令是存储器读总线周期,执行时是存储器写总线周期。
第5章主存储器
〔习题5.3〕
类似处理器总线,存储器芯片也分成数据、地址和控制3类引脚。
以存储结构为32K
X8的SRAM62256为例,该芯片应有个数据引脚、个地址引脚,3个
典型的控制引脚分别是、和。
〔解答〕
8
15
片选
输出允许
写入允许
〔习题5.7〕
EEPROM的擦写与闪存的擦写有什么不同?
以AT28C040或AT29C512为例,说明常用的两种判断擦写是否完成的方法,并估算两者完成整个芯片编程的最快时间。
〔解答〕
AT28C040最快编程时间:
(512X1024/256)X10ms=20480ms~20s
AT29C512最快编程时间:
512扇区X(10ms+128字节X(150X10-3+90X10-6)ms)~14950.4ms~15s
〔习题5.8〕
SRAM芯片的片选引脚有什么用途?
假设在8088微处理器系统中,地址信号A19〜
A15输出01011时译码电路产生一个有效的片选信号,则该片选信号将占有多少主存容量?
其地址范围是什么?
〔解答〕
主存容量:
215=32KB,因低位地址信号的个数是15个。
地址范围:
010000000〜01111111,即58000H〜5FFFFH。
〔习题5.11〕
什么是存储器芯片连接中的“位扩展”和“字扩展”?
采用DRAM21256(256KX1)构成512KB的RAM存储模块,需要多少个芯片,怎样进行位扩展和字扩展?
〔解答〕
位扩充:
存储器芯片数据引脚个数小于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 32 微机 原理 汇编语言 接口 技术 教程 课后 习题 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)