32位微机原理-----------处理器

微处理器的程序设计模型

程序可见(program visible)寄存器  8086及以上

编程人员进行程序设计时,能够使用的寄存器。

 

程序不可见寄存器(program invisible80286及以上

在应用程序设计中不能直接访问,但在系统程序设计中可以间接引用或通过特权指令访问     

 分别是通用寄存器,专用寄存器(标志寄存器,指令指针寄存器,段寄存器)

通用寄存器

Pentium 4Core2工作在扩展64位模式使用

通用数据寄存器

可按64位、32位、16位或8位寄存器寻址

EAX(accumulator) 累加器        EBX(base index)基址寄存器

ECX(counter)计数器        EDX(data )数据寄存器

EBP(base pointer)基址指针      ESP(stack pointer)堆栈指针

ESI(source index)源变址寄存器  EDI(destination index)目标变址寄存器

专用寄存器

 64位                                   32位               16位

RIP/EIP (Instruction pointer) 指令指针寄存器

与代码段寄存器配合,寻址CPU要取出的下一条指令字节.

实模式 — IP (16)

保护模式 — EIP (32) 80386 及以上

64位模式 — RIP (64)

 

RFLAGS/EFLAGS 标志寄存器

指示微处理器的状态并控制它的操作

FLAGS(16-bits)  8086 80286

EFLAGS (32-bits) 80386 及以上

RFLAGS (64-bits)

实地址模式下,定义了9个标志位,

6个状态标志位,3个控制标志位

状态标志位反映了微处理器的工作状态,算术运算和逻辑运算指令的执行会改变这些标志位的状态;

控制标志位对微处理器的某些特定操作起到控制作用。

 

状态标志

进位标志CFcarry flag

反映加法运算的进位情况或减法运算的借位情况。

当加法运算的最高位有进位或减法运算的最高位有借位,CF1;反之,CF0

辅助进位标志AFauxiliary carry flag

“半进位”标志

反映加减法运算中,第3位与第4位之间的进位或借位情况。如果有进位或借位,AF1,否则清0

BCD码运算中,AF标志位用作十进制调整的依据。

零标志ZFzero flag

反映运算结果是否为零。

如结果为0,则ZF1;否则,ZF0

 

符号标志SFsignal flag

记录运算结果的符号。

SF1,运算结果的最高位(即符号位)为1SF=0,则符号位为0

 

奇偶标志PFparity flag

反映运算结果1的个数是偶数还是奇数。

1的个数为偶数,则PF1;否则,PF0

 

溢出标志OFoverflow flag

反映有符号数运算结果的溢出情况。

如运算结果溢出,则OF1;否则,OF0

溢出是指运算结果超出了有符号数的表示范围。

通常采用双高位判别法来判断运算结果是否溢出,即OF为最高位进位与次高位进位的异或。

最高两位同时有进位/借位或同时无进/借位,OF0;只有一位有进/借位,OF1

 

控制标志

TF (trap)  单步操作标志,或陷阱标志

为程序调试的方便设置的,用于控制单步中断

TF=1,单步工作方式

TF=0,正常执行程序。

 

IF (interrupt) 中断标志

用于控制可屏蔽的硬件中断INTR

IF=1,允许CPU响应可屏蔽中断请求

IF=0,禁止CPU响应可屏蔽中断请求

不影响非屏蔽中断请求(NMI)及内部的中断请求

 

DF (direction) 方向标志

用于控制串操作指令中地址变化的方向

DF=1,串操作指令中的地址寄存器的内容会自动递减,操作由高地址向低地址方向进行

DF=0,则为地址递增方式,串操作由低地址向高地址方向进行。

 

段寄存器 

保存段基址,与其他寄存器或数据配合,形成存储器地址

 

CS (code) 代码段寄存器

存放当前代码段的段基址。代码段是用于存放指令代码的存储区域,当前代码段是指CPU即时访问的代码段。

DS (data)  数据段寄存器

存放当前数据段的段基址。程序执行需要的数据经常存放于数据段中。

ES (extra) 附加段寄存器

存放当前附加段的段基址。附加段是一个附加的数据段,通常也用来存放数据,典型用法是在串操作指令中用来存放处理以后的数据。

SS (stack)  堆栈段寄存器

存放程序当前堆栈段的段基址。堆栈操作所处理的数据均存放于当前堆栈段中,由堆栈段寄存器SS和堆栈指针SP共同确定堆栈操作将要访问的存储单元地址。

段寄存器FSGS

仅存在于80386及更高型号的微处理器中,对应两个附加的存储段,通常也用来存放数据。.

微处理器的工作模式

8086/8088微处理器只有一种工作模式,即实地址模式。

80286可以工作在实地址模式和保护模式两种工作模式下,

80386以上的32位微处理器具有三种工作模式:实地址模式、保护模式和虚拟8086模式。

 

实地址模式(real-address mode

也称为实模式

32位微处理器的工作方式与8086基本相同,但允许访问32位寄存器组

采用分段寻址方式,寻址1MB的存储器地址空间,不能管理和使用扩展存储器

寻址机制、存储器访问范围和中断控制等都与8086CPU相同

DOS操作系统要求微处理器工作在实地址模式,计算机系统的初始化和引导程序也必须在实地址模式下运行

 

保护模式(protect mode

也称为保护的虚地址模式,支持多任务

保护模式提供了一系列的保护机制,为多任务操作系统的设计提供了有力的支持。

Windows操作系统在保护模式下运行。

支持虚拟存储器

在保护模式下,CPU32根地址线均有效,可以访问4GB的物理存储空间,以及64TB的虚拟存储空间

 

虚拟8086模式(virtual 8086 mode

又称V86模式

V86模式下,CPU运行在保护机制中,但存储器寻址与8086相同,是一种既有保护功能又能执行8086代码的工作模式。

实地址模式下的存储器分段寻址

为什么要分段寻址

实模式下

20位地址总线访问存储器

可寻址的存储空间为220=1MB

地址范围是00000H~FFFFFH

微处理器使用16位寄存器,指令给出16位地址信息

存储器分段技术

 

1M字节的存储单元划分为若干个逻辑段,每个逻辑段的最大容量为64KB

逻辑段的起始:地址低4位为全0的存储单元,该存储单元的地址称为段首地址,通常为xxxx0H,低4位为0,高16位为有效数字。

段基址(segment base address:段首地址的高16位,通常保存在16位段寄存器

偏移地址(offset address):逻辑段中任意一个存储单元的地址相对于段首地址的字节距离(即偏移量)

可用16位二进制数表示,范围是0000H~FFFFH

 

存储器的分段结构

 

 

 存储器的分段逻辑结构

 

物理地址:存储器中存放的实际地址

逻辑地址:编程时使用的地址,由段基址和段内偏移地址组成

习惯上写成“段基址:偏移地址”。

例如,1000H0050H

 

物理地址 = 段基址×10H + 偏移地址 

 

注意:每个存储单元都有一个唯一的物理地址,但根据逻辑段划分的不同,它可能有多个不同的逻辑地址

 

 

INTEL8086微处理器 

执行单元EU(Execute Unit) 

负责指令的执行,从BIU的指令流队列中取指令,分析指令和执行指令。

组成部分:

1)算术逻辑单元(ALU

216位标志寄存器FLAGS

3)寄存器阵列

通用寄存器AXBXCXDX

专用寄存器:指针寄存器SPBP和变址寄存器SIDI

4)数据暂存器

5EU控制电路是控制、定时状态逻辑电路,根据指令译码形成各种定时控制信号,对EU的各个部件实现特定的定时操作。

总线接口单元BIU(Bus Interface Unit)

 

负责CPU与存储器或CPUI/O设备之间传送数据。

组成部分:

416位段寄存器、116位指令指针IP1个指令流队列、20位地址加法器和总线控制电路

 

1)长度为6个字节的指令流队列

BIUEU组成取指令和执行指令的两级流水,通过并行操作,提高了系统的工作速度。

2)地址加法器用来产生20位地址

寄存器阵列

 

EU单元

416位通用寄存器:累加器AX,基址寄存器BX,计数器CX,数据寄存器DX

可作为16位寄存器,也可作为8位寄存器使用。

8位: AHALBHBLCHCLDHDL

216位指针寄存器:堆栈指针SP和基址指针BP

2个变址寄存器:

     源变址寄存器SI和目标变址寄存器DI

16位状态标志寄存器FLAGS

定义了9个标志位

6位状态标志:

进位标志CF、奇偶标志PF、辅助进位标志AF、零标志ZF、符号标志SF、溢出标志OF

3位控制标志:

中断允许标志IF、方向标志DF和单步操作标志TF

 

BIU单元

16位指令指针寄存器IP

用于存放下一条将要取出的指令字节在当前代码段内的偏移地址。IP寄存器不能由程序员直接访问。

 

4个段寄存器CSDSSSES

分别用来存放当前代码段、当前数据段、当前堆栈段以及当前附加段的段基址。

最小工作模式下引脚信号

工作模式下引脚信号

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值