| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> 8086的寻址方式 -> 正文阅读 |
|
[嵌入式]8086的寻址方式 |
1. cpu中总的寄存器8086 CPU 中寄存器总共为 14 个,且均为 16 位 。 即 AX,BX,CX,DX,SP,BP, SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个。 而这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器。 2. 通用寄存器2.1 数据寄存器AX,BX,CX,DX 称作为数据寄存器:
可以分为两个独立的 8 位的 AH(BH, CH, DH) 和 AL(BL, CL, DL) 寄存器. 2.2 指针寄存器SP 和 BP 又称作为指针寄存器:
2.3 变址寄存器SI 和 DI 又称作为变址寄存器: SI (Source Index):源变址寄存器; DI (Destination Index):目的变址寄存器; 3. 控制寄存器控制寄存器:
4. 段寄存器
5. 操作数寻址5.1 立即寻址
5.2直接寻址操作数存放在存储器中, 偏移量直接写在操作数中,. 地址为数据段寄存器DS的值* 16 (<<4)然后加上直接给出的偏移量2000H.
5.3 寄存器寻址
直接使用寄存器中的值作为操作数, 速度较快. 5.4 寄存器间接寻址操作数存放在存储器中, 16位偏移地址存放在SI, DI, BP, BX四个寄存器之一中. 若使用BX, SI, DI之一作为寄存器, 操作数默认放在DS所决定的数据段中.
若使用BP做间接寻址, 操作数默认放在SS决定的堆栈段中.
可以直接指定使用的段寄存器:
5.5 寄存器相对寻址操作数存放在存储器中, 使用段寄存器内容* 16 加SI, DI, BP, BX四个寄存器之一的内容再加直接给出的位移量. 若使用BX, SI, DI之一作为寄存器, 操作数默认放在DS所决定的数据段中; 若使用BP做间接寻址, 操作数默认放在SS决定的堆栈段中. 与寄存器间接寻址相比只是增加了直接给出的偏移量:
5.6 基址变址寻址将段地址寄存器的值*16加上基址寄存器(BX,BP)之一的地址加上变址寄存器(SI, DI)之一的值作为地址. 若使用BX作基址 操作数默认放在DS所决定的数据段中; 若使用BP做基址, 操作数默认放在SS决定的堆栈段中.
5.7 基址变址相对寻址在基址变址寻址基础上再加一个直接给出的偏移量:
还有几种表示方法与上式等价:
referenc: |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
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 0:46:27- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |