1

标题基本就是这样。

我有需要打开和关闭的灯。有一个按钮指示它应该是哪个灯。因此,当按下或未按下按钮时,我会修改一个包含该灯的端口地址的变量。要打开灯,我必须在该地址存储 00 美元。例如:

;**********************************************************
;LED1on subroutine
;
;   This will turn LED 1 on, and then return.

LED1on
        LDAA        #$00        ; Load $00 into accumulator a (the value to turn the light on)
        STAA        $PORTA      ; Store the loaded value into PORTA, PORTA is a MACRO that =$0000

        RTS                     ; Return to sender

所以我想做的是有一个变量,PoSelect = $ 0000。并改用它。

;**********************************************************
;LED1on subroutine
;
;   This will turn LED 1 on, and then return.

LED1on
        LDAA        #$00        ; Load $00 into accumulator a (the value to turn the light on)
        STAA        PoSelect    ; PoSelect is a variable that contains a port address

        RTS

然而,这只是将“累加器 a”的内容存储到变量 PoSelect 中。我想要做的是将“累加器 a”的内容存储到存储在变量 PoSelect 中的地址中。本质上使用变量 PoSelect 就像一个指针。

我怎么做???

4

1 回答 1

2

假设这是 HC11,您可能想要使用索引寻址,例如:

LDX         PoSelect      ; load address from PoSelect to IX register
STAA        0,X           ; store contents of A register to the address in IX
于 2011-09-14T03:35:17.133 回答