寻找操作数地址的方法

共有八种:
寄存器寻址方式
立即数寻址方式
存储器寻址方式:( 直接寻址方式,寄存器间接寻址方式,变址和基址寻址方式,基址变址寻址方式)
串操作寻址方式
I/O端口寻址方式

8086采用的是变字长指令格式,指令长度为1~6个字节,第一个字节包含操作码,第二个字节通常表示寻址方式,第三个到第六个字节表示位移量,立即数。

1,寄存器寻址方式:指令所需的操作数在寄存器中,按指令给出的寄存器地址去获取操作数
指令代码: 操作码 REG (RI操作数)
在汇编指令中,寄存器地址直接用寄存器名表示
2,立即数寻址方式
指令所需的操作数直接在指令代码中,随着取指令一起取到BIU的指令队列中。
执行速度快,常用来提供常数

在汇编指令中,立即数只能作为源操作数
在宏汇编中,字符常量的存取 MOV AH,’A’
字符串常量的存取 MOV DX,”AB”

3,存储器寻址方式
以下几种寻址方式,操作数在存储器中。
汇编中,存储单元地址使用逻辑地址: 段基值:偏移量
存储器寻址方式:形成操作数逻辑地址的偏移量
有效地址: 按指令中存取器寻址方式计算,得到的偏移量称为有效地址EA
有效地址EA是三个地址分量的某种组合:
(1)位移量:指令代码中的一个8/16位二进制数
(2)基地址:BX或BPD的内容
(3)变址量:SI或DI的内容

根据三个地址分量的不同组合,有4中不同的存储器寻址方式:
a 直接寻址方式:指令中所需要的操作数直接放在存储器中,操作数的有效地址为有指令代码中的位移量提供

直接寻址方式可用数值地址或符号地址来表示:
I 数值地址:MOV BX,[1000H]
指令中也可以指定跨越前缀来取得其他段中的数据。

数值地址表示IDE直接寻址方式
II 符号地址 要区分是字或字节地址
MOV BX, VAR
符号地址表示的直接寻址方式
MOV DAB,0FH;DAB是字节地址
MOV CL ,DAB+3
上述2条指令分别等价于:
MOV DS:DAB,0FH
MOV CL,DS:DAB+3

MOV AX,ES:DAW;DAW是字地址
b,寄存器间接寻址方式:指令所需的操作数在存储器中,操作数的有效地址EA 直接从SI,DI,BX,BP中获得

使用SI,DI,BX间接寻址时,隐含使用DS;
BP间接寻址,则隐含使用SS
MOV CH,[SI] = MOV CH,DS:[SI]
MOV [DI],AX = MOV DS:[DI],AX
MOV AL,[BX] = MOV AL,DS:[DX]
MOV [BP],DX = MOV SS:[BP],DX
寄存器间址可用来访问表,一位数组中的元素

c,变址寻址和基址寻址方式:指令所需的操作数在存储器中,操作数的有效地址EA是两个地址分量之和

变址寻址:操作数的EA是SI或者DI内容与位移量之和
基址寻址:操作数的EA是BX或BP内容与位移量之和
变址或基址使用SI,DI,BX址时,隐含使用DS;
BP间接寻址,则隐含使用SS
MOV CH,10H[SI] = MOV CH,DS:10H[SI]
MOV TAB[DI],AX = MOV DS:TAB[DI],AX
MOV AL,ARY[BX] = MOV AL,DS:ARY[DX]
MOV STR[BP],DX = MOV SS:STR[BP],DX
用基址变址寻址方式可以方便的访问二维数组
位移量 数组首地址
基址寄存器 数组元素行址
变址寄存器 数组元素列址

段基值 —-隐含有SS提供

用基址变址寻址方式访问二维数组
MOV AL, ARRAY[BP][SI]

存储器操作数寻址方式地址计算小结:

4,串操作寻址方式
数据段中的源串有效地址隐含由SI提供,附加段中的目的串有效地址隐含由DI提供
SI => 源串有效地址EA
DI =>目的串有效地址EA
没完成一次串操作,指令按标志位DF自动修改SI/DI,使其指向下一个串元素的存储单元:
如:DF = 0,每完成一次字节串操作,SI/DI自动增量1
如:DF = 1,每完成一次字节串操作,SI/DI自动减量1

5,I/0端口寻址方式

