汇编语言寻址方式
2015-12-21 12:02
246 查看
很多的汇编指令需要寻址,处理器如何去寻址?有如下几种寻址方法。
一、立即寻址
指令的地址部分存放着数据,也就是包含着常数(寄存器和存储器包含着的叫做变数)。所以在编译领域内常数有时候也叫做立即数。这种寻址方式的好处很明显:可以减少内存的访问次数。但是缺点也很明显:数据长度受限于地址的长度。
二、直接寻址
指令的地址部分直接包含了目标操作数的存储器地址,为了取得操作数必须访问一次存储器。这方法很直接,所以叫做直接寻址。它的缺点就是位数有限带来的地址有限。
三、间接寻址
· 指令的地址部分包含了一个存储器地址,访问这个地址就可以得到全长度的操作数地址。在根据这个全长度地址取得操作数。这方法在实现的过程中常常和内存分页有极大的关联,第一次寻址的绝大多数可用地址被保存在第0页中,所以说涉及缺页的情况仅存在一次。
四、寄存器寻址
指令引用一个寄存器的地址,该寄存器保存着操作数的存储器地址,引用寄存器的位数比较少。这种寻址方式类似于间接寻址。
五、偏移寻址
这种寻址方式结合了直接寻址与寄存器间接寻址,需要两个地址字段,一个指向寄存器,该寄存器按照情况的不同可以保存基地址也可以保存偏移量。而指令的地址段则保存着偏移量或者基地址。
一、立即寻址
指令的地址部分存放着数据,也就是包含着常数(寄存器和存储器包含着的叫做变数)。所以在编译领域内常数有时候也叫做立即数。这种寻址方式的好处很明显:可以减少内存的访问次数。但是缺点也很明显:数据长度受限于地址的长度。
二、直接寻址
指令的地址部分直接包含了目标操作数的存储器地址,为了取得操作数必须访问一次存储器。这方法很直接,所以叫做直接寻址。它的缺点就是位数有限带来的地址有限。
三、间接寻址
· 指令的地址部分包含了一个存储器地址,访问这个地址就可以得到全长度的操作数地址。在根据这个全长度地址取得操作数。这方法在实现的过程中常常和内存分页有极大的关联,第一次寻址的绝大多数可用地址被保存在第0页中,所以说涉及缺页的情况仅存在一次。
四、寄存器寻址
指令引用一个寄存器的地址,该寄存器保存着操作数的存储器地址,引用寄存器的位数比较少。这种寻址方式类似于间接寻址。
五、偏移寻址
这种寻址方式结合了直接寻址与寄存器间接寻址,需要两个地址字段,一个指向寄存器,该寄存器按照情况的不同可以保存基地址也可以保存偏移量。而指令的地址段则保存着偏移量或者基地址。
相关文章推荐
- 谈谈互联网里的各种圈子
- linux-->关机和重启命令
- 17Sports隐私政策
- MD5实现32位加密
- Android Fragment 真正的完全解析(下)
- RHCE 学习笔记(27) grub 和开机排错
- html学习 - 自己主动跳转与自己主动刷新
- 【Ajax】ajax的dataType
- 二维数组查找
- 基本的字符串操作
- 直接修改workspace下的配置文件与tomcat下的文件
- 内存详解--理解 JVM 如何使用 AIX 上的本机内存
- 【示例】以不同的namespace来定位不同的action
- centos7 firewall 开放 ssh端口 22端口 80 端口
- ActiveMQ搭建及使用
- ArcGIS教程:点密度分析的工作原理
- 解决ScrollView嵌套ListView和GridView冲突的方法
- MeasureSpec学习 - 转
- Android的ViewStub理解与用法
- 数据结构——算法之(029)( 字符串原地压缩)