跳到內容

超級任天堂程式設計/乘法

來自 Wikibooks,開放的世界中開放的書本

這裡有一個將 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
華夏公益教科書