📄 mul32.s
字号:
.text
mpy32s::
mpy32u::
rcall long_prolog
rcall tstzero1 ; this along with next step are optional
breq donemul ; gives slightly early (one loop) exit if multiplier is zero
clr r8
clr r9
clr r10
clr r11
rcall tstzero2 ; this along with next step are optional
breq moveresult ; gives larger early exit if multiplicand is zero
loopbegin:
lsr r19
ror r18
ror r17
ror r16
brcc donebit
add r8,r24
adc r9,r25
adc r10,r26
adc r11,r27
donebit:
lsl r24
rol r25
rol r26
rol r27
rcall tstzero1
brne loopbegin
moveresult:
mov r16,r8
mov r17,r9
mov r18,r10
mov r19,r11
donemul:
rjmp long_epilog
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -