8086CPU的寻址方式(7种)

基本概念

  • 立即操作数:操作数包含在指令中
  • 寄存器操作数:操作数包含在CPU的某个内部寄存器中
  • 存储器操作数:约定操作数事先存放在存储器中存放数据的某个单元
  • 基本格式

    MOV xx,yy

            xx:目的操作数字段

            yy:源操作数字段

  • EA(Effect Address):有效地址
  • PA(Physical Address):物理地址

寻址方式

1、立即数寻址

  • 操作数直接存在指令中,紧跟在指令的操作码之后。
  • 主要用来对寄存器赋值,只能用于源操作数字段。

        例如:MOV BX,1234H        ;执行指令后,(BX)=1234H

  • 注意:立即数只能是整数,不能是小数、变量或其他类型的数据。

2、寄存器寻址

  • 操作数就在CPU的内部寄存器中

        例如:MOV DX,AX        ;AX的内容送到DX中

  • 注意:当源和目的操作数都采用寄存器寻址时,一定要注意类型要一致。

立即数寻址和寄存器寻址都没有有效地址(EA)

3、直接寻址

  • 操作数在存储器中,存储单元的有效地址由指令直接指出
  • 操作数本身若无特殊声明使用段超越,则默认存放在内存的数据段(DS段)中

 例如:MOV AX,[1070H]        

         ;若(DS)=2000H,该指令的操作数的物理地址为PA = 2000H + 1070H = 21700H,则执行过程是将物理地址为21700H和21701H两个单元的内容取出送AX。

4、寄存器间接寻址

  • 操作数在存储器中,操作数的有效地址一般在基址寄存器BX、BP或变址寄存器SI、DI中,即EA等于其中某一个寄存器的内容。
  • 如果指令前面没有用超越前缀指明具体的段寄存器,其操作数的段基址可以分为以下两种情况
  1. 操作数在当前数据段(DS给出段基址)
            PA = 16 * (DS) + EA = 16 * (DS) + [ BX | SI | DI ]
  2. 操作数在当前堆栈段(SS给出段基址)
            PA = 16 * (SS) + EA = 16 * (DS) + (BP)

 例如:MOV AX,[BX] ,若(DS) = 2000H,(BX) = 1000H

            ;EA = 1000H PA = 2000H * 16 +1000H = 21000H

5、寄存器相对寻址

  • 操作数在存储器中,并且一般在指定基址寄存器BX、BP或变址寄存器SI、DI的内容进行间接寻址,但是操作数的EA(即偏移量)还要加上指令中指定的8位或16位位移量
  • EA = [ BX | BP | SI | DI ] + { 8位或16位位移量 }

        例如:MOV AL,COUNT[SI] or MOV AL,[COUNT + SI]

        设(DS) = 6000H,(SI) = 1000H,COUNT = 55H(表示位移量的常量符号)

        ;EA = 1000H + 05H = 1005H。

            PA = 6000H * 16 + 1000H + 05H = 61500H.

6、基址变址寻址

8086指令系统允许把基址寄存器和变址寄存器组合起来构成一种新的寻址方式

  • 操作数一定存在存储器中,操作数的EA是由指令指定的一个基址寄存器(BX、BP)加上一个变址寄存器(SI、DI)的内容,即 EA = [ BX | BP ] + [ SI | DI ]
  • 只要用上BP,那么默认段寄存器就是SS;在其他情况,默认段寄存器都为DS。也可以用使用段超越前缀来指定段寄存器。

例如:MOV AX,[BP][SI] ,设(SS) = 2000H,(SI) = 1000H,(BP) = 5000H

        ;EA = 1000H + 5000H = 6000H

            PA = 20000H + 5000H + 1000H = 26000H

7、相对基址变址寻址

  • 操作数的EA是一个基址寄存器内容、一个变址寄存器内容和8位或16位偏移量这三者之和。
    • 与基址变址一样,使用基址寄存器BP时,默认的段寄存器是SS,其他情况默认的段寄存器是DS。
    • EA = [ BX | BP ] + [ SI | DI ] + { 8位或16位位移量 }

例如:设(BX) = 1000H,(SI) = 2000S), (DS)= 3000H,位移量为0020H

        MOV AX,[BX+DI+1020H]

        ;EA = 1000H + 2000H + 1020H = 4020H

            PA = 30000H + 4020H = 34020H

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/289632.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

英飞凌AURIX 2G TC3xx新一代芯片架构系列介绍-概论

英飞凌AURIX 2G TC3xx新一代芯片架构系列介绍-概论

普中STM32-PZ6806L开发板(HAL库函数实现-温度传感器DS18B20)

简介 主芯片STM32F103ZET6, 通过引脚PG11 连接DS18B20, 读取DS18B20采集的温度数据;电路原理图 DS18B20电路图 DS18B20 与 主芯片连接引脚 其他知识 DS18B20资料 DS18B20数据手册 DS18B20 简介 单线通讯的温度传感器, 测量温度在-55℃ 到 125℃, 在-10C 到…

python 知识点

