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