微机原理习题答案3文档格式.docx
《微机原理习题答案3文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理习题答案3文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
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
。
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:
(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
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
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
3.56写出可使AX清零的几条指令。
ANDAX,0;
MOVAX,0;
XORAX,AX。
3.57!
3.58什么叫堆栈说明堆栈中数据进出的顺序以及压入堆栈和弹出堆栈的操作过程。
堆栈中数据的进出顺序为“先进后出”
P