6502-sim/test/test.asm
2023-06-15 17:08:20 +00:00

107 lines
1.8 KiB
NASM

;; input
0D ; end of input
B9 06 ; 1721
D3 03 ; 979
6E 01 ; 366
2B 01 ; 299
A3 02 ; 675
B0 05 ; 1456
;; program
; start:
A2 01 ; LDX # 01
A0 01 ; LDY # 01
; loop:
; add16:
18 ; CLC i
B5 00 ; LDA zp,x 00
79 00 00 ; ADC a,y 00
85 AE ; STA zp AE
B5 01 ; LDA zp,x 01
79 01 00 ; ADC a,y 01
85 AF ; STA zp AF
; sub16
38 ; SEC i
A9 E4 ; LDA # E4
E5 AE ; SBC zp AE
D0 09 ; BNE r next
A9 07 ; LDA # 07
E5 AF ; SBC zp AF
D0 03 ; BNE r next
; goto multiply
4C 41 00 ; JMP a multiply
; next
E8 ; INX i
E8 ; INX i
E4 00 ; CPX zp 00
D0 DB ; BNE r loop
A2 01 ; LDX # 01
C8 ; INY i
C8 ; INY i
C4 00 ; CPY zp 00
D0 D3 ; BNE r loop
4C 0D 00 ; JMP a start
; multiply
B5 00 ; LDA zp,x 00
85 AE ; STA zp AE
B5 01 ; LDA zp,x 01
85 AF ; STA zp AF
B9 00 00 ; LDA a,y 00
AA ; TAX i
B9 01 00 ; LDA a,y 01
A8 ; TAY i
A9 00 ; LDA # 00
85 A8 ; STA zp A8
85 A9 ; STA zp A9
85 AA ; STA zp AA
; add16_24 @ 59
18 ; CLC i
A5 A8 ; LDA zp A8
65 AE ; ADC zp AE
85 A8 ; STA zp A8
A5 A9 ; LDA zp A9
65 AF ; ADC zp AF
85 A9 ; STA zp A9
A5 AA ; LDA zp AA
69 00 ; ADC # 00
85 AA ; STA zp AA
E0 00 ; CPX # 00
F0 04 ; BEQ r inc_y ; -> 74
CA ; DEX i
4C 59 00 ; JMP add16_24 ; -> 59
; inc_y
C0 00 ; CPY # 00
F0 05 ; BEQ r end ; -> 7d
CA ; DEX i
88 ; DEY i
4C 59 00 ; JMP add16_24 ; -> 59
; end
38 ; SEC i
A5 A8 ; LDA zp A8
E5 AE ; SBC zp AE
85 A8 ; STA zp A8
A5 A9 ; LDA zp A9
E5 AF ; SBC zp AF
85 A9 ; STA zp A9
; forever:
4C 8a 00 ; JMP a forever ; 8a