计算机中十类指令寻址方式总结
数据寻址方式
数据寻址有多种,需要在指令中明确指出采用哪一种寻址方式,可以专门设置一个寻址方式特征字段,或纳入地址码中。
形式地址 AAA: 指令字中的地址
有效地址 EAEAEA: 操作数的真实地址
有效地址由形式地址根据寻址方式来确定。
在大多数机器中,指令字长 = 存储字长 = 机器字长。
一、立即寻址
又称为立即数寻址,即指令中的形式地址部分不是一个操作数的地址,而是操作数本身,因此该指令的执行过程不需要寻址。
如指令 "MOVMOVMOV AX,20HAX, 20HAX,20H",将 20H20H20H 放入 AXAXAX 寄存器中,其中立即数可正可负,负数需要用补码来表示。
特点
- 立即寻址的指令执行阶段不访存
- A 的位数限制了立即数的范围
二、直接寻址
指令中的形式地址部分即为有效地址,即 EA=AEA = AEA=A。
例如指令 "MOVMOVMOV AX,[20H]AX, [20H]AX,[20H]",即是将 [20H] 地址中的数据传输到 AX 寄存器中。
特点
- 执行阶段访问一次存储器
- A 的位数限制了该指令操作数的寻址范围
- 操作数的地址不易修改
三、隐含寻址
指令中不直接给出操作数地址,操作数地址通常隐含在操作码或某个(约定)寄存器中。
如 ADDADDADD 操作,即是默认另一个操作数在 ACCACCACC 中。将 AAA 地址中的数取出与 ACCACCACC 中的数进行加法运算。
四、间接寻址
指令中的形式地址不是操作数的地址,而是 “操作数地址的地址”。
其中在多次间址时,需要查看数据单元格中的第一位数据,如果为 111 则表示继续间址,如果为 000 则为真正地址。
特点
- 可以扩大寻址范围
- 便于编制转移程序
JMPJMPJMP @A@A@A 指令,表示跳转到 AAA 单元中所指示的地址,为间接寻址。正因为这条间址指令,我们转入子程序时只需修改 A 单元中数据,即可实现从子程序再跳转回主程序的功能。
五、寄存器寻址
指令中的形式地址直接指出寄存器的编号,操作数存储于寄存器中,即 EA=RiEA=R_iEA=Ri,有效地址即为寄存器编号。
如 "MOVMOVMOV AX,BXAX, BXAX,BX" 指令,即是将 BXBXBX 寄存器中的数据送到 AXAXAX 中。
特点
- 执行阶段不访存,只访问寄存器,执行速度快
- 寄存器个数有限,可缩短指令字长
六、寄存器间接寻址
指令中的形式地址为寄存器的编号,寄存器的内容是操作数的有效地址。
EA=(Ri)EA = (R_i)EA=(Ri),有效地址在寄存器中。
如指令 "MOVMOVMOV AX,[BX]AX, [BX]AX,[BX]",就是根据 BXBXBX 寄存器中的地址,去主存中访问对应数据,并将数据存入 AXAXAX 寄存器中。
特点
有效地址在寄存器中,操作数在存储器中,执行阶段访存便于编制循环程序。
- 可以访存一次,就将寄存器数值加1,实现类似于数组的访问。
七、基址寻址
指令中的形式地址与基址寄存器内容之和为有效地址。
- 采用专用寄存器作为基址寄存器(隐式)
- 采用通用寄存器作为基址寄存器(显式)
专用寄存器基地寻址
EA=(BR)+AEA=(BR)+AEA=(BR)+A,其中 BRBRBR 为基址寄存器
通用寄存器基址寻址
需要给出寄存器编号作为基址寄存器。
- 可指定由哪个通用寄存器作为基址寄存器。
- 在程序的执行过程中 R0R_0R0 内容不变,形式地址 AAA 可变。
特点
- 可扩大寻址范围
- 有利于多道程序
- 将程序开头地址定位于某个寄存器中,即可实现更换通用寄存器,即实现程序切换。
- 基址寄存器内容由操作系统或管理程序确定
八、变址寻址
指令中的形式地址与变址寄存器内容之和为有效地址。
EA=(IX)+AEA = (IX) + AEA=(IX)+A,与基地寻址非常相似。唯一的不同点在于基址寄存器中的值由操作系统或管理程序决定,而 IX 的内容由用户指定。
特点
- 可以扩大寻址范围
- 由于 IXIXIX 的内容由用户指定,因此在程序执行过程中,IXIXIX 内容可变,可以用于设计处理一些数组问题。
九、相对寻址
有效地址为程序计数器 PCPCPC 的值与形式地址之和。
EA=(PC)+AEA = (PC) + AEA=(PC)+A,AAA 的位数决定操作数的寻址范围,可编写浮动程序(程序放哪都能执行)。
十、堆栈寻址
堆栈有两个操作,分别是 PUSHPUSHPUSH(压栈) 与 POPPOPPOP(弹栈)。进栈与出栈的操作分别由 SPSPSP 指针的加减完成。
参考资料: MOOC
计算机中十类指令寻址方式总结相关推荐
- 计算机中十二种常用密码的破解方法(转)
计算机中十二种常用密码的破解方法(转)[@more@] 在日常操作中,我们经常要输入各种各样的密码,例如开机时要输入密码,QQ时也要先输入密码,假如你忘记了这些密码,就有可能用不了机器.打不开文件.不 ...
- 计算机中十六乘十六进制怎么算,16进制的乘法怎么算
满意答案 momoko625 2013.04.23 采纳率:59% 等级:12 已帮助:14443人 原码乘法计算时只计算原码绝对值部分,结果的符号是根据符号位通过异或来求得. http://2 ...
- 福建省计算机中职类高考400分多少名,重要参考!福建高职分类各院校近两年招生计划及分数线汇总来了,快收藏...
昨天,福建省教育考试院公布了2021年高职分类的切线, 分数线公布后,有什么信息是我们需要了解的?对比去年又有什么新变化?一起来了解一下! 一.近两年分数线对比 1.专科分数线保持,本科分数线上涨 对 ...
- 计算机中cmd的指令如何停下,怎么样用CMD命令实现电脑倒计时和快捷键关机操作...
在日常使用电脑的过程中,有时候需要使用到倒计时和快捷键关机的CMD命令操作,对此操作很多用户没有使用过,所以也就不会使用.但是鉴于这个功能的实用性,今天本文就给大家详细介绍下如何用CMD命令实现倒计时 ...
- or1200处理器的异常处理类指令介绍
下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 我们在计算机体系结构的学习中知道:中断实质上包含由外部事件引起的硬中断(又称外中断)和由内部预先安排的特定指令或内部异常引起的软中断 ...
- 计算机cache高速缓存的原理,在计算机中,高速缓存(Cache)的作用是____。
答案 查看答案 解析: [解析题]计算机病毒的传播途径可以是( ? ? ? ? ). [解析题]把自己的构想和任务方案存入计算机文件,或者在床上等可看得见的地方挂着,是督促自己采取积极行动的有效方法之 ...
- 计算机中cpu是不是内存,电脑卡是cpu还是内存
大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 电脑卡和CPU.内存都有关系,可能是CPU性能过低,需要更换性能更好的CPU.也可能是内存太小,需要升级内存. 中央处理器(CPU ...
- 计算机中最基础 最重要的部件是,电脑最重要的部件是什么
电脑最重要的部件是CPU:CPU作为计算机系统的运算和控制核心,是信息处理.程序运行的最终执行单元:CPU是电子计算机的主要设备之一,电脑中的核心配件,其功能主要是解释计算机指令以及处理计算机软件中的 ...
- 计算机中的流水线技术到底是个啥?
写在前面 流水线技术是计算机中的一种相当重要的技术.简单的说,流水线技术的出现使得计算机能够支持并行计算,能够并行执行任务.尽管流水线技术非常重要,但是很多小伙伴对流水线技术还是一知半解,甚至很多小伙 ...
- 计算机组成原理指令寻址方式,计算机组成原理第四章第4讲指令和数据的寻址方式.ppt...
<计算机组成原理第四章第4讲指令和数据的寻址方式.ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第四章第4讲指令和数据的寻址方式.ppt(51页珍藏版)>请在装配图网 ...
最新文章
- 调用script方法_自己撸一个代码生成器输入参数和方法
- 每日一皮:当两个程序员结婚后...
- python 做个创越火线挂_一日一技:用Python做个能挂墙上的大钟表
- 从难以普及的数据增强技术,看AI的性价比时代
- 亚马逊抢甲骨文的 Java 饭碗,推出 Corretto
- python中的字典和集合_Python 字典和集合
- Java面试详解(2020版):500+ 面试题和核心知识点详解
- C语言——迭代法求a的平方根——更新01
- ES6新语法--箭头函数
- echarts固定柱子宽度(barWidth)
- POI动态下载Excel模板案例
- 计算机基础考试题库(含答案)
- ResourceBundle使用详解
- python入门汇总
- 不同网段怎么ping通
- html5 扩展 cs6,Dreamweaver CS6提高了HTML5工具的效率
- python只保留大写字母_python 将文件中除保留字外的小写字母换成大写字母(转换后可运行)...
- PredRNN++:网络结构和代码解读
- 基于JS实现购物车图片局部放大预览效果
- 苹果笔记本学php,Mac_Mac怎么连接校园网?苹果电脑系统设置可实现连接校园网方法步骤介绍, 在家使用Mac系统的电脑, - phpStudy...