当前位置:网站首页>8086 CPU 内部结构
8086 CPU 内部结构
2022-07-06 09:29:00 【My71】
[原文链接 —— SevenOne’Blog](http://www.my71.fun/2022/03/24/汇编语言/07-8086 CPU 结构/)
8086 CPU 内部结构
分类
- 结构可以分为物理结果和编程结构。
- 芯片可分为可编程芯片和不可编程芯片。
编程结构
总线结构单元 BIU
寄存器组
- 段寄存器:CS(代码段)、DS(数据段)、SS(堆栈段)、ES(附加段)
- 指令指针寄存器:IP 属于指令指针寄存器,它只能存放指令地址。
- IP 中存放下一条将要执行的指令地址。
- SS 堆栈段用于存放临时数据。
- ES 附加段用于存放附加数据。
- 段寄存器中存放的是当前程序的段地址。
地址加法器:通过地址加法器可以讲段地址及指针地址进行运算得到 20 位的物理地址,并将改地址存到内存中。
指令队列
- 存储指令集合的队列(先进先出)
- EU 执行的指令只能来自指令队列。
- 内部有 6 个字节的存储空间。
- 当队列中出现两个或两个以上空字节时,BIU 继续向队列中存址。
总线周期
- BIU 做一次工作的时间就叫做总线周期。
- 一个总线周期至少有 4 个时钟周期(T1 ~ T4)。
- T1:发出地址
- T2:撤销地址,为数据传输作准备
- T3:数据传输
- T4:结束传输,结束本总线周期
执行单元 EU
寄存器组
4 个通用寄存器:AX、BX、CX、DX
4 个专用寄存器:SP(堆栈指针寄存器)、BP(基址指针寄存器)、DI(目的变址寄存器)、SI(源地址寄存器)
8 个寄存器都是 16 位的。
通用寄存器可以分为高、低 8 位存储数据。nX 可以分为 nH 和 nL 组成。
ALU 逻辑运算单元
标志寄存器(PSW)
- 16位,8086 实际使用是 9 位。
- 6 个状态标志位:CD(进位标志)PF(奇偶标志)AF(半进位标志)ZF(零标志)SF(符号标志)OF(溢出标志)
- 3 个控制标志位:TF(单步中断标志)IF(中断允许标志)DF(方向标志)
图
工作条件
- 供电
- 正极:VCC
- 负极:GND
- 时钟:通过 CLK 连接时钟
- 复位:RESET
- 准备好信号:READY
引脚定义
正极:VCC
负极:GND
系统组成
编程方法
存储器结构
边栏推荐
- 字节跳动春招攻略:学长学姐笔经面经,还有出题人「锦囊」
- 7-4 harmonic average
- Educational Codeforces Round 122 (Rated for Div. 2)
- ~84 form supplement
- [graduation project] QT from introduction to practice: realize imitation of QQ communication, which is also the last blog post in school.
- Shell_ 05_ operator
- 我走過最迷的路,是字節跳動程序員的腦回路
- Error occurred during initialization of VM Could not reserve enough space for object heap
- Two weeks' experience of intermediate software designer in the crash soft exam
- LeetCode 1562. Find the latest group of size M
猜你喜欢
Shell_ 01_ data processing
The "advertising maniacs" in this group of programmers turned Tiktok advertisements into ar games
Error occurred during initialization of VM Could not reserve enough space for object heap
When it comes to Google i/o, this is how ByteDance is applied to flutter
Mp4 format details
J'ai traversé le chemin le plus fou, le circuit cérébral d'un programmeur de saut d'octets
7-4 harmonic average
Submit several problem records of spark application (sparklauncher with cluster deploy mode)
我在字节跳动「修电影」
~Introduction to form 80
随机推荐
LeetCode 1561. The maximum number of coins you can get
JS encapsulates the method of array inversion -- Feng Hao's blog
Typescript basic operations
字节跳动新程序员成长秘诀:那些闪闪发光的宝藏mentor们
Usage of insert() in vector
Soft music -js find the number of times that character appears in the string - Feng Hao's blog
LeetCode 1638. Count the number of substrings with only one character difference
Shell_ 07_ Functions and regular expressions
Hbuilder x format shortcut key settings
Fdog series (III): use Tencent cloud SMS interface to send SMS, write database, deploy to server, web finale.
搭建flutter环境入坑集合
Solr standalone installation
JS time function Daquan detailed explanation ----- AHAO blog
LeetCode 1636. Sort the array in ascending order by frequency
redux使用说明
TCP的三次握手和四次挥手
~77 linear gradient
Eureka single machine construction
I'm "fixing movies" in ByteDance
After the subscript is used to assign a value to the string type, the cout output variable is empty.