标题基本上就是它。
我有需要打开和关闭的灯。有一个按钮,指示它应该是哪个灯。因此,当按下或未按下按钮时,我修改包含该灯的PORT地址的变量。为了打开灯,我必须在该地址存储$ 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就像一个指针。
我该怎么做?
答案 0 :(得分:2)
假设这是HC11,您可能希望使用indexed addressing,例如:
LDX PoSelect ; load address from PoSelect to IX register
STAA 0,X ; store contents of A register to the address in IX