-
寻址方式 寄存器寻址方式 立即数寻址方式 存储器寻址方式: 直接寻址方式,寄存器间接寻址方式,变址和基址...
2015-11-24 14:29:53寻找操作数地址的方法共有八种: 寄存器寻址方式 立即数寻址方式 存储器寻址方式:( 直接寻址方式,寄存器间接寻址方式,变址和基址寻址方式,基址变址...1,寄存器寻址方式:指令所需的操作数在寄存器中,按指令寻找操作数地址的方法
共有八种:
寄存器寻址方式
立即数寻址方式
存储器寻址方式:( 直接寻址方式,寄存器间接寻址方式,变址和基址寻址方式,基址变址寻址方式)
串操作寻址方式
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+3MOV 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自动减量15,I/0端口寻址方式
-
计算机组成原理————寄存器寻址方式大总结
2020-03-17 17:24:09在寄存器寻址方式中,操作数存放在某一寄存器中:在间接寻址方式中,指令中给出了操作数地址的地址;在相对寻址方式中,在指令地址码部分给出一个偏移量(可正可负);在变址寻址方式中,操作数地址等于变址寄存器的...常见的寻址方式有立即寻址、直接寻址、间接寻址、寄存器寻址、寄存器间接寻址、相对寻址和变址寻址等。在立即寻址方式中,操作数包含在指令中;在直接寻址方式中,操作数存放在内存单元中;在寄存器寻址方式中,操作数存放在某一寄存器中:在间接寻址方式中,指令中给出了操作数地址的地址;在相对寻址方式中,在指令地址码部分给出一个偏移量(可正可负);在变址寻址方式中,操作数地址等于变址寄存器的内容加偏移量。
1、变址寻址
操作数地址等于变址寄存器的内容加偏移量。
用于数组或字符串处理
2、相对寻址方式
相对寻址以程序计数器PC的当前值(R15中的值)为基地址,指令中的地址标号作为偏移量,将两者相加后得到操作数的有效地址。
相对寻址方式对实现程序浮动提供了支持
3、间接寻址方式
间接寻址是相对于直接寻址而言的,指令地址字段的形式地址不是操作数的真正地址,而是操作数地址的指示器,或者说是形式地址单元的内容才是操作数的有效地址。
操作数地址在寄存器中,操作数放在内存里面,为寄存器间接寻址方式,如MOVA,@RO,即把RO中的值作为操作数的地址,把此地址中的值放入累加器A中,即把内存单元20H中的值放入A中,如此地址单元中的值为5,则A=5。
5、基址寻址方式
基址寻址,将CPU中基址寄存器的内容,加上指令格式中的形式地址而形成操作数的有效地址。被引用的专用寄存器含有一个存储器地址,地址字段含有一个相对于该地址的偏移量(通常是无符号的整数)。寄存器的引用可以是显式的,也可以是隐式的。基址寻址方式,主要用来解决程序的动态定位问题。在多道程序的环境下,用户不可决定自己使用的主存区,因而在编程时常按(以零为基准地址)相对地址来编写,当程序被放入主存时,操作系统根据主存空间情况给基址寄存器赋值,从而将虚地址转化为实地址。
6、立即数寻址方式
立即数寻址方式是指指令所需的操作数(位于代码区)由指令的地址码部分直接给出,其特点是取指令时同时取出操作数,以提高指令的执行速度。静态数据区用于存放一对一的绑定且编译时就可确定存储空间大小的数据;栈用于存放一对多的绑定且与活动同生存期的绑定;堆用于存储由程序语句动态生成和撤销的数据。程序运行时,需要将程序代码(机器指,令序列)和代码所操作的数据加载至内存,指令代码加载至代码区,数据则根据绑定关系可能位于静态数据区、栈或堆区。
-
变址寄存器
2013-03-28 00:59:55寄存器ESI、EDI、SI和DI称为变址寄存器(IndexRegister),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。变址寄存器不可分割成8位...变址寄存器
32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。寄存器ESI、EDI、SI和DI称为变址寄存器(IndexRegister),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。变址寄存器的主要用途
SI:存储器指针,传指令中的源操作数指针。 DI:存储器指针,串指令中的目的操作数指针。 -
80386与8086在寄存器与寻址方式上的区别
2016-10-04 23:12:10寄存器区别: 1. 寄存器变成32位的。 2.... 3....3.寻址方式却别: 1.段内偏移从64KB限制突破到4GB. 2.指令中操作数变为32位。 3.基址寄存器和 变址寄存器更灵活,常数偏移量可为 32位。寄存器区别:
1. 寄存器变成32位的。
2.多了一些系统程序用的寄存器:系统地址寄存器、控制寄存器、调试寄存器、测试寄存器。
3.多了4个控制标志:IOPL、NT、RF、VM。
3.寻址方式却别:
1.段内偏移从64KB限制突破到4GB.
2.指令中操作数变为32位。
3.基址寄存器和 变址寄存器更灵活,常数偏移量可为 32位。
-
七种寻址方式(寄存器相对寻址方式)
2018-01-22 19:12:33操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、D I)的内容和指令中的8位/16位偏移量之和。其有效地址的计算公式如公式所示。 在不使用段超越前缀的情况下,有下列规定: 若... -
寄存器相对寻址方式
2016-08-27 10:35:54操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、D I)的内容和指令中的8位/16位偏移量之和。其有效地址的计算公式如公式所示。 在不使用段超越前缀的情况下,有下列规定: 若有效... -
七种寻址方式(基址加变址寻址方式)
2018-01-22 19:13:08操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容之和。其有效地址的计算公式如公式所示。 在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则缺省的段寄存器为SS... -
七种寻址方式(相对基址加变址寻址方式)
2018-01-22 19:13:34操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值和指令中的8位/16位偏移量之和。其有效地址的计算公式如公式所示。 在不使用段超越前缀的情况下,规定:如果有效地址中... -
基址加变址寻址方式
2016-08-27 10:37:19操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)和一个变址寄存器(SI、DI)的内容之和。其有效地址的计算公式如公式所示。 在不使用段超越前缀的情况下,规定:如果有效地址中含有BP,则缺省的段寄存器为SS... -
相对基址加变址寻址方式
2016-08-27 10:38:22操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值和指令中的8位/16位偏移量之和。其有效地址的计算公式如公式所示。 在不使用段超越前缀的情况下,规定:如果有效地址中... -
汇编寄存器和寻址方式简介
2007-12-12 16:05:001 寄存器简介:1)数据寄存器:AX,BX,CX,DX2)段寄存器 DS CS SS ES FS GS DS 数据段(BX,SI,DI) CS 代码段(IP) SS 堆栈段(SP) ES,FS,GS 附加段3) 变址(指示)寄存器:SI,DI 4) 指针寄存器 SP,BP(用在堆栈段) ... -
基址寻址与变址寻址的区别
2018-12-21 09:31:01说到区别一般来讲都会有共同点。基址寻址与变址寻址都类似于相对寻址,它们的有效地址EA = 基址+指令字中形式地址A。...基址寻址方式适合解决动态定位的问题。在多道程序的环境当中,操作系统根据内存空间的... -
汇编指令中寻址方式汇总
2020-10-21 17:29:42文章目录立即寻址直接寻址寄存器寻址寄存器间接寻址寄存器相对寻址基址加变址寻址相对基址变址寻址 立即寻址 操作数作为指令的一部分直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。 ... -
ARM中的寻址方式
2019-01-11 15:15:28ARM中的寻址方式 立即寻址 寄存器寻址 寄存器移位寻址 寄存器间接寻址 基址变址寻址 多寄存器寻址 块复制寻址 堆栈寻址 相对寻址 立即寻址 操作数本身就在指令中给出 寄存器寻址 利用寄存器中值... -
ARM寻址方式
2020-05-17 22:25:28这里写自定义目录标题ARM处理器的寻址方式1. 立即数寻址2. 寄存器寻址3. 寄存器间接寻址4....也叫立即寻址,是一种特殊的寻址方式,操作数本身包含在指令中,只要取出指令也就取到了操作数。这个操作数叫 -
8086中的七种寻址方式
2016-10-16 12:01:008086/8088有七种基本的寻址方式:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。 其中,后五种寻址方式(即直接寻址、寄存器间接寻址、寄存器相对寻址、基址... -
ARM中常用寻址方式
2012-12-14 14:06:41目前ARM处理器支持9种寻址方式,分别是立即数寻址、寄存器寻址、寄存器偏移寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址、堆栈寻址和块拷贝寻址。 1. 立即数寻址 也叫立即寻址,是一种特殊的... -
8086指令系统和寻址方式&寄存器组
2009-04-15 12:28:008086寄存器组通用寄存器:EAX: (Accumulator) 累加器. 也被IO指令使用.EBX: (base) 计算存储器地址时常用作基址寄存器.ECX: (count) 在...变址寄存器:ESP: (Stack Point) 堆栈指针寄存器. 指示段顶的偏移地址.EBP:... -
8086寻址方式
2016-10-06 11:28:088086 CPU的七种基本的寻址方式 分别是:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址加变址寻址 1. 立即寻址:操作数包含在指令中,是指令的一部分。此时的操作数... -
指令系统和寻址方式
2019-04-24 10:52:41指令:操作码 操作数…操作数 有效地址:操作数的偏移地址 位移量(地址) 基址(基址寄存器中的内容...寄存器寻址方式:操作数在寄存器中 Mov AX,BX 1,2的操作数地址都在代码段 直接寻址方式: Mov AX,[2000H] ...
-
SSM-Mybatis-映射器-SQL元素
-
centos 7 禁用nouveau驱动
-
TensorBoard的使用
-
EasyPlotly:用于在python笔记本中绘制绘图的简单包装器-源码
-
基于Flink+Hudi构建企业亿级云上实时数据湖教程(PC、移动、小
-
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
-
闭包与循环
-
随着社会的进步,交友源码到底还有没有开发市场?
-
ApacheShiro权限框架理论介绍
-
虚拟机联网
-
两个带有尾指针的单循环链表的合并
-
零基础极简以太坊智能合约开发环境搭建并开发部署
-
UsingFFMPEGinCwithQtCreator.pdf
-
如何正确修改标题,如何修改标题不会被降权?
-
多主体并发的集体策略扩散:空间模型与案例研究
-
libFuzzer视频教程
-
2021-03-01
-
选择结构
-
CaaS在微服务开发运维中的最佳实践
-
Vue通过登录状态控制导航栏的显示