80X86微处理器的寄存器结构
80486微处理器
4、指令预取部件——对代码做取入、排队分析、分
解等译码的前期准备工作。 • 代码预取操作是利用总线空闲周期,不断将后续指 令从高速缓存中或内存中取入,放置在指令队列中, 直到装满为止。 • 该部件有两个16字节的队列寄存器,它与Cache之 间有一条128位(8*16)宽度的通道,因此,每次从 cache最多可取16字节的信息。 • 这种指令的取入和分析执行的并行操作,避免了译 码部件因总线忙碌不能及时取入后续指令,而2位微处理器内部的基本逻辑部件之间的基本 联系、各部件的主要功能、数据在微处理器中的主要流动趋向。
所有部件都挂接在内部总线上,通过内部总线交换数据,
也可以按粗尖头所示方式与相邻部件交换数据。每个部件都有
自己的寄存器。
13
3.1.2 寄存器组
分4类:
基本结构寄存器
浮点寄存器
应用程序可访问
15
累加器 基址 计数 数据 源变址 目标变址 基址指针 堆栈指针
8位
8位
返回
返回
返回
16
(2)段寄存器——指出代码和数据所用的存储空间。 有6个16位的。 • 代码段 CS——指示存放程序代码的地址空间 • 数据段 DS,ES,FS,GS——指示数据的地址空 间 • 堆栈段 SS——指示存放程序执行的中间结果的地 址空间 见图3。2(b)
18
2、系统级寄存器
控制着80486微处理器的片内cache、运算部分的 浮点部件以及存储管理部件。含有4个控制寄 存器和4个系统地址寄存器。(系统程序使 用)。
19
(1)控制寄存器——CR0,CR1,CR2,CR3 为32位的。见 书 P.20如图3.3(a) CR0——保存系统的控制和状态信息。 CR1——Intel为以后开发保留 CR2——保留了所检测到的上一个页面故障的32位线性地址 。 (C2R)3—系—统保地留址页寄目存录器表—的—物又理称基保址护。方式寄存器(仅在保护模 式下使用)。见书 P.20图3.3(b)
第4章指令系统层习题参考解答-汇编语言与计算机组成原理 答案
1.什么是“程序可见”的寄存器?程序可见寄存器是指在用户程序中用到的寄存器,它们由指令来指定。
2. 80x86微处理器的基本结构寄存器组包括那些寄存器?各有何用途?基本结构寄存器组按用途分为通用寄存器、专用寄存器和段寄存器3类。
通用寄存器存放操作数或用作地址指针;专用寄存器有EIP和EFLAGS,分别存放将要执行的下一条指令的偏移地址和条件码标志、控制标志和系统标志;段寄存器存放段基址或段选择子。
3.80x86微处理器标志寄存器中各标志位有什么意义?常用的7位:CF进位标志: 在进行算术运算时,如最高位(对字操作是第15位,对字节操作是第7位)产生进位或借位时,则CF置1;否则置0。
在移位类指令中,CF用来存放移出的代码(0或1)。
PF奇偶标志: 为机器中传送信息时可能产生的代码出错情况提供检验条件。
当操作结果的最低位字节中1的个数为偶数时置1,否则置0。
AF辅助进位标志: 在进行算术运算时,如低字节中低4位(第3位向第4位)产生进位或借位时,则AF置1;否则AF置0。
ZF零标志:如指令执行结果各位全为0时,则ZF置1;否则ZF置0。
SF符号标志:其值等于运算结果的最高位。
如果把指令执行结果看作带符号数,就是结果为负,SF置1;结果为正,SF置0。
OF溢出标志: 将参加算术运算的数看作带符号数,如运算结果超出补码表示数的范围N,即溢出时,则OF置1;否则OF置0。
DF方向标志: 用于串处理指令中控制处理信息的方向。
当DF位为1时,每次操作后使变址寄存器SI和DI减小;当DF位为0时,则使SI和DI增大,使串处理从低地址向高地址方向处理。
4.画出示意图,简述实模式下存储器寻址的过程。
20位物理地址如下计算(CPU中自动完成):10H×段基址+偏移地址=物理地址5. 画出示意图,简述保护模式下(无分页机制)存储器寻址的过程。
采用对用户程序透明的机制由选择子从描述子表中选择相应的描述子,得到欲访问段的段基址、段限等有关信息,再根据偏移地址访问目标存储单元。
8086微处理器的功能与结构
8086微处理器的功能与结构四、80x86微处理器的结构和功能(一)80x86微处理器1.8086/8088主要特征(1)16位数据总线(8088外部数据总线为8位)。
(2)20位地址总线,其中低16位与数据总线复用。
可直接寻址1MB存储器空间。
(3)24位操作数寻址方式。
(4)16位端口地址线可寻址64K个I/O端口。
(5)7种基本寻址方式。
有99条基本指令。
具有对字节、字和字块进行操作的能力。
(6)可处理内部软件和外部硬件中断。
中断源多达256个。
(7)支持单处理器、多处理器系统工作。
2.8086微处理器内部结构8086微处理器的内部结构由两大部分组成,即执行部件EU(Execution Unit)和总线接口部件BIU(Bus Interface Unit)。
和一般的计算机中央处理器相比较,8086的EU相当于运算器,而BIU则类拟于控制器。
3.8086最小模式与最大模式及其系统配置最小模式在结构上的特点表现为:系统中的全部控制信号直接来自8086CPU。
与最小模式相比,最明显的不同是系统中的全部控制信息号不再由8086直接提供,而是由一个专用的总线控制器8288输出的。
4.8087与8089处理机简述(1)8087协处理机8087协处理机与8086组合在一起工作,以弥补8086在数值运算能力方面的不足,所以它又称为协处理机。
(2)8089I/O处理机8089是一个带智能的I/O接口电路,相当于大型机中的通道,它将CPU的处理能力与DMA控制器结合在一起。
它具有52条基本指令,1MB的寻址能力,包含两个DMA通道。
8089也可以与8086联合在一起工作,执行自己的指令,进行I/O 操作,只在必需时才与8086进行联系。
在8089的控制下,可以进行外设与存储器之间、存储器与存储器之间以及外设与外设之间的数据传输。
同时,8089还可以设定多种终止数据传输的方式。
5.总线时序一个基本的总线周期包括4个时钟周期,即4个时钟状态T 1 、T2 、T3 和T4 。
汇编语言第2章80x86计算机组织
控制标志位
• 控制标志位 :DF 方向标志,用于串处理指令处理
▪ DF位为1时,每次操作后使变址寄存器SI和 DI减量,使串处理从高地址向低地址方向处 理:
▪ 当DF位为0时,则使SI和DI增量,使串处理 从低地址向高地址方向处理:
系统标志位
• IF:中断标志。 当IF=1时,允许中断; IF=0时关闭中断
数据的宽度 • 地址总线宽度:用以确定可访问的存储器的最
大范围
地址总线宽度
• 10位:210=1024单元,1K • 20位:220=1024* 210单元=1024K,1M • 24位:224=16*1M,16M • 30位:230=1024M,1G • 32位:232=4G,即4GB
二、一些名词术语(2)
• TF:陷井标志(跟踪标志)。用于单步方式操作 • IOPL:I/O特权级。控制对I/O地址空间访问
段寄存器
• 8086/8088、80286:四个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES
• 80386及后继机型:六个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES、 FS、GS---都是16位
• ZF:零标志。运算结果为0,置1;否则置0。 • CF:进位标志。记录从最高有效位产生的进位值。
最高有效位有进位时置1,否则置0。 • AF:辅助进位标志。记录运算时第3位产生的进位
值。如第3位有进位时置1,否则置0。 • PF:奇偶标志。当结果操作数中1的个数为偶数时置
1,否则置0。
标志符号 举例
段中的某一存储单元的地址 4. SI、DI一般与DS联用:
在串处理指令中,SI和DS联用,DI和ES联用
8086系统的堆栈
• 是存储器中的特殊区域 – 在堆栈段内,“FILO” – SP始终指向栈顶,总是字操作,指示栈顶的 偏移地址; – BP可作为堆栈区中的一个基地址以便访问 堆栈中的其他信息
80386&80C51寄存器
寄存器是中央处理器内的组成部份。
寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。
在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。
在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。
寄存器通常都用来意指由一个指令之输出或输入可以直接索引到的暂存器群组。
更适当的是称他们为“架构寄存器”。
以下寄存器都是32-bits 宽;A、通用寄存器顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。
通用寄存器最多的用途是计算。
EAX:通用寄存器。
相对其他寄存器,在进行运算方面比较常用。
在保护模式中,也可以作为内存偏移指针(此时,DS 作为段寄存器或选择器)EBX:通用寄存器。
通常作为内存偏移指针使用(相对于EAX、ECX、EDX),DS 是默认的段寄存器或选择器。
在保护模式中,同样可以起这个作用。
ECX:通用寄存器。
通常用于特定指令的计数。
在保护模式中,也可以作为内存偏移指针(此时,DS 作为寄存器或段选择器)。
EDX:通用寄存器。
在某些运算中作为EAX 的溢出寄存器(例如乘、除)。
在保护模式中,也可以作为内存偏移指针(此时,DS 作为段寄存器或选择器)。
同AX 分为AH&AL 一样,上述寄存器包括对应的16-bit分组和8-bit 分组。
B、用作内存指针的特殊寄存器ESI:通常在内存操作指令中作为“源地址指针”使用。
当然,ESI 可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。
DS 是默认段寄存器或选择器。
EDI:通常在内存操作指令中作为“目的地址指针”使用。
当然,EDI 也可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。
DS 是默认段寄存器或选择器。
EBP:这也是一个作为指针的寄存器。
通常,它被高级语言编译器用以建造‘堆栈帧'来保存函数或过程的局部变量,不过,你可以在其中保存你希望的任何数据。
80386的寄存器组成
80386共提供7种类型的32位寄存器,如下:1.通用寄存器(EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI)2.段寄存器(CS、SS、DS、ES、FS、GS)3.指令指针寄存器和标志寄存器(EIP、EFLAGS)4.系统表寄存器(GDTR、IDTR、LDTR、TR)5.控制寄存器(CR0、CR1、CR2、CR3、CR4)6.调试寄存器(DR0、DR1、DR2、DR3、DR4、DR5、DR6、DR7)7.测试寄存器(TR6、TR7)其中后三类寄存器是80386以后的CPU才有的,以前的CPU完全没有。
下图是前四类寄存器的大致示意图:本文只对这些寄存器做一个大致的介绍,其中有些特殊且有较大意义的寄存器,会另文介绍。
一、通用寄存器一组八个通用寄存器是对8086/80286通用寄存器的32位扩展,其用法与在8086/80286中相似,支持8位、16位、32位操作,进行32位操作是,寄存器名称前面冠以“E”。
这八个寄存器的名称如下:EAX(累加器)、EBX(基址)、ECX(计数)、EDX(数据)、ESP(栈指针)、EBP(基址指针)、ESI(源变址)、EDI(目的变址)。
二、段寄存器80386比8086/80286增加了两个段寄存器FS、GS。
除CS支持代码段,SS支持堆栈段外,程序员可以利用其它的所有段寄存器支持数据段。
每个段寄存器对应这一个64位高速缓存器(有些资料中说有96位,但值使用其中的64位),这在8086中是没有的(在80286中为48位),它的具体作用将另文介绍。
三、指令指针寄存器和标志寄存器指令寄存器EIP是对8086/80286指令指针寄存器的32位扩展,它包含着待执行指令的32位偏移量,该值总是相对CS所代表的段基址而言的。
标志寄存器也是对8086/80286标志寄存器的32位扩展,其定义如下(这张图截自Intel关于IA32架构的最新文档):其中OF、DF、IF、TF、SF、ZF、AF、PF和CF在8086中就已经存在,请参考相关资料。
第二章 80x86计算机组织
80x86汇编语言程序设计
1. 状态标志取值的一般规则
ZF(Zero Flag):零标志。若运算结果为0,则ZF = 1,否则 ZF = 0。
SF(Sign Flag):符号标志。若运算结果为负数,则SF = 1, 否则SF = 0。 CF(Carry Flag):进位标志。若加法时结果最高位向前有进 位或减法时最高位向前有借位,则CF = 1,否则CF = 0。 OF(Overflow Flag):溢出标志。若带符号数的运算结果超 出了补码表示的范围,则OF = 1,否则OF = 0。 AF(Auxiliary Carry Flag):辅助进位标志。若加法时结果 低4位向前有进位或减法时结果低4位向前有借位,则AF = 1,否 则AF = 0。 PF(Parity Flag):奇偶标志。若结果最低字节中1的个数为 偶数,则PF = 1,否则PF = 0。
80x86程序可以存取的最小数据单位是字节。例如,若要读取的位 数不足8位,则只能先读出一个完整字节,再屏蔽掉其它位。
字的存储采取“低字节在低地址,高字节在高地址,字的地址由低 地址表示”的小端方式,双字也类似。
要正确理解内存单元的地址和值,地址表示位置,值是相应位置处 的内容。同一地址既可以看作字节单元地址,也可以看作字甚至双字 单元地址,取决于具体的使用方式。
2013-1-20
80x86汇编语言程序设计
80x86 CPU有3种工作模式:实模式、保护模式和虚拟8086模 式。 在实模式下,段地址和偏移地址均为16位。20位物理地址由 16位段地址左移4位加16位偏移地址得到,只能寻址1MB的内存 空间,且每段≤64KB。 在实模式下,32位CPU下的程序可以使用32位寄存器和32位操 作数,但采用32位寄存器表示偏移地址时,只使用低16位,高 16位为0。CS:IP总是指向下一条要执行的指令,EIP的高16位为 0。SS:SP指向堆栈段的栈顶,ESP的高16位为0。 状态标志是CPU进行条件判断和控制程序执行流程的依据,最 常用的是4个:CF、OF、SF和ZF。其中,CF表示无符号溢出,OF 表示带符号溢出。
80X86寄存器及存储器结构介绍
二、段寄存器
CS:代码段寄存器
SS:堆栈段寄存器 DS:数据段寄存器 ES:附加段寄存器 IP:指令指针寄存器 与CS一起指向程序中下一条要执行的指令 FLAG:标志寄存器
三、控制寄存器
16位的寄存器,其中9个位是标志位,代表了系统运行 的状态。
80X86寄存器
湖南大器,也称栈顶指针。与堆栈段寄存器SS一起 寻址栈顶单元。 BP:基址指示器。常与SS一起寻址堆栈中的非栈顶单元。
3、变址寄存器
SI:源变址寄存器 DI:目的变址寄存器
它们常用于串操作,当然也可存放数据。
80X86寄存器
湖南大学 赵欢 hzhao@ 3
8088存储器结构
湖南大学
赵欢 hzhao@
7
DF、IF、TF不受算逻指令影响,有专门的方式置/复位;
DF:方向标志 DF=1,串操作为自动地址减量方式 =0,串操作为自动地址增量方式 IF:中断标志 IF=1,开中断;IF=0,关中断 TF:追踪标志 DF=1,CPU为单步执行方式;DF=0,CPU为连续执行方式
湖南大学 赵欢 hzhao@ 5
80X86寄存器
8088有20根地址线,8根数据线。 基本内存配置 具有:220=1M个内存单元 每个单元:8 bits
与地址有关的寄存器CS、SS、DS、ES、IP、SP
BX、BP、SI、DI均是16位的。
16位的寻址能力如何访问1MB的空间?
8088存储器结构
湖南大学 赵欢 hzhao@ 6
FLAG寄存器的各个位
15 12 11 10 9 IF 8 7 6 ZF 5 4 AF 3 2 PF 1 0 CF OF DF TF SF
80868088CPU寄存器组
80868088CPU寄存器组今天来回顾⼀下8086/8088 CPU寄存器组的知识。
其实8086汇编还是很久以前学过的,Win32汇编也接触过⼀些,但是由于长时间不碰,⽣疏了不少。
今后可以花点时间总结总结,梳理⼀下以前学习过的知识,尽管暂时还⽤不上,但这样就便于以后需要⽤到的时候很容易捡起来。
我知道博客园⾥⼤多数⼈都是搞Web或者⼿机开发的,相信⽤汇编的⼈也不多,不过⼯作之余学⼀学汇编,了解⼀些计算机底层的知识,对⾃⼰的“⾝⼼”是有帮助的。
希望⾃⼰能坚持把8086汇编完整地写完,如果有精⼒还可以写⼀写win32汇编。
这⼀节先从8086/8088 CPU寄存器组开始说起。
说到8086/8088 CPU寄存器组,它们的特点就是都是16位的,不论是通⽤寄存器、段寄存器还是标志寄存器。
8086/8088包括四个16位数据寄存器,两个16位指针寄存器,两个16位变址寄存器,⼀个16位指令指针寄存器,四个16位段寄存器,⼀个16位标志寄存器。
总共有14个寄存器,这14个寄存器分成四组。
我从《80x86汇编语⾔程序设计教程》电⼦版上截了⼀张图,它描绘了这14个寄存器的名称和分组情况。
通⽤寄存器何谓通⽤寄存器,简单来说就是经常⽤到的寄存器。
按照上图我们不难发现,数据寄存器、指针寄存器和变址寄存器统称为通⽤寄存器。
这些寄存器除了各⾃规定的专门⽤途外,它们均可⽤于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果。
数据寄存器数据寄存器主要⽤来保存操作数或运算结果等信息,它们的存在节省了为存取操作数所需占⽤总线和访问存储器的时间。
四个16位的数据寄存器均可分解成⼋个独⽴的8位寄存器,这⼋个8位的寄存器有各⾃的名称,均可独⽴存取。
⽐如:AX寄存器可以分解为AH寄存器和AL寄存器,其中AH寄存器就是AX寄存器的⾼8位,AL寄存器就是AX寄存器的低8位。
其他寄存器类推。
这四个数据寄存器除了它们通⽤的功能以外,还有其他专门的⽤途。
IBM—PC(80x86)汇编语言与接口技术-第2章 80x86计算机组织
• 80386是1985年研制出的一个32位微处理器, 内部及外部数据总线均为32位,地址线也为32 位,因此它可处理4G(232)字节的物理存储 空间。
• 1989年Intel公司又研制出新一代的微处理器 80486,80486芯片内除了有一个与80386相同 结构的主处理器外,还集成了一个浮点处理部 件FPU以及一个8K字节的高速缓冲存储器 (cache),使80486的计算速度和总体性能比 80386有了明显的提高。
• Intel公司在1982年推出了80286微处理器,它仍 然是16位结构。80286的内部及外部数据总线都 是16位的,但它的地址线是24位的,可寻址16M 字节的存储空间。
80286有两种工作方式,即实模式和保护模式: 实模式与8086工作方式相同,但速度比8086快。
保护模式除了仍具有16M字节的存储器物理地址空 间外,她还能为每个任务提供1G字节的虚拟存储 器地址空间。保护方式把操作系统及各任务所分配 到的地址空间隔离开,避免程序之间的相互干扰, 保证系统在多任务环境下正常工作。
• 8086是1978年Intel公司推出的16位微处理器。
(1)8086有16位数据总线,处理器与外部传送数据 时,一次可传送16位二进制数。
(2)8086有20位地址总线,寻址空间提高到1M字节。
(3)8086采用了流水线技术,可以实现处理器的内 部操作与存储器或I/O接口之间的数据传送操作重叠 进行,从而提高了处理器的性能。
2.2 基于微处理器的 计算机系统的构成
硬件:
中央处理机 CPU
总线控制 逻辑 系 统 总 线
存储器
接口
...
接口
大容量 存储器
...
I/O设备
I/O子系统
80x86微处理器习题及答案
80x86微处理器习题及答案 16.8086/8088的主要操作有: (1)系统的复位和启动操作;
(2)总线操作;
(3)中断操作; (4)最小模式下的总线保持;
(5)最大模式下的总线请求与保持。
总线操作又分为最小模式下的总线读操作、最小模 式下的总线写操作、最大模式下的总线读操作和最大模 式下的总线写操作。
对基址变址寻址方式中,隐含的数据段是DS。
BX:在寄存器间接寻址、寄存器相对寻址、基址变址寻址和相 BP:在寄存器间接寻址、寄存器相对寻址、基址变址寻址和相 对基址变址寻址方式中,隐含的数据段是SS。
SI:在寄存器间接寻址、寄存器相对寻址、基址变址寻址和相
对基址变址寻址方式中,隐含的数据段是DS。在字符串操作 时,SI作为源变址,隐含的数据段是DS。
(4)往指令队列中装入指令时,是按照指令在存储器中的排列 顺序进行的。但执行转移、调用和返回指令时,下一条要 执行的指令就不是存储器中紧接着的那条指令了。遇到这 种情况,BIU先把指令队列中原内容清零,再从要执行的那 条指令开始装入。
80x86微处理器习题及答案
9.
指示偏移地址的寄存器有BX,BP,SI,DI,SP,1P。
中不使用。 10. (1)→(D);(2)→(G);(3)→(J); (4)→(A);(5)→(H);(6)→(B); (7)→(F);(8)→(C);(9)→(E);
(10)→(1)。
80x86微处理器习题及答案
12.为了取指令或传送数据,就需要BIU执行一个总线周期。一
个基本的总线周期由四个时钟周期组成,习惯上将它们称为 四个T状态,即T1状态、T2状态、T3状态和T4状态。有时会 出现等待状态Tw和空闲状态Ti。在各个T状态中,CPU完成的 工作分别为: (1)在T1状态,CPU往地址/数据复用总线上发地址信息。 (2)在T2状态,从地址/数据总线上撤销地址信息,并使地址 /数据总线的低16位成为高阻态,为传送数据信息做准备。
中央处理器及CPU80486
控制总线
RET
接口
输入/出设备
IP,ARPC PC PC+1 读内存,IR 读出内容
2015-4-12
807
堆栈FF0单元存A00
ARSP SP SP+1 读内存,PCMEM 北京理工大学理学院
24
加法指令
2015-4-12 北京理工大学理学院
在微指令下地址 字段中表示清楚: 使用哪种方法, 哪个(些)判断条件, 要用的有关地址等, 并用专门电路完成 必要支持和处理, 微指令的下地址是 微程序设计中要重 点解决的问题之一, 技术、技巧性强。
11
控制命令字段
给出计算机各功能部件协同运行所需要的控制信号
控制执行指令
程序计数器、指令寄存器、 提供控制信号的部件
控制各部件协调运行,即为各部件提供控制信号。
分类 : 微程序的控制器 硬布线的控制器
2015-4-12 北京理工大学理学院 3
控制器的功能
计算机的功能是执行程序 程序是依次排列起来的指令代码 控制器的功能就在于: 正确且自动地连续执行指令; 正确地分步完成每一条指令规定的功能; 再进一步说,就是向计算机各功能部件发出 协调运行每一个步骤所需要的控制信号。
2015-4-12 北京理工大学理学院 14
为每一条微指令分配微地址
需要为每一条微指令在控制存储器中 分配一个合适的地址 这是合理地组织微程序的重要工作 首先确定微指令中下地址字段的组成, 再按每一条微指令在控存中的位置 来安排下地址字段的各部分的编码 这与控制器的 具体线路与方案 有关
2015-4-12 北京理工大学理学院 15
第4章_INTEL80X86系列微处理器习题参考答案
第4章Intel80X86系列微处理器习题解答4.1 8086/8088内部寄存器有哪些?哪些属于通用寄存器?哪些用于存放段地址?标志寄存器的含义是什么?答:8086/8088内部有14个16位的寄存器。
8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI。
4个16位的段寄存器CS、DS、SS、ES,用于存放段地址。
标志寄存器FLAGS用于存放指令执行结果的特征和CPU 工作方式,其内容通常称为处理器状态字PSW。
4.2 对于8086/8088CPU,确定以下运算的结果与标志位。
(1)5439H+456AH (2)2345H+5219H (3)54E3H-27A0H(4)3881H+3597H (5)5432H-6543H (6)9876H+1234H略。
4.3 8086/8088为什么要对存储器采用分段管理?一个段最多包含多少存储单元?答:8086/8088内部与地址有关的寄存器都是16位的,只能处理16位地址,对内存的直接寻址范围最大只能达64KB。
为了实现对1MB单元的寻址,8086/8088系统采用了存储器分段技术。
一个段最多包含64K 个存储单元。
4.4 8086/8088CPU内部共有多少个段?分别称为什么段?段地址存放在哪些寄存器中?答:8086/8088 CPU内部共有4个段。
分别称为代码段、数据段、堆栈段和附加段。
段地址存放在4个16位的段寄存器,CS代码段寄存器、DS数据段寄存器、SS堆栈段寄存器、ES附加段寄存器中。
4.5 简述物理地址、逻辑地址、段基地址和偏移量的含义及其相互关系。
答:物理地址:信息在存储器中实际存放的地址,它是CPU访问存储器时实际输出的地址。
逻辑地址:编程时所使用的地址,由段基地址和偏移量两部分构成。
段基地址(段地址或段基址):段的起始地址的高16位。
偏移量(偏移地址):所访问的存储单元距段的起始地址之间的字节距离。
给定段基地址和偏移量,就可以在存储器中寻址所访问的存储单元。
微型计算机原理 (第三章课后答案)
微型计算机原理第三章 80X86微处理器1.简述8086/8088CPU中BIU和EU的作用,并说明其并行工作过程. 答:(1) BIU的作用:计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。
(2) EU的作用:执行指令,并为BIU提供所需的有效地址.(3) 并行工作过程:当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。
这样就实现了取指和执行指令的并行工作。
2.8086/8088CPU内部有哪些寄存器?其主要作用是什么?答:8086/8088CPU内部共有14个寄存器,可分为4类:数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。
其主要作用是:(1) 数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途.AX(Accumulator)称为累加器.用该寄存器存放运算结果可使指令简化,提高指令的执行速度。
此外,所有的I/O指令都使用该寄存器与外设端口交换信息。
BX(Base)称为基址寄存器。
用来存放操作数在内存中数据段内的偏移地址,CX(Counter)称为计数器。
在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。
DX(Data)称为数据寄存器。
在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。
(2)地址寄存器:一般用来存放段内的偏移地址.SP(Stack Pointer)称为堆栈指针寄存器。
在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。
BP (Base Pointer)称为基址寄存器。
作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。
SI(Source Index)称为源变址寄存器.SI存放源串在数据段内的偏移地址。
第4章+Intel80X86系列微处器
18
8086外特性——引脚信号及其功能
8086CPU采用40个引脚的双列直插式封装形式; • 采用了分时复用的地址/数据和地址/状态引脚; • 根据不同的工作模式定义不同的引脚功能。
GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD HOLD HLDA WR M/IO DT/R DEN ALE INTA TEST READY RESET GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 SS0 MN/MX RD HOLD HLDA WR IO/M DT/R DEN ALE INTA TEST READY RESET
栈底/栈顶 21000H 栈底 21000H 20FFFH 20FFEH 20FFDH 栈顶 20FFCH 12H 34H 56H 78H 栈底 21000H 20FFFH 栈顶 20FFEH 20FFDH 20FFCH 12H 34H 56H 78H
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11 10 9 8 7 6 1 1 0 OF DF IF TF SF ZF
4 1 AF
2 0 PF
0 0 CF
15
80X86微处理器的寄存器结构 §2.3 80X86微处理器的寄存器结构
第二章 80X86系列微机的体系结构 80X86系列微机的体系结构
寄存器结构 一.8086CPU寄存器结构 寄存器
2010-11-27
(2)段寄存器: 段寄存器:
数据段寄存器 附加段寄存器 堆栈段寄存器 代码段寄存器 DS ES SS CS Data Segment Extra Segment Stack Segment Code Segment
一个程序可以各有多个代码段、 一个程序可以各有多个代码段、数据 堆栈段、和附加段, 当前段各 段、堆栈段、和附加段,但当前段各 只有一个, 只有一个, 即 CS、DS、SS、ES指 、 、 、 指 向的段。 向的段。
2.标志寄存器FLAGS格式及各位意义 2.标志寄存器FLAGS格式及各位意义 标志寄存器FLAGS
【各位意义】 各位意义】 DF:方向标志 :方向标志 标志(Direction Flag)
在字符串操作指令中由DF控制 在字符串操作指令中由 控制 地址变化的方向(递增或递减)。 地址变化的方向(递增或递减)。 DF=1,则地址按递减自动修改; ,则地址按递减自动修改; DF=0,则地址按递增自动修改。 ,则地址按递增自动修改。
•标志寄存器 标志寄存器FLAGS 标志寄存器
2010-11-27
7
80X86微处理器的寄存器结构 §2.3 80X86微处理器的寄存器结构
80X86系列微机的体系结构 第二章 80X86系列微机的体系结构
寄存器结构 一.8086CPU寄存器结构 寄存器
2.标志寄存器FLAGS格式及各位意义 2.标志寄存器FLAGS格式及各位意义 标志寄存器FLAGS
2010-11-27 14
80X86微处理器的寄存器结构 §2.3 80X86微处理器的寄存器结构
第二章 80X86系列微机的体系结构 80X86系列微机的体系结构
寄存器结构 一.8086CPU寄存器结构 寄存器
【例】 执行下面两个数的加法,给出各状态标志位的 执行下面两个数的加法,
值。 0101 0100 0011 1001 + 0100 1001 1010 1010
4
寄存器既可存放数据, 寄存器既可存放数据, 也可存放地址。 也可存放地址。
* 既可作为 位寄存器 既可作为16位寄存器 也可作为8位寄存器使用 位寄存器使用。 也可作为 位寄存器使用。 (例:AH,AL) 8bit , )
AH BX CX CL DX
寄存器只能存放数据。 寄存器只能存放数据。
*通用性强,对任何指令 通用性强, 通用性强 都具有相同的功能
80X86系列微机的体系结构 第二章 80X86系列微机的体系结构
寄存器结构 一.8086CPU寄存器结构 寄存器
2.标志寄存器FLAGS格式及各位意义 2.标志寄存器FLAGS格式及各位意义 标志寄存器FLAGS
【各位意义】 各位意义】
SF:符号标志 :符号标志(Sign Flag) 标志 反映运算结果中最高位的状态。 反映运算结果中最高位的状态。 当本次运算结果最高位为1时 当本次运算结果最高位为 时,SF=1; = ; 否则SF= 。 否则 =0。
•14个16位寄存器 个 位寄存器 位寄存器, 其中: 其中: AX、BX、CX、DX AX、BX、CX、 又可各分成两个 8 位 寄存器。 其它10个只 寄存器。 其它 个只 能作为16位寄存器 能作为 位寄存器 •分为通用寄存器、段 分为通用寄存器、 分为通用寄存器 寄存器、 寄存器、专用寄存器 EU
2010-11-27 11
80X86微处理器的寄存器结构 §2.3 80X86微处理器的寄存器结构
80X86系列微机的体系结构 第二章 80X86系列微机的体系结构
寄存器结构 一.8086CPU寄存器结构 寄存器
2.标志寄存器FLAGS格式及各位意义 2.标志寄存器FLAGS格式及各位意义 标志寄存器FLAGS
【各位意义】 各位意义】
PF:奇偶标志 :奇偶标志(Parity Flag) 反映运算结果中, 标志 反映运算结果中, 1的个数的奇偶情 1的个数的奇偶情 况。 运算结果低八位中含偶数个1时 运算结果低八位中含偶数个 时,PF=1; 低八位中含偶数个 = ; 否则PF= 。 否则 =0。
2010-11-27
【各位意义】 各位意义】
ZF:零标志(Zero Flag) : 标志 反映当前的运算结果是否为0。 反映当前的运算结果是否为 。 当本次运算结果为0时 当本次运算结果为 时,ZF=1;否则 =0。 = ;否则ZF= 。
2010-11-27
12
80X86微处理器的寄存器结构 §2.3 80X86微处理器的寄存器结构
【各位意义】 各位意义】
CF:进位标志(Carry Flag) 反映运算过程中, :进位标志 反映运算过程中, 最高位是否产生 进位/借位 借位。 进位 借位。 当本次运算最高位有进位(加法运算) 当本次运算最高位有进位(加法运算)或 有借位(减法运算) 有借位(减法运算)时CF=1,否则 = ,否则CF =0。 。
3
变址寄存器: 变址寄存器:
堆栈指针寄存器 源变址寄存器
目的变址寄存器
2010-11-27
1. 通用寄存器组 * 4个16位的 数据寄存器 个 位的 (AX,BX,CX,DX) , , , )
寄存器 AX AL
*各寄存器隐含用法 各寄存器隐含用法
操作 字乘/除指令中作为累加器, 字乘 除指令中作为累加器,字 除指令中作为累加器 I/O 指令中作为数据寄存器 字节乘/除指令 字节 I/O, 除指令, 转移, 字节乘 除指令, , 转移, 十进制运算 字节乘/除指令(高八位/余数) 字节乘 除指令(高八位 余数) 除指令 余数 , XLAT 指令ห้องสมุดไป่ตู้作为目的寄存器 作为地址/基址寄存器 作为地址 基址寄存器 串操作时, 串操作时,循环计数器 变量位移或循环操作时用作计 数器 字乘/除指令(高十六位 余数 , 余数) 字乘 除指令(高十六位/余数) 除指令 I/O 间接寻址
2010-11-27 5
注意:段寄存器对 位机还是 位机均为16位 位机还是16位机均为 注意:段寄存器对32位机还是 位机均为 位 是用来保存标志现行可寻址存储段的选择子 (Selector,选择符)值。 ,选择符) 在实地址方式下(以及8086)其值即为段基址 , 在实地址方式下 ( 以及 ) 其值即为段基址, 段的长度固定为64KB; ; 段的长度固定为 在保护方式下, 段基址存放在描述子中, 在保护方式下 , 段基址存放在描述子中 , 由选择 段寄存器的值/LDTR) 对应描述子 。 段的长度在 子 ( 段寄存器的值 ) 对应描述子。 1Byte ~ 整个物理地址空间内任选。 整个物理地址空间内任选。
寄存器组 AH AL BH BL CH CL DH DL SI DI BP SP AX BX CX DX DS ES SS CS IP
BIU
地 址 加 法 器
数据暂存器 指 令 队 列 总线 接口 控制 电路
运 算 器
标志 寄存器
执行部件控制电路
2
2010-11-27
(1)通用寄存器: 通用寄存器:
原理与应用
2010-11-27
1
80X86微处理器的寄存器结构 §2.3 80X86微处理器的寄存器结构
80X86系列微机的体系结构 第二章 80X86系列微机的体系结构
§2.3 80X86微处理器的寄存器结构 微处理器的寄存器结构 一.8086CPU寄存器结构 寄存器结构 寄存器
1.分类: 1.分类: 分类
1001 1101 1110 0011 执行后, 执行后, CF=0 D15位未产生进位 AF=1 D3位产生进位 低八位奇数个 奇数个1 低八位奇数个 PF=0 运算结果非0 运算结果非 ZF=0 SF=1 D15位为 位为1 正与正相加, 正与正相加,结果为负 OF=1
15 14
2010-11-27
2010-11-27 6
(3)专用寄存器: 专用寄存器: •指令指针寄存器 指令指针寄存器IP 指令指针寄存器
存放8086要执行(要取) 存放8086要执行(要取)的下一条指 8086要执行 有效地址。程序员不能 不能修改它的 令的有效地址。程序员不能修改它的 只能由8086CPU中的 中的BIU自动修 值,只能由 中的 自动修 改。
2010-11-27 8
80X86微处理器的寄存器结构 §2.3 80X86微处理器的寄存器结构
80X86系列微机的体系结构 第二章 80X86系列微机的体系结构
寄存器结构 一.8086CPU寄存器结构 寄存器
2.标志寄存器FLAGS格式及各位意义 2.标志寄存器FLAGS格式及各位意义 标志寄存器FLAGS
2010-11-27
16
80X86微处理器的寄存器结构 §2.3 80X86微处理器的寄存器结构
2010-11-27
13
80X86微处理器的寄存器结构 §2.3 80X86微处理器的寄存器结构
第二章 80X86系列微机的体系结构 80X86系列微机的体系结构
寄存器结构 一.8086CPU寄存器结构 寄存器
2.标志寄存器FLAGS格式及各位意义 2.标志寄存器FLAGS格式及各位意义 标志寄存器FLAGS
用来指示微处理器的状态, 用来指示微处理器的状态,并控制其操作 【格式】 格式】
15 14 11 10 9 8 7 6 OF DF IF TF SF ZF 4 AF 2 PF 0 CF
说明: 在8086中 有意义的有9 说明:•在8086中,有意义的有9位,其余7位无意义 其余7