寻址方式 寄存器寻址方式 立即数寻址方式 存储器寻址方式: 直接寻址方式,寄存器间接寻址方式,变址和基址寻址方式,基址变址寻址方式 串操作寻址方式 I/O端口寻址方式相关推荐

  1. 计算机系统-理论-CPU操作/处理数据的方式/寻址方式/局部性原理/位运算/进制转换

    在计算机中,cpu将一切硬件,都看成内存,各种硬件在CPU的眼中都是下面这样子的 CPU对硬件的操作,其实就是和这些硬件的内存或者BIOS进行交互,CPU能做且只能做三件事 1.将某个地址中存储的字节 ...

  2. 寄存器和存储器的区别_寄存器、累加器、暂存器都是什么?它们有什么区别?...

    一.什么是寄存器 寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成.在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类. 内部寄存器不能被外部电路或软件访问, ...

  3. X86-64寄存器和栈帧--牛掰降解汇编函数寄存器相关操作

    X86-64寄存器和栈帧 概要 说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64:正是由于能向后兼容,AM ...

  4. 量子计算机的基本构成,量子计算机的硬件单元 文/李联宁 1. 量子寄存器 存储一系列量子比特的体系称为量子寄存器。假设有一个由3比特构成的寄存器,在经典计算机中,可... - 雪球...

    来源:雪球App,作者: 书生剑客,(https://xueqiu.com/3993902801/178623085) 文/李联宁 1. 量子寄存器 存储一系列量子比特的体系称为量子寄存器.假设有一个 ...

  5. 寄存器和立即数和内存单元

    所有对寄存器的指令操作 都是操作寄存器中的值 比如 mov ax,3    将 立即数3 赋值给ax 而不是将3写入了某个内存 只是写入了ax这个寄存器中 只有通用寄存器才能操作立即数 其他断寄存器 ...

  6. 实现一个基于主存的虚拟块设备驱动程序_存储器的层次结构:寄存器、高速缓存、主存、本地磁盘...

    存储技术:不同存储技术的访问时间差异很大.速度较快的技术每字节的成本要比速度较慢的技术高,而且容量小. 一种组织存储器系统的方法,成为存储器层次结构(memory hierarchy).如下图所示,是 ...

  7. linux中寄存器的作用是什么,c-x86_64汇编器中RBP寄存器的作用是什么?

    Linux使用x86-64(AMD64)架构的System V ABI: 有关详细信息,请参见OSDev Wiki上的System V ABI. 这意味着堆栈变小. 较小的地址在堆栈中"较高 ...

  8. 8086CPU有哪些寄存器组成?各有什么用途?标志寄存器的各标志位在什么情况下置位?

    答:共有14个寄存器,分成3部分:  (1) 通用寄存器8个:AX,BX,CX,DX,SP,BP,SI,DI.         AX,BX,CX,DX为数据寄存器,用来保存运算中的中间结果和有效地址. ...

  9. 单片机cpu寄存器 c语言,51单片机共有21个特殊功能寄存器

    描述 在51单片机内部有一个CPU用来运算.控制,有四个并行I/O口,分别是P0.P1.P2.P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以 ...

最新文章

  1. ZH奶酪:Python按行读取文件
  2. 【Python教程】两种方法教你拆分含有多种分隔符的字符串
  3. android功能导航布局,安卓9.0新功能 屏幕旋转将与导航栏同窗
  4. 阿帕奇骆驼遇见Redis
  5. WINCE的BIB文件解析
  6. 1042: 筛法求素数
  7. 什么样的人适合做合伙人?
  8. 瑞元双玻组件助力浙江多座分布式电站高效运行
  9. SoC嵌入式软件架构设计II:否MMU的CPU虚拟内存管理的设计与实现方法
  10. linux关闭在线登录用户和禁止root/IP直接ssh登录linux
  11. CountDownLatch理解
  12. Atitit work remote solu 远程办公解决方案 Atitit6 远程办公四件套 目录 1. Ati标准四件套 2 1.1. Gmail Google 日历和 2 1.2.
  13. 遥感图像处理学习一、概念及组成
  14. windows虚拟网卡驱动开发
  15. SQL列转行问题(踩雷)
  16. 原型工具Axure:常用效果制作(选中、淘宝网导航、轮播图、toast效果、呼出键盘、省市二级联动、步进器、订单详情案例、中继器)
  17. 剖析虚幻渲染体系(15)- XR专题
  18. 手游图片素材提取_一款可以提取安卓游戏模型的软件,支持贴图、声音导出丨带测试...
  19. linux chsh命令参数及用法详解(linux设置系统shell命令) 详细出处参考:http://www.jb51.net/LINUXjishu/57945.html
  20. 测试类型(αβ测试 、AB测试)

热门文章

  1. 可以测试打字的手机软件,手机打字软件哪款好用?4款打字软件推荐
  2. 高通子系统subsystem基础知识
  3. java获取字符串长度_java中定义字符串String s=”pzhu”,下面操作可以取得字符串长度的是( )。...
  4. 基于Python的DELMIA二次开发(二):创建产品
  5. 3D可视化打造智慧工厂数字化管理
  6. Word2Vec原文翻译
  7. Qt Creator 无效构建套件(Kits)的清除以及恢复默认设置
  8. 男女同居时的惊魂故事zz
  9. 圆锥曲线万能弦长公式_二次曲线中的万能弦长公式
  10. 【报告分享】5G赋能中国智慧教育-德勤+中国移动(附下载)