首页 > 其他分享 >数据寻址

数据寻址

时间:2024-08-09 22:05:22浏览次数:12  
标签:操作数 EA 地址 寻址 指令 寄存器 数据

- 过程 优点 缺点 执行时访存次数(不考虑取指令)
直接寻址 指令字中的形式地址A就是操作数的真实地址EA,即EA=A。 简单,指令执行阶段仅访问一次主存,不需专门计算操作数的地址。 A的位数决定了该指令操作数的寻址范围。操作数的地址不易修改。 1
间接寻址 指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在的存储单元的地址,也就是操作数地址的地址,即EA=(A) 可扩大寻址范围(有效地址EA的位数大于形式地址A的位数)。便于编制程序(用间接寻址可以方便地完成子程序返回)。 指令在执行阶段要多次访存(一次间址需两次访存,多次寻址需根据存储字的最高位确定几次访存)。 n+1
寄存器寻址 在指令字中直接给出操作数所在的寄存器编号,即EA=R,其操作数在由R所指的寄存器内。 指令在执行阶段不访问主存,只访问寄存器,指令字短且执行速度快,支持向量/矩阵运算, 寄存器价格昂贵,计算机中寄存器个数有限 0
寄存器间接寻址 寄存器R中给出的不是一个操作数,而是操作数所在主存单元的地址, 与一般间接寻址相比速度更快,但指令的执行阶段需要访问主存(因为操作数在主存中)。 - 1
隐含寻址 不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。 有利于缩短指令字长。 需增加存储操作数或隐含地址的硬件。 -
立即寻址 形式地址A就是操作数本身,又称为立即数,一般采用补码形式。 指令执行阶段不访问主存,指令执行时间最短 A的位数限制了立即数的范围。如A的位数为n,且立即数采用补码时,可表示的数据范围为\(-2^{n} - 2^{n}-1\) 0
基址寻址 将基址寄存器(BR)的内容加上指令字中的形式地址A而形成操作数的有效地址,即EA=(BR)+A 便于程序“浮动”,有利于多道程序并发运行 - 1
变址寻址 有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容之和,即EA=(IX)+A,其中IX可以为变址寄存器(专用),也可用通用寄存器作为变址寄存器 在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。还可以扩大寻址范围(变址寄存器的位数大于A的位数) - 1
相对寻址 把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A,其中A是相对与当前PC值的偏移量,可正可负,补码表示。(不能说A是相对于当前指令地址的偏移量) 操作数的地址不是固定的,它随着PC值的变化而变化,且指令地址之间总相差一个固定的偏移量,因此便于程序浮动。相对寻址广泛应用于转移指令 - 1
堆栈寻址 操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址。 - - -

标签:操作数,EA,地址,寻址,指令,寄存器,数据
From: https://www.cnblogs.com/AH20/p/18351578

相关文章

  • Arrays类、Random类和包装类(8大基本数据类型)的用法
    1、Arrays:是java提供专门针对数据做操作的工具类,该类没有构造方法,且方法都是静态的  成员方法:    publicstaticStringtoString(int[]a)将任意一个数组中的所有元素以字符串的形式拼接返回    publicstaticvoidsort(int[]a)冒泡排序  ......
  • Java基础语法:变量与数据类型
    变量1.概念:变量是用来存储数据的命名容器并在程序的不同部分使用它。2.语法:数据类型变量名称=初始值;可以这样理解:**数据类型:**鱼缸**变量名称:**鱼的名字**变量的值:**鱼缸里装的鱼或数量数量数据类型基本数据类型-整型:1.byte:8位,有符号整数(-128到127)2.short:......
  • sql数据库:日期函数
    sql数据库:日期函数日期函数CURDATE()/CURRENT_DATE()返回当前日期SELECTCURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMPCURRENT_TIME()/CURTIME()返回当前时间CURRENT_TIMESTAMP()返回当前日期和时间DATEDIFF(d1,d2)计算日期d1->d2之间相隔的天数SELECTDATE......
  • mysql数据库:字符串函数
    mysql数据库:字符串函数mysql数据库:字符串函数concat(str1,str2,…strn)连接str1,str2,…,strn为一个字符串selectconcat('abc','def')replace(str,a,b)用字符串b替换str中所有出现的字符串ainsert(str,x,y,instr)将字符串str,从索引x开始,y个字符长度的子串替换为i......
  • 微信小程序上传图片链接到MySQL数据库
    我们首先要了解调用微信的api来上传图片他会在本地缓存来生成一个图片链接只能在你上传图片的设备打开当你清缓存之后这个链接也就失效了这个链接发给别人别人看不到图片相当于在同一网域局也“无”法打开这时候我们要借助外力例如引入vantWeapp组件库这个 VantWea......
  • SQL Server数据库Owner导致事务复制log reader job无法启动的解决办法
    问题场景SQLServer事务复制在正常创建发布和订阅之后,logreaderJob启动异常,出现“Theprocesscouldnotexecute‘sp_replcmds’onxxx”等异常日志导致代理服务无法正常启动。 异常现象参考下图,异常日志如下Errormessages:Theprocesscouldnotexecute‘sp_re......
  • 模板 - 数据结构
    链表定义structPeter{ intval; intnxt,pre;}node[M];intidx=0;初始化inlinevoidInit()//head:0;tail:n+1{ node[0]={0,n+1,0}; node[n+1]={0,n+1,0}; return;}在p后插入valinlinevoidinsert(intp,intval){ node[++idx]={val,node[p].nxt,p}; ......
  • 更改数据库实例名(生产勿操作)
    单实例修改实例名单实例的数据库修改SID比较简单,只需要修改pfile相关参数,就可以挂载数据库RAC更改实例名环境说明#集群状态[root@testosa~]#crsctlstatusresource-t--------------------------------------------------------------------------------NAME......
  • Oracle数据库巡检
    数据库巡检列表序号业务系统1主机名2操作系统4单机/RAC4IP地址5地址类型6数据类型7数据库版本8实例名巡检方案检查方面具体检查内容检查标准集群配置集群软件版本集群软件版本要等于或高于DB软件版本集群服务状态各种服务状态(除GSD外)需是ONLINE注:使用asfforrac的环境下......
  • 瞎猫碰到死耗子,安卓nt_qq数据库密钥算法
    这个我实际上弄了很久了,一开始更新的时候,发现数据库操作都是在so里,那时候是在libkernel.so里直接hooksqlcipher的密钥函数拿到的密钥,32位字符串,很容易让人联想到md5,但是没有找到在哪里计算的最近又想着做一下,这时打开数据库的so就变了,这是easyFrida的sofileopen插件hook出来的......