RosettaCodeData/Task/Function-definition/6502-Assembly/function-definition-2.6502

23 lines
488 B
Plaintext

; https://skilldrick.github.io/easy6502/
; Multiplies A by X
define memory 1040
JMP MAIN
MULTIPLY: STA memory ; memory = A
BEQ MUL_END ; A = 0
TXA ; A = X
BEQ MUL_END ; X = 0 -> A = 0
LDA memory
CLC
MUL_LOOP: DEX ; X -= 1
BEQ MUL_END ; X = 0 -> A = A * X
ADC memory ; A += memory
JMP MUL_LOOP
MUL_END: RTS
MAIN: LDA #50
LDX #5
JSR MULTIPLY