微处理器及其结构(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OF DF IF TF SF ZF
AF
PF
CF
方向标志
控 制
中断标志
标 跟踪标志
志
Trace Flag
进位标志
奇偶标志
状
半进位标志 态
零标志
标 志
符号标志
溢出标志
六个状态标志的功能简述如下:
(1) 进位标志CF(Carry Flag): 当执行算术运算指令时,其结果的最高位有 进位或借位时将CF置1;否则将CF置0。
16位
16位
2.2.1 8086/8088内部结构
一、通用寄存器
➢数据寄存器(AX,BX,CX,DX) ➢地址指针寄存器(SP,BP) ➢变址寄存器(SI,DI)
数据寄源自文库器
➢用途:存放临时数据和存放运算操作数。 ➢每个均为16位,但又可分为2个8位寄存器,即:
AX AH,AL BX BH,BL CX CH,CL DX DH,DL
➢DI:目标变址寄存器 它经常用来存放目的数据区的偏移地址,所谓变
址寄存器,是指它存放的地址可以按照要求自动增 加/减少。
二、段寄存器
用于存放逻辑段的段基地址(简称段地址)。
➢CS:代码段寄存器。代码段存放指令代码
➢DS:数据段寄存器 ➢ES:附加段寄存器
这两个段存放操作数
➢SS:堆栈段寄存器:指示堆栈区域的位置
用BX作为指针所访问的数据在数据段(DS段); 用BP作为指针所访问的数据在堆栈段(SS段)。
注:间接寻址时 仅BX、BP、SI、DI可用于存储器寻址; 仅DX可用于I/O寻址。
变址寄存器
➢SI:源变址寄存器 它经常用来存放源数据区的偏移地址,所谓变址
寄存器,是指它存放的地址可以按照要求自动增加/ 减少。
2.4.1 8086内部寄存器结构
含14个16位寄存器,按功能可分为三类:
➢通用寄存器,8个 ➢段寄存器,4个 ➢控制寄存器,2个
8086寄存器概貌
通用寄存器
AX AH AL BX BH BL CX CH CL DX DH DL
SP BP SI DI
控制寄存器
IP FLAGS
段寄存器
CS DS ES SS
控制标志:对微处理器的运行起特定的控制作用,如以单 步方式运行还是以连续方式运行,在程序执行过程中是否允 许响应外部中断请求等。
15
FLAGS
11 10 9 8 7 6
4
2
0
OD I T S Z
A
P
C
8086/8088标志寄存器的格式及各位的功能
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
(2) 奇偶标志PF(Parity Flag): 该标志位反映操作结果低8位中“1”的个数 情况,若为偶数个“1”,则将PF置“1”;若为奇数个“1”,则将PF置“0”。
它是早期Intel微处理器在数据通信环境中校验数据的一种手段。今天,奇 偶校验通常由数据存储和通信设备完成,而不是由微处理器完成。所以,这 个标志位在现代程序设计中很少使用。
➢DX:数据寄存器
除了存放数据,它有时存放32位数据的高16位,有 时存放端口地址。
地址指针寄存器
➢SP:堆栈指针寄存器 这是一个专用的寄存器,存放堆栈栈顶的偏移地
址。 ➢BP:基址指针寄存器
它经常用来存放堆栈中数据的偏移地址。
BX与BP在应用上的区别
➢作为通用寄存器,二者均可用于存放数据; ➢作为基址寄存器,默认情况下:
CS
DS/ES
SS
代码段
数据段
堆栈段
三、控制寄存器
➢IP:指令指针寄存器 其内容为下一条要执行的指令的偏移地址。
➢FLAGS:标志寄存器 存放指令执行结果的特征。
6个状态标志位(CF,SF,AF,PF,OF,ZF) 3个控制标志位(IF,TF,DF) 状态标志:反映微处理器的工作状态,如执行加法运算时 是否产生进位,执行减法运算时是否产生借位,运算结果是 否为零等;
(3) 辅助进位标志AF(Auxiliary carry Flag):辅助进位标志也称“半进位” 标志。AF=1,表示本次运算的低4位中的最高位有进位(加法运算时)或有借 位(减法运算时)。
AF一般用于BCD运算中是否进行十进制调整的依据。十进制调整指令DAA 和DAS测试这个标志位。
(4) 零标志ZF(Zero Flag):反映运算结果是否为零。若结果为零,则ZF=1; 若结果不为零,则ZF=0。
2.4 80x86~Pentium系列微处理器的 程序设计模型
程序设计模型:微处理器内部可见寄存器结构。
➢它是程序设计中唯一可见的CPU部件。 ➢它是系统程序设计员的操作对象。
程序可见寄存器:在应用程序设计时可以直接访问的寄
存器。
2.4 80x86~Pentium系列微处理器的 程序设计模型
• 2.4.1 8086内部寄存器结构 • 2.4.2 80386内部寄存器结构
六个状态标志的功能简述如下:
(5) 符号标志SF(Sign Flag):反映带符号数(以二进制补码表示)运算结果符 号位的情况。
若结果为负数,则SF=1; 若结果为正数,则SF=0。 SF的取值总是与运算结果的最高位(字节操作为D7,字操作为D15,双字 操作为D31)取值一致。 (6) 溢出标志OF(Overflow Flag):反映有符号数运算结果是否发生溢出。 若发生溢出,则OF=1;否则,OF=0。 所谓溢出,是指运算结果超出了计算装置所能表示的数值范围。例如,对 于字节运算,数值表示范围为-128~+127;对于字运算,数值表示范围为32768~+32767。 若超过上述范围,则发生了溢出。 溢出是一种差错,系统应做相应的处理。 注意:“溢出”与“进位”是两种不同的概念。“溢出”标志实际上是针 对有符号数运算而言,对于无符号数运算,不考虑溢出标志。
例:2个数相加后,分析各标志位的值
0110001101001101
+0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1
1001010101100110
运算结果最高位为1
∴SF=1;
运算结果本身≠0
例如:若(AX)=1234H, 则(AH)=12H, (AL)= 34H
数据寄存器
➢AX:累加器
使用这个寄存器的指令比较短,有些指令规定必须 使用它。
➢BX:基址寄存器
除了存放数据,它经常用来存放一片内存的首地址 ----基址。
➢CX:计数寄存器
除了存放数据,它经常用来存放重复操作的次数---计数器。