📄 idigitaddsubmult.s
字号:
! Integer Version 2.0, RD, 11.2.93 idigitaddsubmult.s! Integer Version 2.1, RD, 13.7.93 idigitaddsubmult.s#include <config.h> .seg "text" ! [internal] .global DigitAddDigitAdd: mov %o0,%o4 addcc %o3,%o1,%o1 addx %g0, %g0, %o0 addcc %o1,%o2,%o1 addx %o0, %g0, %o0 retl st %o1,[%o4] .global DigitSubDigitSub: mov %o0,%o4 subcc %o1,%o2,%o2 addx %g0, %g0, %o0 subcc %o2,%o3,%o1 addx %o0, %g0, %o0 retl st %o1,[%o4] .global DigitMultDigitMult: mov %o2, %y sra %o1, 31, %o5 ! %o5 = (%o1 < 0 ? %o2 : 0) and %o2, %o5, %o5 andcc %g0, %g0, %o4 ! reset N and V mulscc %o4, %o1, %o4 ! first iteration of 33 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %g0, %o4 rd %y, %o1 ! prod (low) st %o1, [%o0] retl add %o4, %o5, %o0 ! <high> = %o4 + %o5 (sign correction) .global DigitMultAddDigitMultAdd: mov %o2, %y andcc %g0, %g0, %o4 ! reset N and V nop nop mulscc %o4, %o1, %o4 ! first iteration of 33 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %o1, %o4 mulscc %o4, %g0, %o4 tst %o1 ! sign correction bge Lpm1 mov %o0, %o5 add %o4, %o2, %o4 ! sign correctionLpm1: rd %y, %o0 ! prod (low) addcc %o0, %o3, %o1 ! prod + carry addx %o4, %g0, %o0 retl st %o1,[%o5] .seg "data" ! [internal]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -