- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基础知识X处理器
2013-08 GLUT_C 1.4 80X86处理器的寄存器 1.4.1 8086处理器的寄存器 8086的编程结构 与程序设计有关的寄存器 从功能上,8086分为两部分,即 总线接口单元(bus interface unit,BIU) 执行单元(execution unit,EU) 1.执行单元EU 执行单元EU的功能只是负责执行指令。 执行的指令从指令队列缓冲器中直接得到, 执行指令时若需要从存储器或I/O端口读写操作数时,由EU向BIU发出请求,再由BIU对存储器或I/O端口进行访问。 (1)执行单元EU由下列部件组成 (2)EU的任务 执行指令。 它负责从BIU的指令队列中取指令,并对指令进行译码,根据指令的要求向EU内部各部件发出控制信号,执行指令规定的操作功能。 (3)EU的寄存器 包括通用寄存器:A、B、C、D、 堆栈指针寄存器SP 地址指针寄存器BP、SI、DI 标志寄存器FLAGS 这些寄存器是程序设计中频繁使用的寄存器, ① 4个通用寄存器, 四个16位通用寄存器:AX、BX、CX、DX; 16位字长 这四个通用寄存器每个都可以作为2个独立的8位寄存器使用。 8位寄存器符号:AH、AL、BH、BL、CH、CL、DH、DL ② 4个专用寄存器,即 基地址指针寄存器BP(Base Pointer) 堆栈指针寄存器SP(Stack Pointer) 源变址寄存器SI(Source Index) 目的变址寄存器DI(Destination Index); ③ 标志寄存器 标志寄存器共有16位,其中7位未用,所用的各位含义如下: 状态标志有6个,即SF、ZF、PF、CF、AF和OF ① 符号标志SF(Sign Flag ) 负数SF=1, ② 零标志ZF(Zero Flag) 运算结果=0, ZF=1 ③ 奇偶标志PF(Parity Flag) ——运算结果低8位中1的个数为偶数,PF=1(PE),低8位中1的个数为奇数,PF=0(PO)。 ④ 进位标志CF(Carry Flag) ——最高位产生进位CF=1 ⑤ 辅助进位标志AF(Auxiliary carry Flag) ⑥ 溢出标志OF (Overflow Flag) ——算术运算产生溢出 ——8位运算结果超出-128~+127 ——16位运算结果超出-32768~+32767 控制标志有3个,即 ① 方向标志DF(direction flag) ② 中断允许标志IF(interrupt enable flag) ③ 跟踪标志TF(trap flag)又称为单步标志 80X86的标志寄存器各位可以通过程序进行修改。 由于它特别重要,为防止意外被修改,因此对标志寄存器的修改有特殊的指令和方法。 2. 总线接口部件 依据EU的请求,完成CPU与存储器、CPU与I/O设备之间的信息传送。 ① 读指令——当指令队列出现空字节(8088 有1个空字节,8086 有2个空字节)时,从内存取出后续指令。BIU取指令时,并不影响EU的执行,两者并行工作,大大提高了CPU的执行速度。 ② 读操作数——EU需要从内存或外设端口读取操作数时,根据EU给出的地址从内存或外设端口读取数据供EU使用。 ③ 写操作数——EU的运算结果、数据或控制命令等由BIU送往指定的内存单元或外设端口。 (2)总线接口单元(BIU)的组成 (3)BIU寄存器简介 8086/8088采用了分段结构的内存管理的方法。 将指令代码和数据分别存储在 代码段 数据段 堆栈段 附加数据段 (简城附加段) 中, 每一段最大64KB(216个字节),可用16位的地址寄存器管理。 堆栈段寄存器SS: 用来存放程序当前所使用的堆栈段的段地址。堆栈是在存储器中开辟的一个特定区域; 附加数据段寄存器ES: 用来存放程序当前使用的附加数据段的段地址。附加数据段通常用于存放字符串操作时的目的字符串。 程序员在编写汇编语言源程序时,应该按照上述规定将程序的各个部分放在规定的段内。 每个源程序必须至少有一个代码段, 而数据段、堆栈段和附加数据段则根据程序的需要决定是否设置。 3. 8088CPU与8086CPU的异同 4. 8086的总线周期的概念 计算机中的所有工作,都是在严格的时钟脉冲控制下进行的。 总线周期——完成一次总线操作所需要的时钟周期数。 一般总线操作——一次存储器读或写操作。 典型的8086总线周期序列: 由4个基本时钟周期和若干个等待周期(可以是0个等待周期)组成。 ① T1状态,发地址信
原创力文档


文档评论(0)