微机原理习题答案.docx
- 文档编号:23937015
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:24
- 大小:234.03KB
微机原理习题答案.docx
《微机原理习题答案.docx》由会员分享,可在线阅读,更多相关《微机原理习题答案.docx(24页珍藏版)》请在冰豆网上搜索。
微机原理习题答案
微机原理习题答案3(共11页)
《微型计算机原理》习题3(P117)参考答案
(部分题号与教材有错位,请注意)
为什么要研究8086/8088微处理器及其系统这比直接研究32位微处理器及其系统有何优缺点
解:
尽管8086/8088后续的80286、80386、80486以及Pentium系列CPU结构和功能已发生很大变化,但从基本概念与结构以及指令格式上来讲,他们仍然是经典的8086/8088CPU的延续与提升。
8086CPU有多少根数据线和地址线它能寻址多少内存地址单元和I/O端口8088CPU又有多少根数据线和地址线为什么要设计8088CPU
解:
8086CPU有16根数据线和20根地址线,可寻址1MB存储单元和64KB的I/O端口。
8088CPU有16位内部数据线和8条外部数据总线,20根地址线。
8088CPU是8086CPU的向下兼容版,这样设计主要为了与INTEL原有的8位外围接口芯片直接兼容。
8086CPU内部按功能可分为哪两大部分他们各自的主要功能是什么
解:
从功能上讲,8086可分为两个部分,即总线接口单元(businterfaceunit,BIU)和执行单元(executionunit,EU)。
总线接口单元(BIU)的功能是负责CPU与存储器或I/O设备之间的数据传送。
EU的功能只是负责执行指令;执行的指令从BIU的指令队列缓冲器中取得,执行指令的结果或执行指令所需要的数据,都由EU向BIU发出请求,再由BIU经总线控制电路对存储器或外设存取。
8086CPU内部的总线接口单元BIU由哪些功能部件组成他们的基本操作原理是什么
解:
BIU内有4个16位的段地址寄存器CS、DS、SS和ES,16位指令指针IP,6字节指令队列缓冲器,20位地址加法器和总线控制电路。
基本操作原理是BIU要从内存取指令送到指令队列缓冲器;CPU执行指令时,总线接口单元要配合执行单元从指定的内存单元或者外设端口中取数据,将数据传送给执行单元,或者把执行单元的操作结果传送到指定的内存单元或外设端口中。
什么叫微处理器的并行操作方式为什么说8086CPU具有并行操作的功能在什么情况下8086的执行单元EU才需要等待总线接口单元BIU提取指令
解:
并行操作,就是CPU执行完1条指令后就可以立即执行下一条指令,而不需要像以往8位CPU那样重复的进行先取指令和后执行的指令串行操作。
16位CPU的这种并行操作的特点,提高了总线的信息传输效率和整个系统的执行速度。
只有当遇到转移指令、调用指令或返回指令时,或者当某一条指令在执行过程中,需要频繁访问内存以至于总线接口单元没有空闲从内存将指令提取到指令队列中时,才需要等待总线接口单元BIU提取指令。
逻辑地址和物理地址有什么区别为什么8086微处理器要引入“段加偏移”的技术思想段加偏移的基本含义又是什么试举例说明。
解:
逻辑地址由16位段地址和16位段内偏移量(又称有效地址)组成,程序中指令必须通过逻辑地址访问内存。
物理地址是由20条地址线信号指示的内存地址,在电路中必须使用这20条物理的地址信号线访问内存。
物理地址=段地址×16+有效地址。
参考教材:
P54第3~11行
P56“2。
段寄存器”的第1段
P70“3。
3。
5‘段加偏移’寻址机制允许重定位”
段加偏移的基本含义是:
将段寄存器内容左移4位后与16位偏移地址相加。
例:
假设CS=FA00H,IP=0300H,这是物理地址为0FA300H。
在微处理器中设置指令队列缓冲器有什么作用8086与8088CPU中的指令队列有何区别
解:
指令队列缓冲器在执行指令的同时,可以从内存中取下面一条或几条指令,取来的指令就依次暂放在指令队列中。
区别:
8086指令队列为6个字节,8088为4字节;8086指令队列只要空出2个,而8088只要空出1个指令字节时,BIU便自动执行取指操作,直到填满为止。
8086CPU的基址寄存器BX和基址指针(或基址指针寄存器)BP有何区别基址指针BP和堆栈指针SP在使用中有何区别
解:
基址寄存器BX在查表指令XLAT中存放表的起始地址,而基址指针BP用来存放堆栈地址。
指针寄存器SP和BP都用来指示存储位于当前堆栈段中的数据所在的地址,但SP和BP在使用上有区别。
入栈和出栈指令是由SP给出栈顶的偏移地址,故称为堆栈指针寄存器。
而BP则是存放位于堆栈段中的一个数据区的基地址的偏移地址,故称为堆栈基址指针寄存器。
段地址和段起始地址相同吗两者是什么关系8086的段起始地址就是段基址吗它是怎样获得的
解:
不同。
为了使8086/8088CPU能够寻址1MB内存空间,在其内部设计了一组16位的段寄存器,用这些段寄存器的内容作为段地址,再由段寄存器左移4位形成20位的段起始地址。
8086的段起始地址就是段基址。
由段寄存器左移4位形成20位的段基址。
微处理器在实模式下操作时,段寄存器的用途是什么
解:
为了使8086/8088CPU能够寻址1MB内存空间,在其内部设计了一组16位段寄存器,用这些段寄存器的内容作为段地址,再由段寄存器左移4位形成20位的段起始地址,它们通常被称为段基址;这样,8086/8088就有可能寻址1MB存储空间并将其分为若干个逻辑段,提供在内存中的重定位功能。
在实模式下,若段寄存器中装入如下数值,试写出每个段的起始地址和结束地址。
(1)1000H
(2)1234H(3)E000H(4)AB00H
解:
(1)起始地址:
10000H结束地址:
10000H+FFFFH=1FFFFH
(2)起始地址:
12340H结束地址:
12340H+FFFFH=2233FH
(3)起始地址:
E0000H结束地址:
E0000H+FFFFH=EFFFFH
(4)起始地址:
AB000H结束地址:
AB000H+FFFFH=BAFFFH
微处理器在实模式下操作,对于下列CS:
IP组合,计算出要执行的下条指令的存储器地址。
(1)CS=1000H和IP=2000H
(2)CS=2400H和IP=1A00
(3)CS=1A00和IP=B000H(4)CS=3456H和IP=ABCDH
解:
(1)下条指令地址:
10000H+2000H=12000H
(2)下条指令地址:
24000H+1A00H=25A00H
(3)下条指令地址:
1A000H+B000H=25000H
(4)下条指令地址:
34560H+ABCDH=3F12DH
8086在使用什么指令时,用哪个存储器保存记数值
解:
在使用无条件重复指令REP时,CX寄存器用来保存记数值;
在使用循环控制指令LOOP时,CX寄存器用来保存记数值。
IP寄存器的用途是什么它提供的是什么信息
解:
简单地说,IP寄存器指示即将执行的下一条指令的段内偏移地址。
一般情况下,CPU每取一个指令字节,IP就自动加1,从而保证程序的顺序运行。
程序控制类指令改变IP值,从而改变程序的运行顺序。
8086的进位标志位有哪些运算指令来置位
解:
当执行加法、减法、乘法指令、BCD调整指令、移位和循环指令都会影响进位标志,但使CF置位的运算指令只有NEG指令(STC不算运算指令)。
如果带符号数FFH与01H相加,会产生溢出吗
解:
0FFH+01H=0H,所以不会产生溢出。
某个数包含有5个1,它具有什么奇偶性
解:
奇偶性为奇,标志PF=0
某个数为全0,它的零标志位为0吗(题目不好)
解:
不为0,零标志ZF=1
用什么指令设置哪个标志位,就可以控制微处理器的INTR引脚
解:
用STI和CLI指令控制IF标志,就可以控制微处理器的INTR引脚。
微处理器在什么情况下才执行总线周期一个基本的总线周期由几个状态组成在什么情况下需要插入等待状态
解:
为了从存储器中取得指令或者与一个存储单元或I/O接口单元传送数据,需要它的总线接口单元执行一个总线周期。
一个总线周期由T1、T2、T3和T4这四个状态。
由于外设或存储器的速度较慢,不能及时的配合CPU传送数据。
这时,外设或存储器就会通过“READY”的信号线在T3状态启动之前向CPU发一个“数据未准备好”信号,表示他们还来不及同CPU之间传送数据,于是,CPU会在T3之后自动插入一个或多个附加的时钟周期TW,这个TW就叫等待状态。
什么叫做非规则字,微处理器对非规则字是怎样操作的
解:
对内存中存放的字数据,其低位字节在奇数地址开始存放,称为非规则存放,存放的字叫非规则字。
8086对非规则字必须分两次访问。
8086对1MB的存储空间是如何按高位库和低位库来进行选择和访问的用什么控制信号来实现对两个库的选择
解:
8086的1MB存储空间分为两个512KB的存储体,又称存储库,分别叫高位库和低位库,低位库与数据总线D7—D0相连,该库中每个单元的地址均为偶数地址,高位库与数据总线D15—D8相连,该库中每个单元的地址均为奇数地址。
用A0对低位库和用BHE对高位库实现选择控制。
堆栈的深度由哪个寄存器确定为什么说一个堆栈的深度最大为64kB在执行一条入栈或出栈命令时,栈顶地址将如何变化
解:
堆栈的深度由堆栈指针SP来确定。
因为存储器中包括堆栈段在内的每一个逻辑段至多可包含64KB长的连续存储单元,所以一个堆栈的深度最大为64KB。
执行PUSHs指令时,先SP←SP-2,再[SS:
SP]←S
执行POPd指令时,先d←[SS:
SP],再SP←SP+2
8086/8088CPU对RESET复位信号的复位脉冲宽度有何要求复位后内部寄存器的状态如何
解:
RESET复位信号的复位脉冲宽度不得小于4个时钟周期。
复位后各个寄存器状态如下:
CS=0FFFFH,DS=ES=SS=0,F=0,指令队列清空。
ALE信号起什么作用它在使用时能否被浮空DT/R信号起什么作用它在什么情况下被浮置为高阻状态
解:
它是8086/8088提供给地址锁存器8282/8283的控制信号,高电平有效。
ALE在使用时不能被浮空。
在使用8286/8287作为数据总线收发器时,DT/R信号用来控制8286/8287的数据传送方向。
在DMA方式时,它被置为高阻状态。
8086/8088CPU的哪些引脚采用了时分复用技术哪些引脚具有两种功能
解:
地址/数据总线AD15—AD0,地址/状态总线A19/S6—A16/S3,BHE/S7采用了分时复用技术。
MN/MX、DT/R、M/IO、RQ/GT1、RQ/GT0具有两种功能。
8086/8088CPU的微机系统有哪两种工作方式它们由什么引脚来实现控制这两种工作方式的主要特点和区别如何
解:
8086/8088CPU微机系统有最大和最小两种工作方式。
他们由MN/MX引脚实现控制。
MN/MX接电源电压,系统工作于最小方式,即单处理机系统,适合于较小规模的应用。
MN/MX接地,系统工作于最大方式,一般包含两个或多个微处理器,这样就要解决主处理器和协处理器之间的协调问题以及对总线的共享控制问题。
最大方式和最小方式的主要区别是外加有8288总线控制器。
当8086/8088按最大方式操作时,8288总线控制器主要提供什么功能8086/8088CPU在最大方式下工作时有哪些专用引脚它们的主要作用是什么
解:
通过它对CPU发出的控制信号进行变换和组合,以得到对存储器和I/O端口的读/写信号和对锁存器器8282及对总线收发器8286的控制信号,使总线控制功能更加完善。
在最大方式下使用的专用引脚有:
(1)QS1、QS0指令队列状态信号输出
这两个信号组合起来提供了本总线周期的前一个时钟周期中指令队列的状态,以便于外部对8086/8088内部指令队列的动作跟踪。
(2)LOCK总线封锁信号输出
当LOCK为低电平时,系统中其他主部件就不能占有总线。
(3)RQ/GT1、RQ/GT0总线请求信号输入/总线
这两个信号端可供CPU以外的两个处理器用来发出使用总线的请求信号和接收CPU对总线请求信号的回答信号。
(4)S0、S1、S2状态信号,8288根据这三个状态信号和CLK时钟信号组合输出各种总线控制信号。
为什么要研究指令格式8086/8088微处理器有哪些基本的指令格式
解:
指令格式是按指令系统的特定规范与要求精心设计的,了解指令格式,对完整的掌握一个成功设计的指令系统是十分必要的。
基本指令格式有:
无操作数指令、单操作数指令、双操作数指令
在指令格式中,MOD字段指定了什么信息它和R/M字段确定的有效地址EA的计算方法共有多少种
解:
MOD字段给定指令的寻址方式,即规定是存储器或寄存器的寻址类型,并确定在存储器寻址类型时是否有位移量。
它和R/M字段确定的有效地址EA计算方法共有24种
说明某些机器语言指令中的D位和W位是何作用
解:
D表示来自/到寄存器的方向。
D=1,表示由指令REG字段所确定的某寄存器为目标;D=0,则表示该寄存器为源。
W表示操作数为字或字节处理方式。
W=1,表示为字;W=0,则为字节。
假定指令是16位模式指令,如果指令寄存器字段(REG)的信息为001,W字段为0,试问寻址时选择什么寄存器(题目自相矛盾)
解:
16位模式与W字段为0相互矛盾!
某机器语言16位模式指令的R/M=001,MOD=00,试问该指令指定了哪种存储器寻址方式
解:
指定了[BX+DI]存储器寻址方式
何谓寻址方式8086/8088微处理器有哪几种主要的寻址方式
解:
寻址方式即寻找操作数的方式。
主要的寻址方式有:
固定寻址、立即数寻址、寄存器寻址、存储器寻址、串操作指令寻址、I/O端口寻址方式,其中存储器寻址又可分为:
基址寻址、变址寻址、基址加变址。
此外,程序控制指令还有直接、相对、寄存器间接、存储器间接等寻址方式。
试写出寻址存储器操作时计算有效地址EA的通式。
解:
EA=基址值(BX/BP)+变址值(SI/DI)+位移量Disp(0/8/16位)
指出8086/8088下列指令源操作数的寻址方式。
(1)MOVAX,1200H
(2)MOVBX,[1200H]
(3)MOVBX,[SI](4)MOVBX,[SI+1200H]
(5)MOV[BX+SI],AL(6)ADDAX,[BX+DI+20H]
(7)MULBL(8)JMPBX
(9)INAL,DX(10)INCWORDPTR[BP+50H]
解:
(1)立即数寻址
(2)存储器直接寻址
(3)变址寄存器间接寻址(4)寄存器变址间接寻址
(5)基址加变址寄存器间接寻址(6)基址加变址间接寻址
(7)寄存器寻址(8)寄存器寻址
(9)端口间接寻址(10)寄存器基址加变址间接寻址
指出8086/8088下列指令中存储器操作数物理地址的计数表达式。
(1)MOVAL,[DI]
(2)MOVAX,[BX+SI]
(3)MOV8[BX+DI],AL(4)ADDAL,ES:
[BX]
(5)SUBAX,[2400H](6)ADCAX,[BX+DI+1200H]
(7)MOVCX,[BP+SI](8)INCBYTPPTR[DI]
解:
(1)PA=DS×16+DI
(2)PA=DS×16+(BX+SI)
(3)PA=DS×16+(BX+DI+8)(4)PA=ES×16+BX
(5)PA=DS×16+2400H(6)PA=DS×16+(BX+DI+1200H)
(7)PA=SS×16+(BP+SI)(8)PA=DS×16+DI
指出8086/8088下列指令的错误何在
(1)MOV[SI],IP
(2)MOVCS,AX
(3)MOVBL,SI+2(4)MOV60H,AL
(5)PUSH2400H(6)INC[BX]
(7)MUL-60H(8)ADD[2400H],2AH
(9)MOV[BX],[DI](10)MOVSI,AL
解:
(1)IP不可与内部寄存器之间实现直接数据传送
(2)代码段寄存器CS不可与内部寄存器之间实现直接数据传送
(3)应是[SI+2]指示的内存单元的字节内容
(4)立即数60H不可做目的操作数
(5)PUSH的源操作数只能为寄存器操作数或内存操作数
(6)间接寻址存储器数据加1指令要用TYPEPTR类型操作符来标识数据类型
(7)MUL指令的源操作数只能为寄存器操作数或内存操作数
(8)要用TYPEPTR类型操作符来标识数据类型
(9)两者不能同为存储器操作数
(10)AL为8位,SI为16位,数据类型不匹配
MOVCS,AX指令会带来什么错误
解:
这条指令不存在。
如果有的话,将可以直接仅改变代码段的段基址而IP值不变,程序运行顺序发生变化,变到那里去了很难控制。
阅读下列程序段,指出每条指令执行以后有关寄存器的内容是什么
MOVAX,0ABCH;AX=0ABCH
DECAX;AX=0ABBH
ANDAX,00FFH;AX=00BBH
MOVCL,4;CL=4
SALAL,1;AL=76H,CF=1
MOVCL,AL;CL=76H
ADDCL,78H;CL=0EEH,CF=0
PUSHAX;AX=0076H
POPBX;BX=0076H
解:
执行完后,AX=0076H,CF=0,CL=0EEH
指出RET和IRET两条指令的区别,并说明各用在什么场合
解:
RET用于从过程返回,而IRET用于从中断中返回。
说明MOVBX,DATA和MOVBX,0FFSETDATA指令之间的区别。
解:
MOVBX,DATA;DATA是字变量名,指令功能是把DATA变量的内容→BX
MOVBX,0FFSETDATA;把DATA变量的段内偏移地址→BX
3.44给定DS=1100H,BX=0200H,LIST=0250H和SI=0500H。
试确定下面各条指令寻址存储器的物理地址。
(1)MOVLIST[SI],EDX
(2)MOVCL,LIST[BX+SI]
(3)MOVCH,[BX+SI](4)MOVDL,[BX+100]
解:
(1)PA=11000+0500+0250=11750H
(2)PA=11000+0200+0500+0250=11950H
(3)PA=11000+0200+0500=11700H(4)PA=11000+0200+0100=11300H
假定PC机存储器低地址区有关单元的内容如下所示。
(20H)=3CH,(21H)=00H,(22H)=86H,(23H)=0EH
且CS=2000H,IP=0010H,SS=1000H,SP=0100H
FLAGS=0240H,这时若执行INT8指令,试问:
(1)程序转向从何处执行(用物理地址回答)
(2)栈顶6个存储单元的地址(用逻辑地址回答)及内容分别是什么
解:
(1)PA=0E86×10H+003CH=0E89CH
(2)LA=1000:
00FAH~1000:
00FFH
设SP=2000H,AX=3000H,BX=5000H,执行下列片段程序后,问SP=AX=BX=
PUSHAX
PUSHBX
POPAX
解:
SP=1FFEH,AX=5000H,BX=5000H
某程序段为
2000H:
304CHABC:
MOVAX,1234H
。
。
。
2000H:
307EHJNEABC
试问代码段中跳转指令的操作数为何值
解:
操作数为4CH-(7E+2)=0CCH
若AX=5555H,BX=FF00H,试问在下列程序段执行后,AX=BX=CF=
ANDAX,BX;AX=5500H
XORAX,AX;AX=0000H
NOTBX
解:
AX=0000H,BX=00FFH,CF=0
3.49若CS=E000H,说明代码段可寻址物理存储地址空间的范围。
解:
代码段可寻址物理存储地址空间的范围是:
E0000H—EFFFFH,共64KB的空间。
3.50若DS=3000H,BX=2000H,SI=0100H,ES=4000H,计算出下述各条指令中存储器操作数的物理地址。
(1)MOV[BX],AH
(2)ADDAL,[BX+SI+1000H]
(3)MOVAL,[BX+SI](4)SUBAL,ES:
[BX]
解:
(1)PA=30000+2000=32000H
(2)PA=30000+2000+0100+1000=33100H
(3)PA=30000+2000+0100=32100H(4)PA=40000+2000=42000H
3.51试比较SUBAL,09H与CMPAL,09H这两条指令的异同,若AL=08H,分别执行下述两条指令后,SF=CF=OF=ZF=
解:
在SUB指令中,将AL-09H的值赋给AL,而CMP指令只影响标志,不保存结果。
SUBAL,09H;SF=1,CF=1,OF=0,ZF=0,AL=FF
CMPAL,09;SF=1,CF=1,OF=0,ZF=0,AL=08
3.52选用最少的指令,实现下述要求的功能。
(1)AH的高4位清零
(2)AL的高4位取反
(3)AL的高4位移到低4位,高4位清零
(4)AH的低4位移到高4位,低4位清零
解:
(1)ANDAH,0FH
(2)XORAL,0F0H
(3)MOVCL,4
SHRAL,CL
(4)MOVCL,4
SHLAH,CL
3.53设BX=6D16H,AX=1100H,写出下列两条指令执行后BX寄存器中的内容。
MOVCL,06H;CL=06H
ROLAX,CL;AX=4004H
SHRBX,CL;BX=01B4H
解:
BX=01B4H
3.54设初值AX=0119H,执行下列程序段后AX=
MOVCH,AH;CH=01H
ADDAL,AH;AL=1AH,AF=0,CF=0
DAA;AL=20,AF=1,CF=0
XCHGAL,CH;AL=01H,CH=20H
ADCAL,34H;AL=01H+34H=35H
DAA;AL=35H
MOVAH,AL;AH=35H
MOVAL,CH;AL=20H
HLT
解:
AX=3520H
3.55设初值AX=6264H,,CX=0004H,在执行下列程序段后AX=
ANDAX,AX;AX=6264H,ZF=0
JZDONE
SHLCX,1;CX=0008H
RORAX,CL;AX=6462H
DONE:
ORAX,1234H;AX=7676H
解:
AX=7676H
3.56写出可使AX清零的几条指令。
解:
ANDAX,0;
MOVAX,0;
XORAX,AX。
3.57什么叫堆栈说明堆栈中数据进出的顺序以及压入堆栈和弹出堆栈的操作过程。
解:
堆栈中数据的进出顺序为“先进后出”
PUSHS操作过程,先SP←SP-2,再[SS:
SP]←S
POPD操作过程,先D←[SS:
SP],再SP←S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)