从上面运算式中可以看到,次高位向最高位无进位,而你最高为向进位位有进位,所以运算结果溢出。从另一个角度来看,两个负数相加,结果为正数,其符号与减数的符号相反,所以运算结果有溢出。也就是(-56)+(-177)=-173≠+83,运算结果不正确,这是因为已婚算结果又溢出,也就是运算结果的数据位超出了所能表示的范围,侵占了符号位。
15.试将0.0875用IEEE-754的单精度浮点格式表示。 [解]
0.0875=0.000101100110011001100110011B=1.01100110011001100110011B×2的-100B次 尾数L=01100110011001100110011B 阶码=01111111B-100B=01111011B
0.0875的浮点表示=0 01111011 01100110011001100110011 B=3DB33333H
第2章 微处理器
2.1 学习指导
本章主要内容包括:
1.8086/8088微处理器的内部结构与工作原理
8086/8088未处理的内部分为执行单元(EU)和总线接口单元(BIU)两部分。执行单元负责完成指令的执行工作,总线接口单元负责完成预取指令和数据传输的工作。两部分既相互独立工作,又相互配合。这种结构的优点为可疑实现流水作业,在执行指令同时取下一条指令,提高了微处理器的工作效率。 2.8086/8088的内部寄存器
8086/8088具有14个十六位寄存器,包括:8个通用寄存器(4个数据寄存器AX、BX、CX、DX,4个指针寄存器SP、BP、SI、DI),4个段寄存器(CS、SS、DS、ES),1个指令指针寄存器IP和1个状态控制寄存器FR。每个寄存器具有各自的特点,比如:
1)4个数据寄存器具有双重性, 可以存储十六位数据(AX、BX、CX、DX),也可以拆成8个八位寄存器(AL、AH、BL、BH、CL、CH、DL、DH)进行八位运算。
2)16位的状态控制寄存器FR中有9位有效位,其中6位是状态标志(进位状态位CF、辅助进位状态位AF、符号状态位SF、零状态位ZF、奇偶状态位PF和溢出状态位OF),3位是控制标志(中断允许、方向、单步)。 3)16位的指令指针寄存器IP是专为微处理器使用,不能通过指令进行访问。代码段寄存器CS只能读出,不能通过指令赋值。
4)只有BX、BP、SI、DI可以作访问内存单元的地址指令。 3.工作模式与引脚
1)8086CPU和8088CPU的主要特点如表2-1所示。
2)8086/8088未处理其具有两种功能工作模式:最小工作模式和最大工作模式。
最小工作模式:即为构成单微处理器的简单系统,全部信号线均由8086/8088CPU提供 引脚MN/MX非接+5V电压。
9
最大工作模式:即为构成多处理器的复杂系统。一般所构成的系统中除偶一个主微处理器8086/8088外,还有两个协处理器:用于数值运算处理的8087和忧郁输入/输出设备服务的8089,从而大大提高主处理器的运行效率。在此种工作模式下,部分控制信号线是由8288总线控制器提供,而不是由8086/8088CPU直接提供全部信号线。引脚MN/MX接地。
3)8086/8088为40引脚DIP芯片,其中部分引脚采用了服用技术,包括:分时复用(即在一些时刻提供一种信息,而在另一时刻提供另一种信息)和分状态复用(即输入与输出定义不同、高电平与低电平定义不同、不同模式下定义不同)等。分时复用的信号可通过锁存器实现分离。另外,8086/8088中有部分引脚定义不同。主要引脚包括:AD0~AD15、A16/S3~A19/S3、MN/MX、ALE、BHE、REESET、RD、WR、M/IO等。值得注意的是,如何获得存储器读、存储器写、IO读、IO写等信息,如图2-1所示。 4.存储器组织
8086/8088采用分段管理的概念。
1)所有的数据以字节形式存放在存储单元中,每一个单元军战一个地址,但是任何两个相邻字节都可以构成一个字(word),占用两个地址。用地址值较小的那个字节单元地址作为这个字单元的地址。一个16位字中低8位数据存在较小地址的单元中,而高8位数据存在地址较高的的单元中。 2)每个单元均有一个唯一的20位地址,称为物理地址。 3)在软件中8086/8088对存储器采用分段描述的方法,即将整个存储区划分很多的段,每一个段的大小可各不相同,单均≤64KB,各段之间可以是紧密连接、可以是部分或完全重叠、也可以是不相关,每个存储单元可用不惟一的逻辑地址描述(段基值:偏移量)。
4)物理地址与逻辑地址的关系为:物理地址(20位)=段基值(16位)×16+偏移量(16位)。 5)8086的存储器为能满足即可以16位操作又可以8位操作,采用奇、偶两个存储体的结构。 5.堆栈组织
堆栈是一个特定的存储区,它的特点是:一端是固定的,另一端是活动的,而所有的信息存取都在活动的一端进行。堆栈操作的原则是后进先出。栈操作包括:
1)设置栈执政(设置SS、SP)和栈容量(栈长度)。 2)数据进栈操作(PUSH指令)。 3)数据出栈操作(POP指令)。 6.时序
处理器的周期状态可以分为三种:始终周期(是处理器完成一个微操作所需的时间,也就是处理器的基本时间计量单位)、总线周期(是处理器完成一个基本操作所用的时间)和指令周期(是处理器执行一条指令所需的时间)。最基本的读/写总线周期由4个十周周期组成。
2.2单项选择题
1.8088CPU和8086CPU对比,错误叙述是( )。 A.8088CPU和8086CPU的地址线数量相同。 B.8088CPU和8086CPU的片内数据线数量相同。 C.8088CPU和8086CPU的片外数据线数量相同。 D.8088CPU和8086CPU的寄存器数量相同。 [解] C
2.关于8088CPU和8086CPU对比,正确的叙述是( )。 A.8088CPU和8086CPU的地址数位数不相同。 B.8088CPU和8086CPU的片内数据线数量不相同。 C.8088CPU和8086CPU的片外数据线数量不相同。 D.8088CPU和8086CPU的寄存器数量不相同。 [解] C
3.8086为16位的CPU,说明( )。
10
A.8086CPU内有16条数据线 B. 8086CPU内有16个寄存器 C. 8086CPU外有16条地址线 D. 8086CPU外有16条控制线 [解] A
4.下列不是8086/8088CPU数据总线作用的为( )。 A.用于传送指令机器码 B.用于传送立即数 C.用于传送偏移地址量 D.用于传送控制信号 [解] D
5.关于8088CPU叙述不正确的是( )。
A.片内有14个15位寄存器 B.片内有1MB的存储器 C.片内有4字节队列缓冲器 D.片外有8位数据总线 [解] B
6.8086/8088CPU的地址总线宽度为20位,它读存储器的寻址范围为( )。 A.20KB B.64KB C.1MB D.20MB [解] C
7. 8086/8088CPU的地址总线宽度为20位,它对I/O接口的寻址范围为( ) A.20KB B.64KB C.1MB D.20MB [解] B
8.8086/8088CPU从功能结构上看,是由( )组成的。 A.控制器和运算器 B.控制器、运算器和寄存器
C.控制器和20位物理地址加法器 D.执行单元和总线接口单元 [解] D
9.8086/8088CPU内部具有( )个16位寄存器。 A.4 B.8 C.14 D.20 [解] C
10.8086/8088CPU内部具有( )个8位寄存器。 A.4 B.8 C.14 D.20 [解] B
11.8086/8088CPU的标志寄存器FR中有( )个有效位。 A.1 B.3 C.6 D.9 [解] D
12.8086/8088CPU的标志寄存器FR中控制标志位有( )位。 A.1 B.3 C.6 D.9 [解] C
13.8086/8088CPU的标志寄存器FR中控制标志位有( )位。 A.1 B.3 C.6 D.9 [解 ] B
14.8086/8088CPU有( )个16位的段寄存器。 A.2 B.4 C.8 D.16 [解] B
15.指令指针寄存器IP的作用是( A)。 A.保存将要执行的下一条指令所在的位置 B.保存CPU要访问的内存单元地址 C.保存运算器运算结果内容 D.保存正在执行的一条指令 [解] A
16.8088CPU的指令队列缓冲器由( )组成。 A.1字节移位寄存器 B. 4字节移位寄存器
11
C.6字节移位寄存器 D. 8字节移位寄存器 [解] B
17.8086CPU的指令队列缓冲器由( )组成。 A.1字节移位寄存器 B. 4字节移位寄存器 C.6字节移位寄存器 D. 8字节移位寄存器 [解] C
18.指令队列具有( )的作用。
A.暂存操作数地址 B.暂存操作数 C.暂存指令地址 D.暂存预取指令 [解] D
19.8086/8088CPU对存储器采用分段管理的方法,每个存储单元均拥有( )两种地址。
A.实地址和虚拟地址 B.20位地址和16位地址 C.逻辑地址和物理地址 D.段基址和偏移地址 [解] C
20.8086系统中,每个逻辑段的存储单元数最多为( )。 A.1MB B.256B C.64KB D.根据需要而定 [解] C
21.8086/8088CPU中,由逻辑地址形成存储器物理地址的方法是( )。 A.段基值+偏移地址 B.段基值左移4位+偏移地址 C.段基值×16H+偏移地址 D.段基值×10+偏移地址 [解] B
22.8086/8088CPU中,确定下一条指令的物理地址应为( ). A.CS×16+IP B.DS×16+SI C.SS×16+SP D.ES×16+DI [解] A
23. 8086/8088CPU上电和复位后,下列寄存器的值正确的为( )。 A.CS=0000H, IP=0000H B.CS=0000H, IP=FFFFH C.CS=FFFFH,IP=0000H D.CS=FFFFH,IP=FFFFH [解] C
24.当RESET信号为高电平时,寄存器初值为FFFFH的是( )。 A.CS B.ES C.IP D.BP [解] A
25.8086/8088系统中,某存储单元的物理地址为24680H,与其不对应的逻辑地址为( )。
A.46780H:2000H B.2468H:0000H C.2460H:0080H D.2400H:0680H E.2000H:4680H [解] A
26.若某指令存放在代码段为CS=789AH,指令指针为IP=2345H处,问该指令存放单元的物理地址是( )。 A.0H B.7ACE5H C.2ACEAH D.9BDF01H [解] B
27.某8位数据存放在2300H:2300H处,问该8位数据存放单元的物理地址是( )。 A.23000H B.23230H C.23023H D.25300H [解] D
28.若某存储单元的物理地址为ABCDEH,( )不是其相应的逻辑地址。
A.ABCDH:000EH B.ABC0H:00DEH C.AB00H:0CDEH D.A000H:0CDEH [解] D
29.下列逻辑、地址中对应不同的物理弟子的是( )
A.0400H:0340H B.0420H:0140H C.03E0H:0740H D.03C0:0740H [解] C
30.8086/8088CPU存放当前指令的存储单元的逻辑地址为( )。
12