- 1、本文档共109页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第章微處理器及其结构3
2.4 80x86~Pentium系列微处理器的程序设计模型
程序设计模型:微处理器内部可见寄存器结构。
它是程序设计中唯一可见的CPU部件。
它是系统程序设计员的操作对象。
程序可见寄存器:在应用程序设计时可以直接访问的寄存器。
2.4 80x86~Pentium系列微处理器的程序设计模型
2.4.1 8086内部寄存器结构
2.4.2 80386内部寄存器结构
2.4.1 8086内部寄存器结构
含14个16位寄存器,按功能可分为三类:
通用寄存器,8个
段寄存器,4个
控制寄存器,2个
8086寄存器概貌
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
例如:若(AX)=1234H, 则(AH)=12H, (AL)=34H
数据寄存器
AX:累加器
使用这个寄存器的指令比较短,有些指令规定必须使用它。
BX:基址寄存器
除了存放数据,它经常用来存放一片内存的首地址----基址。
CX:计数寄存器
除了存放数据,它经常用来存放重复操作的次数----计数器。
DX:数据寄存器
除了存放数据,它有时存放32位数据的高16位,有时存放端口地址。
地址指针寄存器
SP:堆栈指针寄存器
这是一个专用的寄存器,存放堆栈栈顶的偏移地址。
BP:基址指针寄存器
它经常用来存放堆栈中数据的偏移地址。
BX与BP在应用上的区别
作为通用寄存器,二者均可用于存放数据;
作为基址寄存器,默认情况下:
用BX作为指针所访问的数据在数据段(DS段);
用BP作为指针所访问的数据在堆栈段(SS段)。
注:间接寻址时
仅BX、BP、SI、DI可用于存储器寻址;
仅DX可用于I/O寻址。
变址寄存器
SI:源变址寄存器
它经常用来存放源数据区的偏移地址,所谓变址寄存器,是指它存放的地址可以按照要求自动增加/减少。
DI:目标变址寄存器
它经常用来存放目的数据区的偏移地址,所谓变址寄存器,是指它存放的地址可以按照要求自动增加/减少。
二、段寄存器
用于存放逻辑段的段基地址(简称段地址)。
CS:代码段寄存器。代码段存放指令代码
DS:数据段寄存器
ES:附加段寄存器
SS:堆栈段寄存器:指示堆栈区域的位置
这两个段存放操作数
三、控制寄存器
IP:指令指针寄存器
其内容为下一条要执行的指令的偏移地址。
FLAGS:标志寄存器
存放指令执行结果的特征。
6个状态标志位(CF,SF,AF,PF,OF,ZF)
3个控制标志位(IF,TF,DF)
状态标志:反映微处理器的工作状态,如执行加法运算时是否产生进位,执行减法运算时是否产生借位,运算结果是否为零等;
控制标志:对微处理器的运行起特定的控制作用,如以单步方式运行还是以连续方式运行,在程序执行过程中是否允许响应外部中断请求等。
8086/8088标志寄存器的格式及各位的功能
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
OF
DF
IF
TF
SF
ZF
AF
PF
CF
状态标志
六个状态标志的功能简述如下:
(1) 进位标志CF(Carry Flag): 当执行算术运算指令时,其结果的最高位有进位或借位时将CF置1;否则将CF置0。
(2) 奇偶标志PF(Parity Flag): 该标志位反映操作结果低8位中“1”的个数情况,若为偶数个“1”,则将PF置“1”;若为奇数个“1”,则将PF置“0”。
它是早期Intel微处理器在数据通信环境中校验数据的一种手段。今天,奇偶校验通常由数据存储和通信设备完成,而不是由微处理器完成。所以,这个标志位在现代程序设计中很少使用。
(3) 辅助进位标志AF(Auxiliary carry Flag):辅助进位标志也称“半进位”标志。AF=1,表示本次运算的低4位中的最高位有进位(加法运算时)或有借位(减法运算时)。
AF一般用于BCD运算中是否进行十进制调整的依据。十进制调整指令DAA和DAS测试这个标志位。
(4) 零标志ZF(Zero Flag):反映运算结果是否为零。若结果为零,则ZF=1;若结果不为零,则ZF=0。
六个状态标志的功能简述如下:
(5) 符号标志SF(Sign Flag):反映带符号数(以二进制补码表示)
文档评论(0)