微机原理课件第2章
微机原理课件第2讲.ppt
通用寄存器
指令执行部件(EU) AX
设置了8个16位通用寄 BX
存器。
CX
作用:存放运算过 DX
程中所需要的操作数地 SP
址、操作数及中间结果。 BP
特点:存取速度比
DI
存储器快得多。
SI
AH AL BH BL CH CL DH DL
16位
数据寄存器 指针寄存器 变址寄存器
各寄存器都有何特定功能?
8086的两种工作方式
最小模式 系统中只有8086一个处理器,所有的控制信号都
是由8086CPU产生(MN/MX=1)。 最大模式
系统中可包含一个以上的处理器,比如包含协处 理器8087。在系统规模比较大的情况下,系统控制信 号不是由8086直接产生,而是通过与8086配套的总线 控制器8288等形成(MN/MX=0)。
课堂练习
要完成下述运算,用什么标志为判别?其值是 什么?
(1)比较两个数是否相等; (2)两数运算后结果是正数还是负数; (3)采用偶校验方式时,判定其是否需要补1。
解:(1)ZF,两数相减若为零,则两数相等,有ZF=1 (2)SF,运算后最高位为1,是负数,此时SF=1 (3)PF,偶校验,当数据中的1为奇数个时需补1,此时
标志寄存器
执行部件EU
总线接口部件BIU
8086CPU与一般CPU区别
一般CPU工作方式
取指
执指
取指
执指 … 取指
执指
串行工作方式 8086CPU工作方式
BIU 取指 EU 执指
取指
取指
…
执指
执指
取指 执指
并行工作方式
8086CPU的寄存器结构
通用寄存器 段寄存器 标志寄存器FR 指令指针寄存器IP
第2章 微机原理PPT课件
20
最小模式下的连接示意图
时钟发 生器
ALE 8088 CPU
• •
地址 锁存
数据 收发
地址总线 数据总线 控制总线
21
最大模式下的连接示意图
时钟发 生器
ALE
8088 CPU
地址 锁存
数据 收发
地址总线 数据总线
总线 控制器
BH/ES7总线高位允许
29
WR*
28
M/IO*
/状态(输出,三态)
27 26
DT/R* DEN*
RD 读信号(输出,低
25
ALE*
24
INTA*
电平有效,三态)
23 22
TEST READY
TEST 测试信号(输入、
21 RESET 低电平有效)
25
GND
1
AD14
2
AD13
3
AD12
4
AD11
等); 分时复用引脚(AD7——AD0 等) ; 引脚的输入和输出分别传送不同的信息(RQ/GT)
24
通用信号
GND
1
AD14
2
AD13
3
AD12
4
AD11
5
AD10
6
AD9
7
AD8
8
AD7
9
AD6
10
AD5
11
AD4
12
AD3
13
AD2
14
AD1
15
AD0
16
NMI
17
INTR
18
CLK
[理学]微机原理 第二章ppt课件
➢ 时钟频率高
➢ 采用超标量流水线构造 ➢ 采用分立的指令Cache和数据Cache构造, 可以无冲突地同时完成指令预取和数据读写 ➢ 采用新型的分页形式 ➢ 固化常用指令,使指令的运行得到进一步 加快 ➢ 内部提供了一个称之为分支目的缓冲器, 从而加快了循环操作的速度
➢ 重新设计的浮点运算部件,速度比80486快 10多倍
每次需要生成物理地址时,一个段存放器 会自动被选择,且能自动左移4位,再与一 个16位的偏移地址相加,产生所需要的20 位物理地址。
8086有4个段存放器CS、DS、SS、ES用来存放段地 址,还有6个16位的存放器〔IP、SI、DI、BX、BP、 SP〕用来存放偏移地址。在寻址时到底应该使用 哪个存放器是BIU根据执行操作的要求来确定的。
其中:第0位为最低位,第7位称为最高位。一 个字节可以表示28个不同值。
〔3〕字:通常,一个字的长度是16位,字中 位的编号从右到左依次是0~15,其中低8 位为低位字节,高8位为高位字节,如下图。 一个字可以表示216个不同值。
➢同时引进了虚拟地址空间的概念。
➢ 80286内部构造中,除了EU执行单元外, 总线接口部件BIU又细分成地址部件AU、指令 部件IU和总线部件BU
➢ 80286微处理器有两种工作形式:实地址 方式和保护虚拟地址方式 3. 80386微处理器
➢ 是一种32位微处理器
➢ 引进了线性地址和分页处理的概念
➢ 采用了流水线构造
➢ 引入高速缓冲存储器
➢ 80386的内部构造是由6个并行操作的功能部件 组成,即总线接口部件、代码预取部件、指令译 码部件、存储器管理部件、指令执行部件与指令 控制部件。
4. 80486微处理器
➢ 80486主要特征是运算速度快,称之为超级32位 CPU
微机原理第2章课件
2.4 微处理器的寄存器组织
IF(Interrupt Enable Flag): 可由指令置1/清0:
外部可屏蔽中断允许标志。
STI;IF=1,CPU处于开中断状态。
CLI;IF=0,CPU处于关中断状态。
1时,CPU能响应外部可屏蔽中断请求; 当IF=
0时,CPU不能响应外部可屏蔽中断请求。
IF对外部非可屏蔽中断请求以及CPU内部的中 断不起作用。
5
2.1 微处理器的外部结构
二、数据总线
用于CPU和存储器或I/O接口之间传送数据,是 双向的。
微处理器数据总线的条数决定CPU和存储器或 I/O设备一次能交换数据的位数,是区分微处理器 是多少位的依据。
8086 CPU 的数据总线是 16 条,我们就说 8086 CPU是16位微处理器。
6
2.4 微处理器的寄存器组织
32
2.4 微处理器的寄存器组织
ZF(Zero Flag)零标志位。 如果运算结果各位都为零,则ZF=1,否则 ZF=0。 SF(Sign Flag)符号标志。 它总是和结果的最高位(字节操作时是D7,字 操作时是D15)相同,因为在补码运算时最高位是 符号位,所以运算结果为负时,SF=1,否则SF=0.
57
2.5 微处理器的存储器和I/O组织
15 段寄存器 0
15 EA
0
16位段基址
16位偏移地址
19
0
16位段基址 0 0 0 0
∑
19
0
20位物理地址
图 2.11 物理地址的形成
58
2.5 微处理器的存储器和I/O组织
例1:某单元的逻辑地址为4B09H:5678H,则该存 储单元的物理地址为:
微机原理课件(西电版)第2章ppt2-4
下面将要介绍的5种寻址方式均为内存寻址 种寻址方式均为内存寻址,内存 种寻址方式均为内存寻址 单元的物理地址由段地址 偏移地址 段地址和偏移地址 段地址 偏移地址相加得到。 5种寻址方式如何取得操作数的偏移地址 种寻址方式如何取得操作数的偏移地址,偏移地 种寻址方式如何取得操作数的偏移地址 址又称为有效地址 有效地址EA。 有效地址 计算公式:EA = 基址 + 变址 + 位移量 计算公式: 位移量: 、 、 位 位移量:0、8、16位 基址寄存器: 、 基址寄存器:BX、BP 变址寄存器: 、 变址寄存器:SI、DI
23
举例:MOV AX,[BX][DI] 举例 或MOV AX,[BX+DI] 设(DS) = 2100H (BX) = 100FH (DI) = 10A5H (230B4H) = 67H (230B5H) = 34H 则上述指令的 有效地址EA = 100FH + 10A5H = 20B4H 物理地址 = 21000H + 20B4H = 230B4H 指令执行后(AX)= 3467H 该寻址方式,一般也应用于数组或表格处理,首 址放基址寄存器中,用变址寄存器访问各元素,由于 两个寄存器都可以修改,所以比寄存器相对寻址更灵 活。
6
8086的寻址方式 的寻址方式
头晕!!!为啥 搞这么多名堂?
立即数寻址 寄存器寻址 直接寻址 寄存器 间接寻址 寄存器相对寻址 基址加变址寻址 相对基址加变址寻址
5种内存寻址
7
立即数寻址 --操作数就在指令中提供。 比如: ;将16进制数80H送入AL MOV AL,80H ; 将 1090H 送 AX , AH 中 为 10H , AL 中 为 90H MOV AX,1090H
微机原理PPT
MOV 错误例 : × MOV AX, [DX] × MOV CL, [AX]
18
[BX] (1) DS: [SI] [DI] (2) SS: [BP] 配套默认,SS可不写 配套默认, 可不写 配套默认, 可不写 配套默认,DS可不写
[BX] [BP]
+
8位 位 16位 位
位移量
(2)配套默认 SS: [BP] ) DS: [BX] (3)位移量为 时,寻址方式? )位移量为0时 寻址方式?
× MOV AX, [DX+6]
21
例: MOV AX, [BX+8] ; DS: [BX+8] →AL MOV AX, 6 [BP] DS: [BX+9] →AH ; 默认段寄存器为 默认段寄存器为SS
00 11
数 据 段
. . .
26
8. 隐含寻址
指令操作数是隐含的,在指令中未指明。 指令操作数是隐含的,在指令中未指明。 例:MUL BL ;
(AL)×(BL)→AX ) )
指令隐含了被乘数AL及乘积 指令隐含了被乘数 及乘积AX 及乘积 类似的指令还有: 类似的指令还有:DIV、CBW、XLAT、 PUSH等 、 、 、 等
9
3. 标号
标号:指令地址的符号表示,或过程名(子程序)。 标号 指令地址的符号表示,或过程名(子程序)。 指令地址的符号表示 定义方式: 定义方式: (1)用“:”定义, 用 定义, 定义 如 CYCLE:MOV AL,[SI] : , (2)用PROC和ENDP定义过程。 定义过程。 用 和 定义过程 标号三属性: 标号三属性: (1)段地址 段地址 (2)偏移地址 偏移地址 (3)类型 类型:NEAR(近),段内使用(可默认),即CS:IP 类型 近 ,段内使用(可默认) : 可变; 中IP可变; 可变 FAR(远),段间使用,即CS:IP全可变 远 ,段间使用, : 全可变 # 变量名与标号均为存储单元的符号地址
第2章 微机原理基础知识PPT教学课件
2020/12/11
6
二进制与八进制、十六进制的相互转换
从二进制转换成十六进制时,从小数点位置开始,整数部分 向左,小数部分向右,每四位二进制数为一组用一位十六进 制的数字来表示,不足四位的用0补足,就是相应十六进制的 表示。
从二进制转换成八进制时,从小数点位置开始,整数部分向 左,小数部分向右,每三位二进制数为一组用一位八进制的 数字来表示,不足三位的用0补足,就是相应八进制的表示。
2020/12/11
3
进位计数制及其相互转换
r进制数转换为十进制数 按照公式展开求和
例1. 分别把二进制数1011.01和十六进制数F0.C用十进制表示
十进制数转换为r进制数 整数部分和小数部分分别进行转换
2020/12/11
4
十进制数转换为r进制数
整数部分的转换步骤:
① 把r写成十进制数; ② 将N除以r,记录商和余数,并用r进制表示余数,这余数便是用r 进制表示的数的最低位数字; ③ 把上次的商进行②中所述除以r取余的运算,用r进制表示余数; 重复这种运算直到商为0,这时的余数即为十进制数N用r进制表示时 的最高位数字。
13
BCD数的运算
同理,9+7的结果也必须用+6修 正,进位是在相加过程中产生的。
1001 +) 0 1 1 1
10000 +) 0 1 1 0
10110
2020/12/11
14
运算举例
(1)A=37以压缩的BCD码表示为: 00110111,
B=28以压缩的BCD码表示为: 00101000,
例2. 把十进制数103用二进制表示 例3. 把十进制数506用十六进制表示
微机原理课件课本 第二章节
微型计算机原理及其应用第二章80x86微处理器合肥工业大学计算机与信息学院2012-02第二章80x86微处理器2.1 微处理器的基本结构2.2 Intel8086微处理器2.3 8086中的程序状态字和堆栈2.4 8086系统的组成2.5 8086系统时钟和总线周期2.6 80386微处理器*2.7 80486微处理器*2.8 Pentium处理器*22.1 微处理器的基本结构1. 算术逻辑单元ALU2. 控制器3. 总线与总线缓冲器4. 寄存器阵列32.1.1 算术逻辑单元ALU数学问题的求解可分解为算术和逻辑运算实现。
¾在算术运算中,若符号数采用补码表示,则减法可用加法实现;乘除法可通过多次的加减和移位实现。
¾在逻辑运算中,只要具备“与”、“或”、“非”、“异或”等功能的部件就能实现各种复杂的逻辑运算。
¾所以,在不考虑数据信息表示方式的情况下,计算机只要具备加法、“与”、“或”、“非”等运算和移位操作功能,就能实现各种算术运算和逻辑运算。
算术逻辑单元(Arithmetic Logic Unit,ALU)¾是一个对二进制数进行算术和逻辑运算的部件。
42.1.1 算术逻辑单元ALUALU的主要功能¾硬件实现基本运算加、减、求补、与、或、非、异或、移位、BCD码运算的十进制调整等。
¾乘除法运算中低档的8位微处理器:乘除法运算是通过软件编程实现的,它由加、减、移位功能组合完成。
高档的8位微处理器和16位以上的微处理器:专用的乘除法指令,其乘除法运算功能也由硬件电路来完成。
¾浮点运算在8位或16位微处理器中,所有数都采用定点数表示,浮点数由两个定点数组成,浮点运算采用软件编程实现。
高性能微处理器中集成了专门的浮点处理器,并有专门的浮点运算指令。
562.1.1 算术逻辑单元ALUALU 的构成与工作原理数据寄存器标志寄存器十进制调整ALU 内部总线内部总线☆核心:加法器(与门+或门电路)加法运算减法运算:补码表示Î加法乘除运算:用移位操作实现数据经内部总线进入DRDR 的待运算数据和FR 的进位标志(CF)输入ALU结果送DB 或DR ,同时将运算结果的状态送FR 保存。
微机原理第2章PPT课件
(3)当指令队列已满,且EU又没有总线访问请求时,BIU便进 入空闲状态。
(4)在执行转移指令、调用指令和返回指令时,由于待执行指 令的顺序发生了变化,则指令队列中已经装入的字节被自动消除, BIU会接着往指令队列装入转向的另一程序段中的指令代码。
BIU与EU两者的工作是不同步的,8086可以在执行指令的同 时,进行取指令代码的操作,即BIU与EU是一种并行工作方式, 改变了以往计算机取指令→译码→执行指令的串行工作方式,大 大提高了工作效率。
三、8086CPU的寄存器
8086CPU的寄存器可分为通用寄存器、指针和变址寄存 器(专用寄存器)、段寄存器、指令指针寄存器及标志寄存器。
1、通用寄存器 8086有4个16位的通用寄存器(AX、BX、CX、DX),可
以存放16位的数,也可分为8个8位的寄存器(AL、AH;BL、 BH;CL、CH;DL、DH)来使用。
表 寄存器主要用途
寄存器 AX AL AH
操作
字乘,字除,字I/O 字节乘,字节除,字节ቤተ መጻሕፍቲ ባይዱ/O,
查表转换,十进制运算 字节乘,字节除
寄存器 CL DX SP
操作
变量移位, 循环移位 字乘,字除, 间接I/O
堆栈操作
BX
查表转换
SI 数据串操作指令
CX
数据串操作指令,循环指令
DI 数据串操作指令
2、段寄存器 段:内存中一段连续的空间,在程序中具有特定的用途。
(1)16位微处理器,数据总线(字长) : 16位。 (2)主频:5MHz~10MHz。 (3) 20位地址总线,寻址能力(寻址范围)为:220 = 1MB。 (4)采用高速运算性能的HMOS工艺制造。 (5)使用单一的+5V电源,40条引脚DIP封装。
微机原理及应用课件第2章
四、内部寄存器
内部寄存器的类型
含14个16位寄存器,按功能可分为三类
8个通用寄存器 4个段寄存器 2个控制寄存器
深入理解:每个寄存器中数据的含义
28
1. 通用寄存器
数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI)
29
数据寄存器
8088/8086含4个16位数据寄存器,它们又可分为8个 8位寄存器,即:
DX:
数据寄存器。在间接寻址的I/O指令中存放I/O端口地址;在 32位乘除法运算时,存放高16位数。
地址指针寄存器
SP:堆栈指针寄存器,其内容为栈顶的偏移地址; BP:基址指针寄存器,常用于在访问内存时存放内存单
元的偏移地址。
BP与BX的区别:
作为通用寄存器,二者均可用于存放数据; 作为基址寄存器,用BX表示所寻找的数据在数据段;用
┇
操作数
35
状态标志位(1)
CF(Carry Flag)
进位标志位。加(减)法运算时,若最高位有进(借)位则CF=1
OF(Overflow Flag)
溢出标志位。当算术运算的结果超出了有符号数的可表达范 围时,OF=l
ZF(Zero Flag)
零标志位。当运算结果为零时ZF=1
SF(Sign Flag)
欲实现对1MB内存空间的正确访问,每个内
存单元在整个内存空间中必须具备20位字长
的惟一地址
物理地址
XXXXXH
12H
00H
内存地址变换:
…
如何将直接产生的16位编码变换
…
为20位物理地址?
┇
内存单元的编址(1)
内存每个单元的地址在逻辑上都由两部分组成:
微机原理第2章
控制标志有3个,即 ① 方向标志DF(direction flag) ② 中断允许标志IF(interrupt enable flag) ③ 跟踪标志TF(trap flag)又称为单步标志
3. 8086的总线周期的概念
指令周期、总线周期及时钟周期
微机系统的工作,必须严格按照一定的时间关系(顺 序)来进行,CPU定时所用的周期有三种,即指令周期、总 线周期和时钟周期。
2. 执行部件
功能:从BIU的指令队列中取出指令代码,经指令译码器译码后执行 指令所规定的全部功能。执行指令所得结果或执行指令所需 的数据,都由EU向BIU发出命令,对存储器或I/O接口进行读 / 写操作。由下列4部分组成: ① 4个通用寄存器,即AX、BX、CX、DX; ② 4个专用寄存器,即 基数指针寄存器BP(base pointer) 堆栈指针寄存器SP(stack pointer) 源变址寄存器SI(source index) 目的变址寄存器DI(destination index); ③ 标志寄存器; ④ 算术逻辑部件ALU(arithmetic logic unit)。
AH BH CH DH AL BL CL DL
累加器 基址寄存器 计数寄存器 数据寄存器
堆栈指针寄存器 基址指针寄存器 源变址寄存器 目的变址寄存器 指令指针寄存器 标志寄存器 代码段寄存器 数据段寄存器 堆栈段寄存器 附加段寄存器
数据寄存器
SP BP SI DI
IP
通Байду номын сангаас寄存器
地址指针和 变址寄存器
总线周期 T2 T3 T4
缓冲
数据
① T1状态,发地址信息,以指出要寻址的存储 单元或外设端口的地址。 ② T2状态,撤销地址,使总线低16位浮置成 高阻状态为传输数据做准备,总线的高4位输 出状态信息,用来表示中断允许状态以及当 前正在使用的段寄存器名等。 ③ T3状态,高4位 提供状态信息,低16位数 据 ④ T3之后,可能插入TW ⑤ 在T4状态,结束。
微机原理课件 ch02
2021/1/10
第10页
通用寄存器
通用寄存器
EBX: 基址寄存器
➢ 在一些寻址模式指令中保存一块需要操作的数据块的基址. ➢ 也可以用作通用寄存器
ECX: 计数寄存器
➢ 在REP和LOOP这类指令中用作计数器,例如:如果CX=10那么LOOP 指令循环10次减少CX直到CX减为零,停止循环
O (溢出):
为加法或减法指令设置.
2021/1/10
第19页
标志位
80286及以上:
IOPL (I/O优先级):
➢ 保存所运行代码的特权等级(在执行任何I/O相关的指令时). 00级是最高特权级.
NT (任务嵌套):
➢ 在保护模式下,当一个系统任务通过一个CALL指令调用另外一 个任务时,该位置1.
第26页
实模式存储器寻址
段和偏移:
句法通常为:段地址:偏移,例如前面例子中的1000H:F000H指示 1F000H.
默认段和偏移寄存器 段寄存器和偏移的隐含组合已为内存参考定义好. 例如,代码段(CS)总是和指令指针一起使用(实模式下是IP,保护 模式下是EIP).
➢ CS:EIP ➢ SS:ESP, SS:EBP ➢ DS:EAX, DS:EBX, DS:ECX, DS:EDX, DS:EDI, DS:ESI, DS:8位数, DS:32
2021/1/10
第15页
专用寄存器
EFLAGS:标志位寄存器
存储位处理器中不同条件的状态. 最右边的五个标志位以及溢出位在许多算术和逻辑运
算指令执行之后发生改变. 数据传送和程序控制指令 不会修改这些标志位.
2021/1/10
第16页
标志位
C (进位):
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
与DS配合使用 用SI存放源操作数的偏移地址 用DI存放目标操作数的偏移地址
13
5. 指令指针寄存器
IP寄存器 —— 指令指针寄存器,存放下一次要取
出执行的指令的偏移地址 •与CS结合使用构成真正的指令物理地址 (CS*16+IP) •用户不能直接更新使用,只能由系统自动更新
14
部分寄存器一般用途示意
重叠
但要求:段的分配只能从地址低4位均为0的内存单 元开始
31
存储器分段图示
最大64KB,最小16B
32
存储器分段例
33
段首地址、段基地址和偏移地址
60000H 60002H 00H 12H
段首地址(20位)
××× ••• ×××
偏移地址 =0002H
0000 一定为0
段基地址(16位)
每个段都从低4位为0的存储单元开始 段首地址的高16位称为段基地址 偏移地址为相对于段首地址的偏移量
8086/8088提供20条地址总线,可寻址的存储空间为
220=1MB
每个存储单元的地址均为20位(但一般用5个十六进制 数书写)
地址范围为:00000H--0FFFFFH
21
字节数据与字数据的存储
存储在一个存储单元中的数据称为字节数据
字节数据的存储:按顺序存放
其存储单元的地址,叫做该字节数据的存储地址
17
标志寄存器置位问题
状态标志位由ALU运算的结果置位
控制标志位需要在程序中用专门的指令置位
18
运算对标志位的影响的例
19
第2主题问题 8086/8088的存储器组织
主要内容:
存储器组织 8086存储器的分体结构
存储器的分段和物理地址的形成
20
存储器的组织
在存储器中,以字节为单位存取数据 存储地址即为存储单元编号,称为地址
26
8086存储器的分体结构
8086CPU是按16位结构设计,可以通过两个存储体 直接读/写一个字数据;也可以只从一个存储体中读 /写一个8位的字节数据
SEL为奇偶地址存储体的“片选”信号
奇偶地址存储体的选择由BHE信号和A0决定
所以读存储器的分段和物理地址的形成
主要内容: 8086/8088CPU的内部结构
8086/8088CPU的寄存器结构
3
8086/8088CPU的内部结构
8086/8088 CPU的内部结构基本相同
均由两个独立的工作部件组成 一个称为执行部件(EU) 一个称为总线接口部件 (BIU)
4
8086/8088CPU的内部结构
指令队列的设置使指令的取 8088CPU外部数据 寄存器是中央处理器内的组成部份 总线为8位、指令 寄存器是有限存贮容量的高速存 出与执行并行进行,以提 队列为4字节 取指令、指令译码、产生 贮部件,它们可用来暂存指令、 高了程序的运行速度 并传送操作信号 地址加法器的作用是根据 数据和地址。 输出输入控制电路实现总指令:确定运算与操作 段寄存器存放的段基地 线控制,决定读或写、数据:运算或读写操作的对象 址与EU送出的16为偏移 地址:标记和确定内存空间中具体 对内存或对I/O接口 地址计算得到20位的实 的存储位置
10
2. 段寄存器
4个16位段寄存器,用于存放各逻辑段的段基地址;不 可互换的使用 CS(Code Segment ):代码段寄存器 用于存放当前执行程序所在段的段基地址 DS(Data Segment ):数据段寄存器 用于存放当前使用数据所在段的段基地址 ES(Extra Segment ):附加段寄存器 用于存放当前附加数据段的段基地址 SS(Stack Segment ):堆栈段寄存器 用于存放当前堆栈段的段基地址
6个状态标志(也称为条件码)----寄存ALU运算结果的 状态信息
3个控制标志----寄存CPU的工作状态信息
16
标志寄存器图示
符号标志SF用来反映运算 在运算过程中,如果发生低 中断允许标志IF位用来决定CPU是否响 奇偶标志 PF 用于标志运算 进位标志 CF主要用来反映运 结果的符号位,它与运 溢出标志位 OF 用于反映有符号数加减 方向标志 DF 位用来决定在“数据串操 4位向高4位的进位或借位 应 CPU 外部的可屏蔽中断发出的中 结果的低 8位中“1”的个 算是否产生进位或借位。 算结果的最高位相同。 运算所得结果是否溢出。如果运算 作”指令执行时的步进方向; DF=1 时,辅助进位标志 AF 的 断请求。但不管该标志为何值, 零标志ZF用来反映运算 数的奇偶性。如果“ 1” 状态控制标志 TF 位用来 如果运算结果的最高位产 对于有符号数就反映运 结果超过当前运算位数所能表示的 表示由高字节向低字节方向进行 — 值将被置为 1 CPU 都必须响应 CPU 外部的不可屏 结果是否为 0的个数为偶数,则 。如果运 PF的 控制 CPU是正常 (TF=0) 生了一个进位或借位,此 算结果的正负号。运算 范围,则称为溢出, OF 的值被置为 称为递减方式 蔽中断请求,以及 CPU 内部产生的 算结果为 0 ,则其值为 1 值为 1 执行,还是单步 (TF=1) 时其值为 1 结果为正数时, SF的值 1,否则, OF的值被清为 0 中断请求; IF=1表示开中断 执行 为0
8
8086/8088CPU的内部(编程用)寄存器
包括14个16位的寄存器
4个数据寄存器(AX,BX,CX,DX)
4个段寄存器(CS,DS,ES,SS) 2个地址指针寄存器(BP,SP) 2个变址寄存器(SI,DI) 2个控制寄存器(IP,FLAGS)
9
1. 数据寄存器
含4个16位寄存器,也可分别作为 2个8位的字节寄存器 使用;常用来存放参与运算的操作数或运算结果 • AX(Accumulator)(AH、AL)——累加寄存器 常用于数据运算或与外设交换数据 • BX(Base)(BH、BL)——基址寄存器 在间接寻址中用于存放内存的基地址 • CX(Count)(CH、CL)—— 计数寄存器 在循环、移位等操作中用于计数 • DX(Data)(DH、DL)—— 数据寄存器 常用于数据的传送或配合AX进行双字节运算
段基地址CS 段基地址SS 段基地址DS或ES
某数据地址SI 栈内某数据地址BP 某指令地址IP 某数据地址DI 堆栈顶地址SP 代码段 堆栈段 数据段或附加数据段
15
6. 标志寄存器
FR(FLAGS) —— 状态标志寄存器
8086/8088CPU设有一个16位的状态标志寄存器;使用
其中的9位作为状态标志位和控制标志位
但,入场卷上的编号只能是两位数
将全部座位先分为两个区域;各区域的编号用两 位数编制(如10、20) 各区域可容纳100人,编号为00---99 你的实际座位号应为:区域号*10+座位号
30
解决的办法
存储器的逻辑分段原则
逻辑段的划分原则上不受限制
各段之间可连续、可分开、可部分重叠、还可完全
需要存储在相邻两个存储单元中的数据称为一个“字”, 叫做字数据
字数据的存储:低字节存于低地址单元,高字节存于
高地址单元
存放该字数据低字节的存储单元的地址,叫做该字数 据的存储地址
22
存储器中数据的存储方式
存储单元地址 3CH ……
00A22H 00B06H 00B07H 03A03H 03A04H
(即所使用的总线周期数不同)
24
8086存储器的分体结构
在8086系统中,将其可寻址的1 MB存储器分为
两个存储体;即奇地址存储体和偶地址存储体, 各为512 KB
25
8086存储器的分体结构
◆奇地址存储体与系统高8位数据总线相连,偶地址存储体 与系统低8位数据总线相连 奇高偶低 ◆读/写偶地址体时,数据从低8位数据总线上传送 ◆读/写奇地址体时,数据从高8位数据总线上传送 特别提示:关注BHE、A0和SEL信号
11
3. 地址指针寄存器
常用于存放段内寻址时的偏移地址
SP:堆栈指针寄存器,存放当前堆栈段中
栈顶的偏移地址
BP:基址指针寄存器,存放位于堆栈中的 某个存储单元的偏移地址
在寻址操作时一般均与SS搭配使用
12
4. 变址寄存器
SI:源变址寄存器 DI:目标变址寄存器 变址寄存器常用于指令的间接寻址或相对寻址;存放 当前数据段中某一个存储单元的偏移地址
7
指令队列缓冲器
指令队列缓冲器
8086 的指令队列为6个字节 8088 的指令队列为4个字节
指令队列缓冲器的指令存放状态
实现CPU的流水 线处理操作
顺序指令执行:指令队列存放紧接在执行指令后面的
那一条指令
执行转移指令:立即清除指令队列中的内容,从新的 地址取入指令,并立即送往执行单元,然后再从新单 元开始重新填满队列
28
存储器的逻辑分段
CPU对存储器实行“分段”管理
即将存储空间分为若干逻辑段,每个逻辑段长度≤64 KB; 16位的总线足可以管理和标记它
某存储单元的实际地址用段的基本地址(段基址)加该存储 单元在该段中的相对位置(偏移地址)共同表示
29
比喻
假设
教室内有200个座位,都编有3位数的号码 必须按号入座
34
地址存储与寄存器
BX基址寄存器
基址或变址寄存器,
存储相应的偏移地址
BP基址指针寄存器 SP堆栈指针寄存器 IP指令指针寄存器 DI目的变址寄存器 SI源变址寄存器 CS代码段段基址寄存器 DS数据段段基址寄存器 ES附加段段基址寄存器