汇编intel 8086/8088/80386 学习
基础知识
Intel8086/8088CPU 功能结构
工作方式
- 从存储器中取一条指令
- 分析指令的操作码
- 从存储器中读取操作书
- 执行指令
- 写入结果集
- 回到1
处理单元
- 执行单元(EU)
- 总线接口单元(BIU)
执行单元辅助分析个执行工作 接口部件单元负责IO
汇编的组成
- 汇编指令:机器码助记符
- 伪指令:给编译器看的
- 其他符号: 给编译器看的 -,+ ,* ,/
CPU 对存储器的读写
- 地址信息
- 控制信息
- 数据信息
物理控件
- 都与cpu相连接
- cpu都能读写他们
寄存器
CPU 分工
- 运算器进行信息处理
- 寄存器进行信息存储
- 控制器控制各种器件工作
- 总线连接各种器件
寄存器
段寄存器
- 代码段 cs
存放当前代码段的段地址 从这个段取出指令
- 数据段 DS
存放当前数据段的地址 用于去除数据
- 栈段 ss
当前堆栈的地址 (此堆栈不是堆和栈)
- 附加段 ES
IP寄存器
一个16位的寄存器 用于存放代段的偏移地址 当每次取出一个字节的机器码后 ip就会+1
程序状态字寄存器PSW
状态标志
- CF 进(借)位 当有借位就CF=1 没有借位就是 CF=0
- PF 偶标志 反应的是在结果中的"1"的个数 当为偶数时PF=1 否则为0
- AF 半进(借)位记录运算时第三位(半个字节的进位)
- ZF 零标指位 ZF=1 时候为0
- SF 负号标指位 SF=1 时候位负
- OF 溢出标指 有溢出时候 OF=1
控制标志
- DF 方向标志位
- IF 中断标志 IF=1 允许CPU 接受外部中断
- TF 陷阱标志 TF=1 每次执行自动都会产生内部中断
存储器的组织
存储单元的地址
8086/8088 是16位的cpu 因此由两个字节构成 由无符号的数构成
存储器结构
在8086中cpu具有1MB的寻址能力但是地址总线只有16根
寻址方式
16位的带宽只能访问2^16,也就是64kb的空间。因此 在cpu中采取了存储器分段的方法 也就是将空间分为任意的存储段 每个段的大小最大为64kb
这样就可以用基地址加偏移地址来获取地址 这里的基地址和偏移地址都是逻辑地址
计算方式
段地址*16d + 偏移地址 = 物理地址
在存储器中物理地址是唯一的 但是 逻辑地址不唯一
对应的寄存器
堆栈
堆栈:
即程序读入内存之后所使用的空间包括了一切的资源
栈:
定义:程序的在执行某个函数的时候保存局部变量的地方 是一个类似货物的仓库的先进后出的结构
栈存储的地址由SS和堆栈指针SP来指示 SS段寄存器存放的是段地址的首地址 sp则是最后的一个地址 sp的值要小于ss
堆:
一块开辟在计算机中的内存空间…
80386 CPU
全32位结构 具有32位的数据总线和地址总线,能灵活处理 8 、16、32 和64位总线。有32位的地址信息,可直接寻址4GB的物理空间 增加了内存分页功能
按照实地址 保护虚地址 以及虚拟8086 三种模式
内部结构由总线接口单元、指令预取部件、指令译码部件、执行部件、分段部件和分页部件6个逻辑功能部件组成,6个部件都能独立操作,又可以对同一指令的不同部分同时并行操作,使多条指令重叠进行,大大提高了CPU的速度
为增强浮点数运算能力,Intel还推出了与之配套的浮点协处理器80387
80386增加了可测试性和调试功能,可测试特性包括自测试和对页面转换高速缓存的直接访问。
通用寄存器
状态寄存器
EIP : -> ip
EFP :
低16位与FP相似 其中RF位是恢复标志 若RF=1 即使遇到断点或者故障也不产生异常中断VM为虚拟89模式标志 若vm=1 CPU工作在虚拟86模式下
段选择寄存器
80386的段选择寄存器是在80286选择寄存器基础之上新增了2个支持当前数据段的段选择寄存器FS和GS,与段选择寄存器相关联的段描述符高速缓冲器扩充到64位
系统地址寄存器
保存保护模式的下的表和段
- GDTR->GDT(全局描叙符表)
- IDTR->IDT(中断描叙符表)
- LDTR->LDT(局部描叙符表)
- TR ->TSS(任务状态段)
控制寄存器
CR0、CR2、CR2 保存全局性质的机器状态 CR1被intel保留
调试寄存器和测试寄存器
80386设置有8个调试寄存器,分别命名为DR0~DR7,其中DR0、DR1、DR2、DR3、DR6、DR7供程序员进行程序调试,DR4、DR5为Intel公司保留。
80386设置有2个测试寄存器TR6和TR7,用于存放需要测试的数据。
汇编intel 8086/8088/80386 学习相关推荐
- 8086/8088 CPU寄存器组
作者:黑剑 出处:http://www.cnblogs.com/blacksword/ 8086/8088 CPU寄存器组 今天来回顾一下8086/8088 CPU寄存器组的知识.其实8086汇编还 ...
- 8086/8088 寻址方式补充篇
作者:黑剑 出处:http://www.cnblogs.com/blacksword/ 8086/8088 寻址方式补充篇 上一节讲述了8086/8088 CPU寻址方式,通过了解它的寻址方式会使得 ...
- Intel X86 CPU寄存器学习笔记
本文对Intel CPU寄存器做一些浅显的介绍.Intel处理器寄存器在很多教科书上有,网络也有很多文章涉及到.因此本文在这些基础上做一些归纳总结,另外也参考了Intel IA32架构软件开发手册. ...
- 【沧海拾昧】微机原理:8086/8088中断系统
#C0305 沧海茫茫千钟粟,且拾吾昧一微尘 --<沧海拾昧集>@CuPhoenix [阅前敬告] 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 如有问题定为本集记录有谬, ...
- ARM_NEON_CNN编程 SIMD单指令多数据流 intrinsics指令 内联汇编 CNN卷积网络优化 深度学习优化
ARM_NEON_CNN编程 SIMD单指令多数据流 intrinsics指令 内联汇编 CNN卷积网络优化 深度学习优化 博文末尾支持二维码赞赏哦 _ 本文github 神经网络arm neon加速 ...
- Intel 8086处理器
Intel 8086的地位毋庸置疑. 1.8086的通用寄存器 8个16位通用寄存器 AX,BX,CX,DX,SI,DI,BP,SP,前四个又各自可拆分成两个8位寄存器使用,比如AX=>AH,A ...
- 汇编语言之8086/8088指令系统
Typist : Akame Qixisi / Excel Bloonow 在我学习汇编语言(基于8086)的过程中,遇到过一些想要某些操作却不知道指令的情况,所以在这里统一记录一下.如有错误或不同观 ...
- 8086/8088 存储器分段概念
这一节主要讲述8086/8088 存储器分段的概念. 目的 从8086 CPU开始采用了分段的方法管理存储器,只有充分理解存储器分段的概念和存储器逻辑地址和物理地址的关系,才能有助于我们掌握8086/ ...
- 微机笔记2——8086/8088指令系统
8086/8088寻址方式 寄存器寻址 操作数存放在寄存器中 立即寻址 操作数存放在内存代码段 直接寻址 操作数存放在内存 寄存器间接寻址 操作数存放在内存 变址寻址 操作数存放在内存 基址加变址寻址 ...
- 8086/8088 寻址方式
作者:黑剑 出处:http://www.cnblogs.com/blacksword/ 8086/8088 寻址方式 这一节讲解8086/8088寻址方式,所谓寻址方式,就是寻找操作数或操作数地址的 ...
最新文章
- 关于FluentNhibernate数据库连接配置,请教
- 把度分秒的经纬度转换成十进制的经纬度的工具类
- oracle11g broker,张欣橙 Oracle11g 配置DG broker
- LeetCode 1246. 删除回文子数组(区间DP)
- React 16 Jest手动模拟(Manual Mocks)
- har文件解析工具_嵌入式MCU也能跑AI?STM32 Cube.AI工具包使用初探
- Flutter ListView 下拉刷新与上拉加载更多
- vim 寄存器 操作_说实话,Intellij IDEA 自带的 Vim 插件真心不错。。。
- 如何去除小程序button的边框
- 本人出版《Java Web 项目开发案例实战—Spring Boot+Mybatis+Hibernate+Spring Cloud》
- 4、STYLE-------------labview宝典
- 在IE/Chrome/Firefox等浏览器在线打开Word等Office文档完全解决方案
- metricbeat的基本使用
- xp计算机u盘重装系统,如何用u盘装xp系统_纯净版xp系统_xp系统安装教程 - u大师...
- css3中边框的4种样式
- 【回溯法】机器零件加工-最优加工顺序
- 全面的软件测试(转)
- 微信公众平台昵称乱码emoji表情
- Flink实操 : 算子操作
- python实现ks算法_Python绘制KS曲线的实现方法
热门文章
- 在空间三维坐标系下的圆、直线和平面拟合
- python程序设计基础课后答案-Python语言程序设计基础(第2版)嵩天课后答案
- 2018-2019-1 20165211 20165230 20165208 实验二 固件程序设计-1
- Excel VBA 高级编程-出入库系统
- Carsim应用:LKA车道保持辅助系统(LQR算法推导)
- 设置MyEclipse2015黑色主题背景及删除主题
- Sql Server 2012 Enterprise Edition 企业版 迅雷 下载地址
- win10企业版 微软商店安装
- 排队叫号python编程_一种自主选时排队叫号算法
- 【Java8】Function 讲解