ping ping 不能带协议,如:ping baidu.com 引入包顺序 分三级,第一级是 Python 的内置库,第二级是第三方库,第三级是自己的代码。每一级用一个空行间隔 运算符 keyError:key不存在 列表推导式 创建字典 字…

华芯微特|MCU之TIMER输入捕获

引言 华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别,为了让您更加简单的使用这一功能,下面小编将以SWM190为例,我们今天详细讲解一下TIMER的输入捕获功能。 TIMER输入捕获 一、TIMER定时器之输入捕获功能 我们今天详细讲解一下…

网络安全—SSL安全访问应用

文章目录 网络拓扑部署CA服务器颁发证书开启Web服务安装IIS服务修改Web默认网页 申请Web证书前提准备申请文件生成申请web证书开始安装web证书 客户机访问web默认网站使用HTTP使用HTTPS 为客户机安装浏览器证书 环境:Windows Server 2003 网络拓扑 这里使用NAT还是…

输入输出流

1.输入输出流 输入/输出流类:iostream---------i input(输入) o output(输出) stream:流 iostream: istream类:输入流类-------------cin:输入流类的对象 ostream类…

潮玩宇宙大逃杀游戏搭建

潮玩宇宙是当下较火的社交互动平台,它不仅涵盖了各种潮玩商品,还拥有各种游戏玩法,尤其是大逃杀游戏非常火爆!本文将介绍大逃杀游戏的开发和发展前景。 大逃杀游戏 大逃杀游戏是当下的一种新型游戏模式,旨在为玩家提供…

python django 生鲜商城管理系统

python django 生鲜商城管理系统,包含用户端和管理端 功能: 用户端:商城主页展示,登录,注册,用户中心,购物车,我的订单,购物车结算 管理端:登录,商品&…

[C#]使用纯opencvsharp部署yolov8-onnx图像分类模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 是一个 SOTA 模型,它建立在以前 YOLO 版本的成功基础上,并引入了新的功能和改进,以进一步提升性能和灵活性。具体创新包括一个新的骨干网络、一个新…

【设计模式】二十一.行为型模式之状态模式

状态模式 一. 说明 状态模式通常描述一个类不同行为的多个状态变更,对象的行为依赖它的状态,它是一种行为型模式。 状态模式可以用来消除代码中大量的if-else结构,它明确对象是有状态的、对象的不同状态对应的行为不一样、行为之间是可以切…

Winform中使用Fleck实现Websocket服务端并读取SQLite数据库中数据定时循环群发消息

场景 Winform中使用Websocket4Net实现Websocket客户端并定时存储接收数据到SQLite中: Winform中使用Websocket4Net实现Websocket客户端并定时存储接收数据到SQLite中-CSDN博客 Winform中操作Sqlite数据增删改查、程序启动时执行创建表初始化操作: Wi…

计算机基础面试题 |08.精选计算机基础面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

前端框架中的状态管理(State Management)

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

【算法每日一练]-dfs bfs(保姆级教程 篇8 )#01迷宫 #血色先锋队 #求先序排列 #取数游戏 #数的划分

目录 今日知识点: 使用并查集映射点,构造迷宫的连通块 vis计时数组要同步当回合的处理 递归求先序排列 基于不相邻的取数问题:dfs回溯 n个相同球放入k个相同盒子:dfs的优化分支暴力 01迷宫 血色先锋队 求先序排列 取数游…

【ikbp】数据可视化DataV

天天查询一些数据,希望来一个托拉拽的展示,部署体验一下可视化大屏 快速搭建快速查询实时更新简单易用 启动服务 数据可视化 静态查询 配置数据 过滤数据 分享

计算机网络—网络搭建NAT内外网映射

使用Windows Server 2003 网络拓扑 Router 外网:NAT IP 网段 192.168.17.0/24内网:仅主机模式 IP 172.16.29.4 Client1:仅主机模式 IP 172.16.29.2 网关 172.16.29.1 Client2:仅主机模式 IP 172.16.29.3 网关 172.16.29.1…

数字信号处理期末复习——计算小题(二)

个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:V…

uni-app中实现元素拖动

uni-app中实现元素拖动 1、代码示例 <template><movable-area class"music-layout"><movable-view class"img-layout" :x"x" :y"y" direction"all"><img :src"musicDetail.bgUrl" :class&…

SpringBoot实现Websocket聊天交友微信小程序(一)

记录一下我开发一个交友微信小程序并且上线运营的心得体会。 2022年10月1日上线的&#xff0c;到目前终于实现每天收益300左右。 界面比较简洁&#xff0c;功能有动态&#xff0c;动态可以选择话题&#xff0c;相册&#xff0c;相册可以设置看广告解锁&#xff0c;私信&#…

Kubernetes-网络

一. 前言 flannel两种容器跨主机通信的方案&#xff0c;其中UDP模式是IP in UDP&#xff0c;即三层报文封装在UDP数据包中通信&#xff1b;而vxlan模式则是MAC in UDP&#xff0c;即二层报文封装在UDP数据包中通信 flannel UDP模式和vxlan模式都对数据包做了封解包&#xff0c…