简介
变址绝对寻址,也称绝对变址寻址。可分为绝对X变址寻址和绝对Y变址寻址,指的是一种分别使用X或Y寄存器进行变址的一种寻址方式,操作数的地址由绝对地址分别再加上X或Y寄存器中的数值构成。
说明1.绝对X变址寻址方式和绝对Y变址寻址方式的指令均为三字节;
2.同一条X变址指令或Y变址指令,将因X或Y的取值不同而改变了操作数的地址(这就是把X或Y称为称为变址寄存器的原因)。2
举例汇编格式: 操作码 Adr 16, X
操作码 Adr 16, Y
例子: LDA $E500,X1
相关6527CPU属于65系列,它共有12种寻址方式,绝对变址寻址就是其中的一种。2除去绝对X、Y变址寻址,其他10种包括:
①****立即寻址
在指令的操作对象部分直接给出了操作数本身的寻址方式称为立即寻址方式,这时的操作数称为立即数。
说明:
立即寻址方式的指令,常用于设置程序所需要的各种固定初值、累加器中的内容与某一个立即数相加减、逻辑运算以及A、X、Y寄存器中的内容与立即数比较。
立即寻址方式的指令长度均为两个字节。
立即寻址方式指令的操作数部分是操作数本身,不是地址。
立即数为两位16进制数,取值范围为00~FFH。
②绝对寻址
操作数部分的内容,直接给出操作数在内存中实际地址的寻址方式,称为绝对寻址。
说明:
绝对寻址方式的指令的长度都为三个字节。
绝对寻址方式使用两个字节存放操作数的地址,取值范围为0000~FFFFH,故可以访问64K存储器中的任何一个地址。
绝对寻址方式指令中地址的表示顺序如下:在机器吗指令中,地址的低位在前、高位在后;但在汇编指令中地址的高位在前、低位在后。
③零页寻址
一般把64K存储器的空间以256个字节为单位划分为若干段,每段称为一页。页号从0页开始。零页存储器的地址范围就是$0000~$00FF,对于零页单元来说,由于高位地址恒等于0,故零页单元的存储器地址一般由一个字节表示。
说明:
零页寻址方式均为两字节指令,写成机器码时,第一个字节是操作码,第二个字节为操作数的零页地址。
由于零页中操作数的地址仅限于零页范围(0000~00FF),故在表示操作数的地址码时,不必给出地址码的高位,因而指令长度可以减少一个字节。
零页操作指令占用字节少,执行速度快,在节省内存和缩短运行时间方面具有无比的优越性。
④隐含寻址
操作数为操作码隐含,不需要在指令中指出操作数的一种寻址方式。
说明:
隐含寻址方式的指令均为单字节指令,操作数已隐含在操作码中。
隐含寻址方式的操作仅在累加器A、变址寄存器XY、堆栈寄存器S、标志寄存器P中进行,不能对存储器进行操作。
隐含寻址方式除对寄存器操作外还有三条指令用于中断返回、子程序调用返回和空操作。
因隐含寻址方式指令为一个字节,故占用内存少、执行速度快,编程效率高。
⑤累加器寻址
操作数在累加器A中的寻址方式称为累加器寻址
说明:
累加器寻址方式指令均为单字节指令
由于累加器指令寻址方式指令的操作约定在累加器中,不需要单独指出操作数的地址,即操作数地址隐含在操作码中。
指令占用空间少、执行速度快、编程效率高
⑥零页变址寻址
使用变址寄存器对零页进行变址寻址的方式称为零页变址寻址。零页变址寻址有两种方式:以变址寄存器X变址的称为零页X变址寻址;以变址寄存器Y变址的称为零页Y变址寻址。
说明:
零页变址寻址方式的指令均为两个字节。
零页变址寻址与绝对变址寻址的含义基本相同,仅在寻址范围上有差异。前者仅限于零页寻址,后者可达64K字节。
零页变址寻址只能产生零页地址,超过十六进制两位数的部分应丢掉。
零页变址寻址方式指令操作后,对标志寄存器各位的影响情况与绝对变址寻址方式相同。
⑦间接寻址
在指令操作数部分,若给出的是操作数的间接地址,那么这种寻址方式就称为间接寻址。在间接寻址指令中,操作数部分给出的是操作数所在地址的地址的低位。也就是说,在操作码后面两个字节中的地址,并不是有效地址,而是有效地址的低位存储单元,有效地址的高位则在低位单元的下一个单元。因此,间接寻址的有效地址必须经过两次寻址才能找到。间接寻址方式的指令只有1条,即无条件转移指令。
⑧相对寻址
以指令当前的地址为参照点,向前、向后跨越一定偏移量的寻址方式称为相对寻址。
说明:
相对寻址指令均为两个字节。
相对寻址只适用于条件转移指令。
相对寻址指令的操作数部分是转移指令的跳转步长。
相对寻址指令中,操作数的实际地址是取出本指令后的PC值和偏移量之和。
偏移量为负数时,要用补码表示。
简化实际编程操作,书写相对寻址指令的助记符时,用转移后的目标地址代替偏移量。
⑨先变址间接寻址
先变址间接寻址方式,是先以变址寄存器X变址,然后再进行间接寻址的,实际上它是零页X变址和间接寻址两种方式的结合,因此一般称为先变址间接寻址。简称:X变间寻址。首先它对零页基地址进行X变址,求得零页地址IND+X;然后,再以IND+X作为间接地址,经两次间接寻址找到操作数的有效地址。其中第一次对IND+X间址得到的是操作数有效地址的低八位,第二次对IND+X+1间址得到操作数有效地址的高八位。
说明:
X变间寻址方式的指令均为两字节指令。
变址寄存器只能使用X寄存器。
先做X零页变址,再两次间接寻址,才能得到操作数的有效地址。
⑩后变址间接寻址
后变址间接寻址方式,先在零页间接寻址,然后用Y变址寻址,实际上它是零页间接寻址和绝对Y变址相结合的一种寻址方式。一般称为后变址Y间接寻址方式,简称Y间变寻址。Y间变寻址方式的操作是:首先,在零页进行间接寻址,取得一个16位的基地址(IND),然后再进行绝对Y变址寻址。即以基地址加上Y变址寄存器中的内容,得到操作数的实际存放地址。所以这种寻址方式称为先间接寻址后绝对Y变址。
说明:
Y间接寻址方式的指令均为两字节指令。
变址寄存器只能使用Y寄存器
寻址方式是先在零页中作间接寻址,然后再进行绝对Y变址寻址。2