在这里,主要是要说明什么是寻址方式。以及每一种CPU为什么使用这样的寻址方式。在说明什么是寻址方式之前,首先需要了解指令的构成,或者说指令的编码格式。
指令编码格式
一条指令(指的是机器码)由操作码(opcode)和操作数(operand)构成。操作数可以是1个,也可以是多个,甚至可以没有。操作码则是每一条指令都必须有。操作码表示该指令要做什么动作,例如跳转,加减等等。操作数则表示操作对象,操作数可能还会分为目的操作数和源操作数。操作数当然是一个数字,该操作数可以由多种来源,例如寄存器,存储器或者立即数。本节介绍的处理器的寻址方式就是讨论指令中操作数的来源问题。
每一条指令(指的是机器码)一般对应一条汇编语句(指的是使用汇编语言书写的一条指令),所以我们一般就将指令等同于汇编语言,没怎么关心指令的概念。在学习寻址方式时,更加关注的是指令本身。也有一条汇编语句对应多条指令的情况,在编译时,汇编器会将该汇编语句转化成对应的多条指令。
寻址方式
指令编码中,用来说明操作数来源和操作数构成存储器地址的方法,叫做寻址方式,英文为Addressing Mode。寻址方式是由处理器的指令编码直接决定的,是处理器体系架构的一部分,所以我们一般叫做xxx处理器寻址方式,例如8086寻址方式,MIPS寻址方式。寻址方式是学习任何一种汇编语言的