8086微处理器的结构.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)控制标志位
①方向标志DF:用来控制数据串操作指令的步进方 向。用STD指令将DF置1后,则串操作过程中地址 会不断递减;用CLD指令将DF置0后,则串操作过 程中地址会不断递增。 ②中断允许标志IF:是控制可屏蔽中断的标志。用 STI指令置1后,CPU可接受可屏蔽中断请求;用 CLI指令置0后,CPU不能响应可屏蔽中断请求。 ③陷阱标志TF:单步陷阱。若置TF为1,则8086进 入单步工作状态。
1.1 执行单元(EU) 执行单元EU主要由算术逻辑运算单元ALU、 标志寄存器FR、通用寄存器组和EU控制 器等四个部件组成。其主要功能是执行 命令。
1.2 总线接口单元(BIU) 总线接口单元BIU主要有地址加法器、段 寄存器、指令指针、指令队列缓冲器以及 总线控制电路等四个部件组成。其主要功 能是负责完成CPU与存储器或I/O设备之间 的数据传送。
3.变址寄存器
常用于存储器变址寻址方式时提供地址 SI是源地址寄存器(Source Index) DI是目的地址寄存器(Destination Index) 在串操作类指令中,SI、DI还有较特殊的用法
现在不必完全理解,以后会详细展开
2.2 段寄存器 段寄存器用来存放段首址,因而可把8086 的1MB存储空间分成若干个逻辑段。 CS:代码段存放程序的代码; DS:数据段存放程序当前使用的数据; SS:堆栈段为入栈、出栈的数据提供存放 空间; ES:附加段通常也是存放数据,典型用法 是存放处理后的结果数据。
例:计算机在进行2345H+3219H运算后,试求状 态标志SF、ZF、PF、CF、AF、OF的值。
0010 0011 0100 0101 0011 0010 0001 1001
0101 0101 0101 1110 SF=0、ZF=0、PF=0、CF=0、AF=0、OF=0 思考:在进行5439H+456AH运算后,试求状态标 志SF、ZF、PF、CF、AF、OF的值。
◆ 溢出和进位的对比
◆ 溢出和进位的应用场合 • 处理器对两个操作数进行运算时,按照无 符号数求得结果,并相应设置进位标志CF; 同时,根据是否超出有符号数的范围设置 溢出标志OF • 应该利用哪个标志,则由程序员来决定。 也就是说,如果将参加运算的操作数认为 是无符号数,就应该关心进位;认为是有 符号数,则要注意是否溢出
2. 8086寄存器结构 8086微处理器内部有14个16位寄存器。
2.1 通用寄存器
通用寄存器组分为:数据寄存器和指针、变址寄存器。 1.数据寄存器包括: AX累加器(Accumulator):用做算术、逻辑运算等 BX基址寄存器(Base Address Register):用来存放 存储单元的地址 CX计数器(Counter):在循环(存放循环次数)和串 处理指令中用作隐含的计数器 DX数据寄存器(Data register):常用来存放双字长 数据的高16位,或存放外设端口地址 这4个寄存器也可作为8个8位的寄存器使用
3AH+7CH=B6H,就是58+124=182, 已经超出-128~+127范围,产生溢出,故OF=1; 补码B6H表达真值是多少呢?
◆ 溢出和进位的区别 • 溢出标志OF和进位标志CF是两个意义 不同的标志 • 进位标志表示无符号数运算结果是否 超出范围,运算结果仍然正确 • 溢出标志表示有符号数运算结果是否 超出范围,运算结果已经不正确
溢出的判断方法
• 方法1:
–பைடு நூலகம்号相减或异号相加——不会溢出。 –同号相加或异号相减——可能溢出:
第一节 8086的内部结构
• 8086的内部结构从功能上分成两个单元 1. 总线接口单元BIU 管理8086与系统总线的接口 负责CPU对存储器和外设进行访问 2. 执行单元EU 负责指令的译码、执行和数据的运算 • 两个单元相互独立,分别完成各自操作,还可 以并行执行,实现指令预取(指令读取和执行 的流水线操作)
2.指针寄存器 • 指针寄存器用于寻址内存堆栈内的数据 –SP为堆栈指针寄存器(Stack Pointer),指示 堆栈( Stack )是主存中一个特殊的 堆栈段栈顶的位置(偏移地址) 区域,采用“先进后出”或“后进先出” – BP为基址指针寄存器(Base Pointer),表示 存取操作方式、而不是随机存取方式。 数据在堆栈段中的基地址 用 8088/8086 形成的微机系统中,堆 • SP和BP寄存器与SS段寄存器联合使用以确定堆栈 栈区域被称为堆栈段 段中的存储单元地址
SF=1、ZF=0、PF=1、CF=0、AF=1、OF=1
• 若算术运算的结果有溢出,则OF=1; 否则 OF=0
3AH + 7CH=B6H,产生溢出:OF=1 AAH + 7CH=(1)26H,没有溢出:OF=0
◆ 什么是溢出
• • • • • 处理器内部以补码表示有符号数 8位表达的整数范围是:-128 ~ +127 16位表达的范围是: -32768 ~ +32767 如果运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确
第2章 8086/8088微处理器的结构 本章主要教学内容
• • • • 8086的内部结构 8086的寄存器结构 8086的存储器组织 8086的工作模式及总线时序
教学目的:掌握 8086 微处理器的编程结构和 存储器的使用。 教学重点: 8086微处理器的编程结构和存储 器的使用 教学难点:存储器的使用
2.3 控制寄存器
1.标志寄存器(FLAG)
15 14 13 12 11 10 4 3 2 1 0 CF OF DF IF TF SF ZF AF PF 9 8 7 6 5
(1)状态标志位 ① 进位标志CF(Carry Flag) ② 辅助进位标志AF(Auxiliary Carry Flag) ③ 溢出标志OF(Overflow Flag) ④ 零标志ZF(Zero Flag) ⑤ 符号标志SF(Sign Flag) ⑥ 奇偶标志PF(Parity Flag)