13.相对寻址
该寻址仅用于条件转移指令,指令长度为2个字节.第1字节为操作码,第2字节为条件转移指令的
跳转步长.又叫偏移量D.偏移量可正可负,D若为负用补码表示.
指令格式:
操作码 第1字节
偏移量D 第2字节
相对寻址是用本条指令的第1个字节所在地址和偏移量D相加得到有效地址.
由于在实际中,你是用汇编写程序,所以没有必要搞懂其寻址方式,如果你想用机器码写程序
那么你必须搞懂,下面的东西你就必须看.
①负偏移的计算
例如下面的程序
2000:A2 9C LDA #$9C
2002:BD 00 00 LDA $000,X
2005:9D BF 02 STA $02BF,X
2008:CA DEX
2009:D0 ?? BNE $2002
200B:60 RTS
这里在地址2009那里的??就是偏移量,这里我们要跳到地址2002,那么怎么计算出偏移量呢?
方法是: A = (2009 + 1) - 2002 + 1 = 2009 - 2002 + 2 =9
然后 B = 256 - 9 = 247
然后化为16进制形式 B = F7
所以这里 ?? = F7
②正偏移的计算
例如下面的程序
2000: A2 00 LDX #$00
2002: BD 00 00 LDA $0000,X
2005: 9D C0 02 STA $02C0,X
2008: E0 9B CPX #$9B
200A: F0 ?? BEQ $2010
200C: E8 INX
200D: 4C 02 20 JMP $2002
2010: 60 RTS
这里??的计算方法是
A = 2010 - 200A -2 = 4
所以?? = 04