8086/8088 处理器结构

8088为例讲解16位微处理器的功能结构。
8088
8086的简化版本。
两个芯片都是16位微处理器,内部运算器和寄存器都是16位的,同样具有20位地址线;8088的外部数据总线为8,而808616

   8088共有8个通用寄存器1个标志寄存器4个段寄存器1个指令指针寄存器

一、通用寄存器

 ① 数据寄存器

   共AX、BX、CX、DX四个,每个寄存器即可作为16位寄存器,又可拆分为两个8位寄存器,此时记为AH、AL、BH、BL等。

   AX(AH、AL):累加器accumulator

   BX(BH、BL):基址寄存器base

   CX(CH、CL):计数寄存器counter

   DX(DH、DL):数据寄存器data

②指针和变址寄存器

   共BP、SP、SI、DI四个

 BP:基址指针寄存器BasePointer ,默认表示堆栈段基地址;

  SP:堆栈指针寄存器StackPointer,指示栈顶

  SI:源变址寄存器SourceIndex

  DI:目的变址寄存器DestinationIndex


二、标志寄存器      百度百科

标志寄存器(FR)是一个十六位的寄存器,但只利用了其中的9位:六个条件标志和三个控制标志。


当运算结果的最高有效位有进位(加法)或借位(减法)时, 进位标志置1,即CF =1;否则 CF=0。
若算术运算的结果有溢出,则OF=1;否则 OF=0。
若运算结果为全0,则ZF=1,否则ZF=0。

运算结果最高位为1,则SF=1;否则SF=0。
当运算结果最低字节中“1”的个数为零或偶数时,PF=1;否则PF=0(奇校验)。
运算时D3位(低半字节)有进位或借位时,AF=1;否则AF=0。

设置DF=0,串操作后存储器地址自动增量(增址) ;设置DF=1,串操作后存储器地址自动减量(减址) 。
IF用于控制外部可屏蔽中断是否可以被处理器响应:设置IF=1,则允许中断;设置IF=0,则禁止中断。
TF用于控制处理器是否进入单步执行方式:设置TF=0,处理器正常工作;设置TF=1,处理器每执行一条指令就中断一次,中断编号为 1 (称单步中断), TF也被称为单步标志。

三、段寄存器(CS、DS、SS、ES)

        在8088可寻址的1MB内存空间中,可以存在四种分工不同的逻辑段:代码段、数据段、堆栈段和附加段。

        段寄存器即是存放各个逻辑段段首地址的寄存器。

8088有20条地址线,
最大可寻址空间为2 20 =1 MB,
可寻址的地址范围为00000 H~FFFFFH
该地址称 物理地址
硬件用 20 物理地址 来对存储单元进行寻址

由于8088中的地址寄存器都是16位的,用户不能直接使用20位的物理地址,编程时需要使用逻辑地址来寻址存储单元。
逻辑地址由两个16位数构成,其形式为:

  段的起始地址   :段内的偏移地址      

(16位段地址) :(16位偏移量)
物理地址  14700H
逻辑地址  1460H:100H

段地址 说明逻辑段在存储器中的起始位置,为模16地址: xxxx0H, 省略低4位后,可用1个16位数来表示,该地址可被存放在不同的 段寄存器 CS/SS/DS/ES 中。
偏移地址 说明寻址单元距离段首的偏移量,因每段长度不超过64 KB, 所以偏移地址也可用1个16位数来表示。


四、指令指针寄存器(IP)

IP(Instruction Pointer)中存放即将要执行的指令的有效地址,IP具有自增量功能。在每取出一条指令后,IP自增一,指令指针指向下一条指令。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值