第2 章8086 CPU 的编程结构2.7习题
2.7.1 选择题
1 .请将左边的词汇和右边的说明联系起来
( l ) CPU ( D )A .总线接口部件,实现执行部件所得要的所有总线操作。
( 2 )存储器 exception例外( G ) B .指示下一条要执行指令的偏移地址。
( 3 ) EU ( J ) C .保存各逻辑段的起始地址的寄存器。PC 有4 个段寄存器CS , DS , SS , ES 。
( 4 ) BIU ( A ) D .取指令、分析并控制指令执行的部件。
( 5 )堆栈 ( H ) E .唯一代表存储器空间中的每个字节单元的地址。
( 6 ) IP ( B ) F .保存当前栈顶地址的寄存器。
( 7 ) SP ( F ) G . 存储程序、数据信息的记亿装置,PC 有RAM 和ROM 两种。
( 8 )段寄存器( C ) H .后进先出方式工作的存储空间。
( 9 )物理地址( E ) I .告诉CPU 要执行的操作,在程序运行时执行。
(10 )指令 给领导打电话的技巧( I ) J .执行部件,由算术逻辑单元(ALU )和寄存器等组成。
2 .下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B )。
A . AX 、BX 、CX 、DX B . BX 、BP 、SI 、DI
C . SP 、IP 、BP 、DX D . CS 、DS 、ES 、SS
3 .在8086 / 8088 系统中,约定用于形成堆栈段数据物理地址的寄存器有( B )。
A . SS , SP , BP B . SS , SP , BX
C . DS , BX , BP D . DS , SP , BP
4 .标志寄存器中属于控制标志位的是( B )。
A . DF , OF , SF B . DF , IF , TF
C . OF , CF , PF D .AF , OF, SF
5 .在程序运行过程中,确定下一条指令的物理地址的计算表达式是( C )。
A . DS * 16 + SI B . ES * 16 + DI
C . CS * 16 + IP D . SS * 16 + SP
6 .当使用BP 作编程地址时,此时使用的是( D )段。
A . CS B . DS C . ES D . SS
7 .指令MOV AX ,[BP + 22OH]的源操作数的隐含段为( A )。
A .数据段 B .堆栈段 C.代码段 D .附加段
8 headcount.程序计数器PC 的内容是( C )。
A .指令 B .数据 C .指令地址 D .数据地址
9 .现行数据段位于存储器B000OH 到BOFFFH 字节单元,则段寄存器DS 的内容及该段长度(字节数)分别为( A )。
A . B000H , 1000H B . 0000H , OFFFH C . BO000 , OFFFH D . B000H ,00FFH
10 .存储器物理地址形成规则是( B )。
A .段地址+偏移量 B .段地址左移4 位+偏移量 C .段地址X 16H +偏移量 D .段地址X l0 +偏移量
11 . CPU 与存储器之间的信息交换使用的是( C )。
A .逻辑地址 B .有效地址 C .物理地址 D .相对地址
2.7.2 问答题
1 . 8086 CPU 主要由哪儿部分组成?
答:总线接口部件BIU,负责控制存储器的读写。
执行部件EU, EU从指令队列中取出指令并执行。
8086是16位微处理器,有16根数据线、20根地址线、内部寄存器、运算部件以及内部操作都是按16位设计的
2 . 8086 CPU 有哪些寄存器?各寄存器的主要作用是什么?
答:有14个16位寄存器(1)累加寄存器,常用于运算(2)基址寄存器,常用于地址搜索(3)计数寄存器,常用于计数(压力大了怎么办4)数据寄存器,常用于数据传递(5)堆栈指针,于SS配合使用,可指向目前的堆栈位置(6)基址指针寄存器,可用作SS的一个相对基址位置(7)源变址寄存器,可用来存放相对于DS段之源变址指针(8)目的变址寄存器,可用来
存放相对于ES段之目的变址指针(9)指令指针IP是一个16位专用寄存器,它指向当前需要取出的指令字节当BIU从内存中取出一个指令字节后,IP就自动加1,指向下一指令字节(10)标志寄存器(11)代码段寄存器(12)数据段寄存器(13)堆栈段寄存器(14)附加段寄存器
3 . CPU 的寻址能力为巴黎政治学院8KB ,那么它的地址总线的宽度为多少?
答:如果寻址能力的最小单位是bit,宽度应该为16(8*1024*8)
如果寻址能力的最小单位是byte,宽度应该为13(8*1024)
4 . 1 KB 的存储器有多少个存储单元?
答:1KB=1024字节 一个字节表示一个硬盘的一个可以存储的小单元
5 .指令中的逻辑地址由哪两部分构成?
答:逻辑地址是由段基址和偏移量组成的。
6 .以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。
( l ) 12F8:0100 ( 2 )1A2F : 0103 ( 3 ) 1A3F : 0003 ( 4 ) 1A3F : A1FF
解:(1)13080H (2)1A3F3H (3)1A3F3H (4)245EFH
scalar
7 .自12FA : 0000 开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01
试分别写出12FA : 0002 的字节型数据、字型数据及双字型数据的值。
答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H
8 .内存中某单元的物理地址是19318H ,段基地址为1916H ,则段内偏移地址为多少?若段内偏移地址为2228H ,则段基地址为多少?
答:若段基址为1916H则段内偏移地址为01B8H;若段内偏移地址为kass2228H,则段基址为170FH
9 .在实模式环境中,一个段最长不能超过多少字节?
答:最大为FFFFH,也就是2^16b
=65536kb=1024字节65536/1024=64kb
10 .实模式可寻址的内存范围是多少?
答:1MB
11 .简述标志寄存器中条件标志和控制标志的用途,求62AC+1234H .并根据结果设置条件标志。
答: 标志寄存器(Flags Register,FR)又称程序状态字(Program Status Word,PSW)。这是一个存放条件标志、控制标志寄存器,主要用于反映处理器的状态和运算结果的某些特征及控制指令的执行。
各标志在标志寄存器中的位置:标志寄存器条件标志:
CF(Carry Flag)进位标志:用于反映运算是否产生进位或借位。如果运算结果的最高位产生一个进位或借位,则CF置1,否则置0。运算结果的最高位包括字操作的第15位和字节操作的第7位。移位指令也会将操作数的最高位或最低位移入CF。
PF(Parity Flag)奇偶标志:用于反映运算结果低8位中“1”的个数。“1”的个数为偶数,则PF置1,否则置0。
AF(Auxiliary Carry Flag)辅助进位标志:在字节操作时低半字节向高半字节进位或借位,字操作时低字节向高字节进位或借位,AF置1,否则置0。
ZF(Zero Flag)零标志:用于判断结果是否为0。运算结果0,ZF置1,否则置0。
SF(Sign Flag)符号标志:用于反映运算结果的符号,运算结果为负,SF置1,否则置0。因为有符号数采用补码的形式表示,所以SF与运算结果的最高位相同。
OF(Overflow Flag)溢出标志:反映有符号数加减运算是否溢出。如果运算结果超过了8位或者16位有符号数的表示范围,则OF置1,否则置0。
galilio控制标志:
TF(Trap Flag)陷阱标志:当TF被设置位1时,CPU进入单步模式,所谓单步模式就是CPU在每执行一步指令后都产生一个单步中断。主要用于程序的调试。8086/8088中没有专门用来置位和清零TF的命令,需要用其他办法。
IF(Interrupt Flag)中断标志:决定CPU是否响应外部可屏蔽中断请求。IF为1时,CPU允许响应外部的可屏蔽中断请求。
DF(Direction Flag)方向标志:决定串操作指令执行时有关指针寄存器调整方向。当english studyDF为1时,串操作指令按递减方式改变有关存储器的指针值,每次操作后使SI、DI递减。
12 .将16进制数2AE0Hjustnow与下列各数相加给出结果及各条件标志位的状态(字长为16 位)。
( l ) 69FCH ( 2 ) 33B6H ( 3 ) FF01H ( 4 ) 8D01H
解: (1)94DCH,SF=1,ZF=0,PF=1,CF=0;
(2)5E96H,SF=0,ZF=0,PF=0,CF=0;
(3)29E1H,SF=0,ZF=0,PF=0,CF=1;
(4)B7E1H,SF=1,ZF=0,PF=1,CF=0
13 .一个存储单元的物理地址、段地址、偏移地址三者之间有何关系?
答:20位的物理地址由16位的段地址和16位的段内偏移地址组成。物理地址PA=段地址*10H+偏移地址
14 . 8086 CPU 经加电复位后,执行第一条指令的地址是什么?
答:FFFF0H