📄 idigitmultadd.s
字号:
; Thomas Pfahler, Nov 21 1997; DigitType DigitMultAdd (prod, a, b, carry); $26, $25, $24, $23; DigitType *prod, a, b, carry;;{; *prod=LOW(a*b + carry);; return HIGH(a*b + carry);;} .CODE .EXPORT DigitMultAddDigitMultAdd .PROC .CALLINFO FRAME=0,NO_CALLS .ENTRY stw %r25,-16(0,%r30) fldws -16(0,%r30),%fr9L ; a -> %fr9L stw %r24,-16(0,%r30) fldws -16(0,%r30),%fr9R ; b -> %fr9R xmpyu %fr9L,%fr9R,%fr8 ; a*b -> %fr8 fstws %fr8R,-16(0,%r30) ldw -16(0,%r30),%r19 ; lo(prod) -> %r19 addl %r19,%r23,%r28 ; lo(prod) + c -> %r28 stw %r28,0(0,%r26) ; store res. fstws %fr8L,-16(0,%r30) ldw -16(0,%r30),%r25 ; hi(prod) -> %r25 comclr,<<= %r23,%r28,0 ; c = res < c addi,tr 1,%r25,%r28 ; either %r28 = %r25 + c ... bv 0(%r2) copy %r25,%r28 ; or %r28 = %r25 .EXIT .PROCEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -