80x86微处理器

80x86微处理器

  • 80x86CPU编程结构
    • 执行单元EU Execution Unit
    • 总线接口单元BIU Bus Interface Unit
    • 堆栈以及操作方法
      • 基本说明
      • 操作方法
        • 设置堆栈
  • 80x86CPU工作模式和引脚功能
    • 基本概念
      • 80x86总线周期
    • 工作模式
    • CPU引脚功能
      • 数据和地址总线
      • 控制总线
    • 最小模式
    • 最大模式
  • 80x86CPU的操作和时序
  • 80x86系统的存储器组织
    • 存储器编址
      • 存储器组织基本规则
      • 80x86存储系统构建

80x86CPU编程结构

CPU分为两部分,执行单元EU Execution Unit总线接口单元BIU Bus Interface Unit
80x86微处理器_第1张图片

执行单元EU Execution Unit

任务:1. 8总线指令译码产生控制信号(只有走ALU才可能送标志寄存器)
2. 数据总线完成EU和BIU的通信通用寄存器名、全称、隐含用法对照表:

通用寄存器名 英文全称 隐含用法
AX accumulator 字×÷用作累加器,I/O中用作数据寄存器,LAHF指令中用作dst,BCD/ASCII数据运算或XALT指令中用作累加器
BX base pointer 间接寻址时用作地址寄存器/基址寄存器,XALT指令中用作基址寄存器
CX counter 串 /循环操作时的循环次数计数器,CL还在移位时用于计数
DX data register 字×÷用作辅助寄存器,I/O指令间接寻址用作端口寄存器
SP stack pointer 堆栈使用
BP base pointer
SI source index 间接寻址用作地址寄存器和变址寄存器,串操作时用作源编址寄存器
DI destination index 间接寻址用作地址寄存器和变址寄存器,串操作时用作目的编址寄存器

标志寄存器位及功能表:

标志寄存器位 英文全称 置1条件/置1后效果
CF carry flag 有进位/借位或移位移出的数为1
PF parity flag 第八位有偶数个1
AF auxiliary carry flag 高/低四位之间产生进/借位
ZF zero flag dst == 00H
SF sign flag dst & 80H == 80H
OF overflow flag 结果超过补码表示范围
TF trace flag 调试用,置1后产生单步中断
IF interrupt allow flag CPU可以响应可屏蔽中断
DF direction flag 串操作指令使得变址寄存器(SI/DI)递减

总线接口单元BIU Bus Interface Unit

任务:

  1. 取指令
  2. 存取数据段寄存器名及全称对照表:
段寄存器名 英文全称
CS code segment
DS data segment
ES extra segment
SS stack segment
IP instructor pointer

段的一些注意点:
4. 段基址必须是一个小节的首地址(****0H)
5. 任一时刻程序只能访问四个段,放在四个段寄存器里面逻辑地址来源:

操作类型 逻辑地址
取指令 CS:IP
堆栈操作 SS:SP
取源串 DS/CS/SS/ES:SI
存目的串 ES:DI
基址寻址 SS/CS/DS/ES:EA
存取一般变量 DS/CS/SS/ES:EA

有关EA的说明请参见我的个人主页其它博客。

堆栈以及操作方法

基本说明

堆栈分为专用堆栈存储器和软件堆栈(80x86用这个,划出一块内存作为堆栈)
栈底:它是固定的,是堆栈存储区最大地址单元;
栈顶:它是浮动的,SP指向它,(SP)=0表示栈满。
改变了SS必须重新设置SP
低8位放在低址,高8位放在高址

操作方法

设置堆栈

为了给SS/SP赋值例如

stack1 segment para stack ;para stack means it is a stack segment  
	db 100 dup(0) 
stack1 ends 

push入栈,pushf标志寄存器进栈
先是 SP <= (SP)-2再赋值
pop/popf正好相反。

80x86CPU工作模式和引脚功能

基本概念

机器周期:主频倒数
总线周期:CPU通过总线访问存储器或I/O所需基本时间,以机器周期为单位
指令周期:CPU执行一条指令所需时间

80x86总线周期

  1. CPU输出地址信息
  2. 缓冲状态,地址信息撤销,需外部地址锁存
  3. 数据传输(允许插入一些等待状态)
  4. 总线周期结束

工作模式

最小(singular processor) and 最大(complex processor)

CPU引脚功能

80x86微处理器_第2张图片
40条引脚信号可以按照功能分为四部分:三大总线+其它(时钟与电源)

数据和地址总线

数据总线用来在CPU与内存之间交换信息,地址总线由CPU发出用来确定CPU访存单元或I/O地址信号。都是三态的。
A D 15 ∼ A D 0 AD_{15} \sim AD_0 AD15AD0是时分复用的双重总线,每个总线周期开始的时候 ( T 1 ) (T_1) (T1)用作AB,其余时间是DB。
A 19 / S 6 ∼ A 16 / S 3 A_{19}/S_6 \sim A_{16}/S_3 A19/S6A16/S3为地址/状态总线信号。 ( T 1 ) (T_1) (T1)时用作AB,I/O操作时这四位置0,总线周期其余时间用于表示正在使用的的段寄存器: S 6 S_6 S6恒为0, S 5 S_5 S5=IF, S 4 S_4 S4 S 3 S_3 S3状态表如下:

S 4 S_4 S4 S 3 S_3 S3 所使用的段寄存器
L L ES
L H SS
H L CS(或者不是存储器操作)
H H DS

访问存储器时寻址1M,访问外设使用 A 15 ∼ A 0 A_{15} \sim A_0 A15A0,共64K。
B H E ‾ / S 7 \overline{BHE}/S_7 BHE/S7总线高允许/状态 S 7 S_7 S7信号(三态),同样分时复用,在总线开始周期( T 1 T_1 T1周期)信号作为总线高半部分允许信号,低电平有效。
B H E ‾ = 0 \overline{BHE} = 0 BHE=0的时候读写8位数据与 A D 15 ∼ A D 8 AD_{15} \sim AD_8 AD15AD8连通,它与 A 0 A_0 A0一同决定数据是高字节还是低字节工作;DMA方式下,它是高阻;其它周期为 S 7 S_7 S7

控制总线

33脚用于控制芯片工作模式

最小模式

先欠着…

最大模式

先欠着…

80x86CPU的操作和时序

先欠着…

80x86系统的存储器组织

存储器编址

任何连续存放的两个字节都可以被称为字。
规则字:偶数地址的字,非规则字反之。

存储器组织基本规则

  1. 20条地址线,最大寻址空间为1M
  2. 存储单元按照字节组织
  3. 采取边界对准的存放方式:低字节放在低址,偶单元;高址反之。

80x86存储系统构建

奇偶地址体分开存储, A 0 = 0 A_0 = 0 A0=0表示选择偶地址, B H E ‾ = 0 \overline{BHE} = 0 BHE=0表示选择奇数地址。其中,BHE指的是总线高允许(Bus High Enable)从而如果边界不对准,存取指令耗费时间翻倍。

你可能感兴趣的:(计算机硬件,#汇编+微机)