| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 80x86 微处理器 -> 正文阅读 |
|
[嵌入式]80x86 微处理器 |
目录 ? 一、8086 CPU的内部结构8086微处理器片内和片外都是16为的数据总线、20位的地址总线,直接寻址空间可达2^20即1 MB。其采用了取指令和执行指令并行工作的结构设计。 由图可知:8086CPU内部结构由指令的执行单元(EU)和总线接口单元(BIU)这两部分组成。 (一)、指令执行单元(EU)指令执行单元EU主要完成指令的译码和指令的执行两部分工作。其中有三部分组成 算术逻辑运算单元ALU; 标志寄存器PSW; 寄存器组。 1、算术逻辑运算单元ALU主要完成8位或16位二进制数据的算术逻辑运算功能,运算的数据可来自内部的寄存器,也可来自存储单元或指令代码中包含的数据。 2、标志寄存器Flags16位的标志寄存器是用来存储数据运算处理后的结果特征标志信息和CPU运行的状态控制信息。
表1 Flags各位标志含义 3.寄存器组寄存器组包含4个16位的通用寄存器和4个16位的专用寄存器。 (1) 4个通用寄存器
一般用作数据暂存 (2)4个专用寄存器
SP和SP可以与堆栈段寄存器SS联合使用,用于设置或访问堆栈段。 在字符串运算中SI与数据寄存器DS配合,指向源串的首地址,DI与附加段寄存器ES配合,指向目的串的首地址。 (二)总线接口单元BIU总线接口单元BIU是8086CPU与外部(存储器和I/O端口)数据传输的接口,它提供了16位的双向数据总线和20位的地址总线以及所有的控制信号线。 主要功能有:地址的形成、外部取指令、指令排队、数据的读/写操作控制和其他功能的总线控制。 总线接口单元BIU有5部分组成: a:4个16位的段地址寄存器组 b:16位的指令指针寄存器IP c:20位的物理地址加法器 d:6字节的指令缓冲队列 e:总线输入/输出控制电路 1.4个16位的段地址寄存器组用来提供访问外部存储器时的16位段基址。
CS——在取指令阶段提供16位的段地址。 DS——在执行指令时,如果有访问片外存储器是数据时提供16的段地址。 SS——在方位堆栈时,提供16位的段地址 ES——在CPU做片外存储器的数据访问时,提供16位的段地址,只在串操作或特别指定的数据访问指令中使用。 2、16位的指令指针寄存器IP用作存放下一条待执行的指令代码所在存储单元的16偏移地址,和CS一起构成程序指针。 3、20位的物理地址加法器将16位的段地址和16位偏移地址转换成20位的存储器单元物理地址。 4、指令缓冲队列用以存放BIU已经读进CPU但是还未来得及执行的指令代码。 5、总线输入/输出控制电路 实现CPU和片外存储器或I/O端口数据传输的时序逻辑控制。 二、8086存储器组织物理存储器:处理器在它的总线上寻址的存储器称为物理存储器。 物理地址:物理存储器按字节序列排列,每个字节赋予一个唯一的地址,称为物理地址。 (一)存储器地址的分段8086微处理器有20位的地址总线,内部有16位的寄存器,不能直接给出20位的存储单位地址,必须有2个16位的寄存器组合才能给出20位存储器单位地址。故将1MB的存储空间分成若干个逻辑段,每个逻辑段容量小于等于64KB,1MB的存储空间可分成16个逻辑段,允许在整个存储空间浮动。如图所示: 下图3 为8086存储器重叠分段图,只要有段地址和段内偏移地址就可以问问这个物理地址所对应的存储空间。 (二)存储器物理地址的形成物理地址:8086 CPU访问存储单元时,有20位的地址加法器给出的实际地址,而且这个地址是唯一的,将此地址称为物理地址。 逻辑地址:将段起始地址(段基址)和段内偏移合起来称为逻辑地址,也称为编程地址。 偏移地址:逻辑地址在程序中使用,即段基址:偏移地址。 物理地址的计算: 物理地址是有逻辑地址在地址加法器中变换运算得到,故其计算方法为: 物理地址=16位的段基址*16+16位的偏移地址 (三)8086存储器的分奇偶体结构8086 CPU将存储器分成奇地址和偶地址管理,称为奇偶分体结构。 8086 CPU 将1MB的存储空间分成两个存储体:奇地址存储体和偶地址存储体,各为512KB。 其中奇地址单元对应高8位数据线和偶地址单元对应低8位数据线。
注:为了提高程序的运行速度,在编程时,注意存放字数据最好从偶地址开始存放,这种存放方式也称为“字对准”存放。 (四)8086存储器的堆栈堆栈是指在存储器中开辟的一片数据存储区,用于暂存数据和在过程调用或处理中断是暂存断点信息。 堆栈的特点:先进后出 ? 8086 CPU通过对SS和SP的设置来开辟堆栈段。SS提供段基址,SP提供栈底偏移地址。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:27:15- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |