指令寻址方式总结 您所在的位置:网站首页 5h思维方式 指令寻址方式总结

指令寻址方式总结

2023-09-22 05:35| 来源: 网络整理| 查看: 265

指令寻址方式总结 引言指令编码格式寻址方式 指令寻址数据寻址立即(数)寻址直接寻址寄存器直接寻址间接寻址寄存器间接寻址隐含寻址堆栈寻址相对寻址基址寻址变址寻址 小结练习

引言

在这里,主要是要说明什么是寻址方式。以及每一种CPU为什么使用这样的寻址方式。在说明什么是寻址方式之前,首先需要了解指令的构成,或者说指令的编码格式。

指令编码格式

一条指令(指的是机器码)由操作码(opcode)和操作数(operand)构成。操作数可以是1个,也可以是多个,甚至可以没有。操作码则是每一条指令都必须有。操作码表示该指令要做什么动作,例如跳转,加减等等。操作数则表示操作对象,操作数可能还会分为目的操作数和源操作数。操作数当然是一个数字,该操作数可以由多种来源,例如寄存器,存储器或者立即数。 本节介绍的处理器的寻址方式就是讨论指令中操作数的来源问题。

在这里插入图片描述 每一条指令(指的是机器码)一般对应一条汇编语句(指的是使用汇编语言书写的一条指令),所以我们一般就将指令等同于汇编语言,没怎么关心指令的概念。在学习寻址方式时,更加关注的是指令本身。也有一条汇编语句对应多条指令的情况,在编译时,汇编器会将该汇编语句转化成对应的多条指令。

寻址方式

寻址模式是大多数中央处理器 (CPU)设计中的指令集架构的一个方面。 在给定指令集架构中定义的各种寻址模式决定了该架构中的机器语言指令如何识别每个指令的操作数。寻址模式指定如何通过使用寄存器中保存的信息和/或机器指令中包含的常量或其他地方包含的常量来计算操作数的有效存储器地址。 —— 《维基百科》,词条翻译自英文,译者本人 简单来说寻址方式就是“CPU找数据/指令”的方式。

指令寻址

在这里插入图片描述

数据寻址 立即(数)寻址

指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即寻址。立即寻址方式的特点是指令执行时间很短,因为它不需要访问内存取数,从而节省了访问内存的时间。 [2] 如:MOV AX,#5678H 注意:立即数只能作为源操作数,不能作为目的操作数。 操作数直接放在指令中,作为指令的一部分存放在代码段中。 在这里插入图片描述

直接寻址

直接寻址是一种基本的寻址方法,其特点是:在指令格式的地址的字段中直接指出操作数在内存的地址。由于操作数的地址直接给出而不需要经过某种变换,所以称这种寻址方式为直接寻址方式。在指令中直接给出参与运算的操作数及运算结果所存放的主存地址,即在指令中直接给出有效地址 操作数在内存中,将操作数的有效地址(EA)直接放在指令中, 形式:[操作数地址]

MOV AX,[2345H] ; 将地址 DS:[0001 2345H] 所指向的数据放入目标寄存器中 MOV ES:[5678H], BL ; 源操作数是寄存器寻址,目的寄存器是直接寻址 通常可见到这样的指令形式: MOV AX, num 其中,num表示的是高级语言中的变量名,比如C语言中 short num = 12H。则上述指令相当于将 num 的值 12H 放入目标寄存器AX中

在这里插入图片描述

寄存器直接寻址

操作数放在寄存器中,寄存器标识作为指令的一部分。CPU从寄存器中获取数据比内存中快的多,所以寄存器寻址是一种非常常见的寻址方式。 在这里插入图片描述

间接寻址

指令地址字段中的形式地址不是操作数的真正地址,而是操作数地址的指示器。 在这里插入图片描述 在这里插入图片描述 注意:多重间接寻址一般不建议使用,会大量耗费CPU资源。

寄存器间接寻址

操作数在内存中,将操作数的有效地址(EA)放到寄存器中 在这里插入图片描述 在这里插入图片描述

隐含寻址

这种类型的指令,不是明显地给出操作数的地址。而是在指令中隐含着操作数的地址。例如,单地址的指令格式,就不明显地在地址字段中指出第2操作数的地址,而是规定累加寄存器AC作为第2操作数地址。指令格式明显指出的仅是第1操作数的地址D。因此,累加寄存器AC对单地址指令格式来说是隐含地址。 在这里插入图片描述

堆栈寻址

堆栈寻址堆栈是一个按特定顺序进行存取的存储区,操作顺序为“后进先出” 。 堆栈寻址是隐含的,它使用一个专门的寄存器(堆栈指针) 指向一块存储区域(堆栈),指针所指向的存储单元即是堆栈的栈顶。 在这里插入图片描述

相对寻址

相对寻址是把程序计数器PC的内容加上指令格式中的形式地址D而形成操作数的有效地址。程序计数器的内容就是当前指令的地址。“相对”寻址,就是相对于当前的指令地址而言。采用相对寻址方式的好处是程序员无须用指令的绝对地址编程,因而所编程序可以放在内存的任何地方。 [2] 指令格式:MOV AX,[BX+1200H] 操作数物理地址PA=(DS/SS)*16H+EA EA=(BX/BP/SI/DI)+(6/8)位偏移量Disp 对于BX,SI,DI寄存器来说段寄存器默认为DS,对于BP来说,段寄存器默认为SS 在这里插入图片描述

基址寻址

在基址寻址方式中将CPU中的基址寄存器的内容,加上变址寄存器的内容而形成操作数的有效地址。基址寻址的优点是可以扩大寻址能力,因为与形式地址相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。 在这里插入图片描述 在这里插入图片描述

变址寻址

变址寻址方式与基址寻址方式计算有效地址的方法很相似,它把CPU中某个变址寄存器的内容与偏移量D相加来形成操作数有效地址。 但使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律变化。为此,必须使变址寄存器的内容实现有规律的变化(如自增1、自减1、乘比例系数)而不改变指令本身,从而使有效地址按变址寄存器的内容实现有规律的变化。 在这里插入图片描述 在这里插入图片描述

小结

在这里插入图片描述

练习

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有