指令系统——数据寻址(2)(详解)
一、总览
二、偏移寻址
- 基址寻址:将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,而形成操作数的有效地址,即EA=(BR)+A。
注:基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。
当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由操作系统确定。
优点:可扩大寻址范围(基址寄存器的位数大于形式地址A的位数);用户不必考虑自己的程序存于主存的哪一空间区域,故有利于多道程序设计,以及可用于编制浮动程序。
- 变址寻址
变址寻址:有效地址EA等于指令字中的形式地址A与变址寄存器lX的内容相加之和,即EA=(IX)+A,其中X为变址寄存器(专用),也可用通用寄存器作为变址寄存器。
注:变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(作为偏移量),形式地址A不变(作为基地址)。
优点:可扩大寻址范围(变址寄存器的位数大于形式地址A的位数);在数组处理过程中,可设定A为数组的首地址,不断改变变址寄存器lX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。
- 相对寻址
相对寻址:把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A,其中A是相对于当前指令地址的位移量,可正可负,补码表示。
优点:操作数的地址不是固定的,它随着PC值的变化而变化,并且与指令地址之间总是相差一个固定值,因此便于程序浮动。相对寻址广泛应用于转移指令。
相对寻址举例:
某机器指令字长为16位,主存按字节编址,取指令时,每取一个字节PC自动加1。当前指令地址为2000H,指令内容为相对寻址的无条件转移指令,指令中第一个字节为操作码,第二个字节为形式地址,当前形式地址为40H。
(1)求取指令后及指令执行后PC内容。
(2)若要求转移到1F00H,求形式地址的内容。
三、总结
指令系统——数据寻址(2)(详解)相关推荐
- [转载]用数据说话 Pytorch详解NLLLoss和CrossEntropyLoss
[转载]用数据说话 Pytorch详解NLLLoss和CrossEntropyLoss https://www.cnblogs.com/jiading/p/11979391.html NLL_Los ...
- Python数据科学-技术详解与商业实践视频教程
Python数据科学-技术详解与商业实践(八大案例) 网盘地址:https://pan.baidu.com/s/13QrR_5Er6LgWCWzSb7qOrQ 提取码:s7vw 备用地址(腾讯微云): ...
- android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】
本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private vo ...
- java编程数据溢出问题_Java数据溢出代码详解
Java数据溢出代码详解 发布时间:2020-10-05 15:08:31 来源:脚本之家 阅读:103 作者:Pony小马 java是一门相对安全的语言,那么数据溢出时它是如何处理的呢? 看一段代码 ...
- java 分割数据_java 分割csv数据的实例详解
java 分割csv数据的实例详解 实际需要解析的csv中很多都是从excel中转过来的,数据中本身包含了逗号的数据导致split的过程中发现数据对不上,因此,基于这种特性,重新写了一个csv数据的分 ...
- c语言 recv_sin,C++_C语言中经socket接收数据的相关函数详解,recv()函数:
头文件:#incl - phpStudy...
C语言中经socket接收数据的相关函数详解 recv()函数:头文件: #include #include 定义函数: int recv(int s, void *buf, int len, uns ...
- 负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解
负载均衡原理与实践详解 第五篇 负载均衡时数据包流程详解 系列文章: 负载均衡详解第一篇:负载均衡的需求 负载均衡详解第二篇:服务器负载均衡的基本概念-网络基础 负载均衡详解第三篇:服务器负载均衡的基 ...
- python数据科学课后答案_Python数据科学-技术详解与商业实践-第五讲作业
作者:Ben,著有<Python数据科学:技术详解与商业实践>.<用商业案例学R语言数据挖掘>.<胸有成竹-数据分析的SAS EG进阶>作者.2005年进入数据科学 ...
- 阿里云物联网平台-数据解析脚本详解
阿里云物联网平台-数据解析脚本详解 var COMMAND_REPORT = 0x00; //属性上报. var COMMAND_SET = 0x01; //属性设置. var COMMAND_REP ...
- Discuz3.数据库数据表字典详解(完整版)
Discuz3.数据库数据表字典详解(完整版) 转自:https://discuzt.cr180.com/discuzcode-db.html pre_common_admincp_cmenu后台菜单 ...
最新文章
- FuseSeg:用于自动驾驶领域的RGB和热成像数据融合网络
- 多用户使用一台计算机可设置,《计算机应用基础》试卷(A)
- linux c++ 函数 查看,在C++ man pages中查询C++的函数
- 326. Power of Three
- 微软或在开发自己的 CPU、TikTok 发布电视版本、索尼撤下《赛博朋克2077》并为玩家退款|Decode the Week...
- vs code打开文件显示的中文乱码
- 第二篇:Dapper中的一些复杂操作和inner join应该注意的坑
- 使用SpringBoot yml配置文件
- 面试官系统精讲Java源码及大厂真题 - 48 一起看过的 Java 源码和面试真题
- Java对象运行时在内存中的情况
- java 流 存放在哪_java IO流学习
- c语言操作access数据类型,2016计算机二级《ACCESS》基本操作题及答案
- 通过channel进行goroutine间的通信
- pppoe拨号中的server name和service name
- 集合字典序(优先队列)
- 哪款软件可以测试网速上行,怎么测试自己宽带的上行速度(查询上下行宽带方法)...
- mysql proxy maxscale_maxscale参数配置
- 电子合同助力“在线教育”高效发展
- android 华为 imei,华为手机EMUI系统查看S/N IMEI/MEID 产品识别码的方法
- 网站加速教程--提升性能的同时节约10倍成本
热门文章
- kafka 日志相关配置
- ultilize什么意思_ultilize是什么意思
- Djang重新整理migrations,解决:Django Table xxx already exist
- MySQL数据库重点概要总结
- php 获取delete蚕丝_php结合Redis实现100万用户投票项目,并实时查看到投票情况的案例...
- ioread32函数有关知识
- C# Socket 编程详解
- android:layout 冒号,android-json解析及简单例子(补汉6个汉字字).pdf
- 一些自己编写的字符串操作函数
- 百度前端技术学院,学习第一天。