超級任天堂程式設計/乘法
外觀
這裡有一個將 16 位 A 與 8 位 Y 相乘的子例程,其中較低的 16 位結果在 A 中,較高的 8 位結果在 Y 中。
multiplication:
sep #$20
sta $4202
sty $4303
nop
nop
nop
nop
lda $4216
ldy $4217
xba
sta $4202
nop
nop
tya
clc
adc $4216
ldy $4217
bcc carry_bit
iny
carry_bit:
xba
rep #$20
rts
這將使用 Mode-7 暫存器。如果您已經在使用 Mode-7 暫存器,則可以使用此子例程。如果 PPU 當前正在渲染 Mode-7 圖形,這將產生錯誤。
multiplication:
sep #$20
sta $211b
xba
sta $211b
sty $211c
sty $211c
rep #$20
lda $2134
ldy $2136
rts