美文网首页
6502芯片:寻址方式(二)(Addressing Modes)

6502芯片:寻址方式(二)(Addressing Modes)

作者: 苹果王子刘泽庆 | 来源:发表于2021-05-19 21:49 被阅读0次

    相对寻址(Relative )

    相对寻址方式主要用在转移操作指令(如BEQ、BNE等),这些指令包含带符号的8位相对偏移量(如-128127)。当条件为真时,将这个偏移量数据添加到程序计数器(PC)中。由于程序计数器在指令执行过程中每次自增量为2,所以目标指令的有效地址范围在-126+129之间。

     BEQ   LABEL       ;(当零标志位被设置为LABEL时转移)Branch if zero flag set to LABEL
     BNE   *+4         ;(跳过下面2个字节的指令)Skip over the following 2 byte instruction
    

    绝对寻址(Absolute)

    使用绝对寻址的指令需要包含一个完整的16位地址来识别目标位置。

    JMP   $1234       ;(跳转到地址$1234)Jump to location $1234
    JSR   WIBBLE      ;(调用名为WIBBLE的子程序)Call subroutine WIBBLE
    

    X寄存器绝对寻址(Absolute,X)

    使用X寄存器索引进行绝对寻址访问地址的方法是通过指令获取16位地址与X寄存器的中内容累加来计算得到的。例如,当前寄存器X中存储的数据值为$92,然后运行指令STA $2000,X后,累加器中得到的数值为$2000+$92=$2092

    STA   $3000,X     ;(将X寄存器内数值和$3000累加,得到的数值范围在$3000~$30FF之间)Store accumulator between $3000 ~ $30FF
    ROR   CRC,X       ;(将X寄存器内数据右移一位)Rotate right one bit
    

    Y寄存器绝对寻址(Absolute,Y)

    使用Y寄存器索引进行绝对寻址的方法和X寄存器相同,也是将Y寄存器内存储的数据与一个16位地址相加,从而得到需要访问的地址。

     AND   $4000,Y     ;(对一个字节的内存数据执行逻辑与操作)Perform a logical AND with a byte of memory
     STA   MEM,Y       ;(将累加器数据存入内存)Store accumulator in memory
    

    间接寻址(Indirect)

    JMP是6502指令集中唯一一个支持间接寻址的指令 。这个指令中包含一个16位的地址,这个地址是我们要访问的真正目标数据16位内存地址中最低有效字节所在的地址。
    例如:在地址$0120处存储了数据$FC,在地址0121处存储了数据$BA,我们运行JMP ($0120)指令后,则会在BAFC处执行下一条指令。

    JMP  ($FFFC)     ;(强制上电复位)Force a power on reset
    JMP  (TARGET)    ;(通过标记的存储区域跳转)Jump via a labelled memory area
    

    索引间接寻址(Indexed Indirect)

    索引间接寻址通常与保存在零页上的地址表一起使用。从指令中获取表的地址,并向其添加X寄存器(零页循环),以给出目标地址的最低有效字节的位置。

    LDA   ($40,X)     ;(通过间接方式从内存中加载一字节数据)Load a byte indirectly from memory
    STA   (MEM,X)     ;(通过间接方式将累加器数据存入内存)Store accumulator indirectly into memory
    

    间接变址寻址(Indirect Indexed)

    间接变址寻址是6502上最常用的间接模式。在指令中包含16位地址的最低有效字节的零页位置。Y寄存器被动态添加到这个值中,以生成操作的实际目标地址。

     LDA   ($40),Y     ;(通过间接方式从内存中加载一字节数据)Load a byte indirectly from memory
     STA   (DST),Y     ;(通过间接方式将累加器数据存入内存)Store accumulator indirectly into memory
    

    相关文章

      网友评论

          本文标题:6502芯片:寻址方式(二)(Addressing Modes)

          本文链接:https://www.haomeiwen.com/subject/lwesjltx.html