📄 pow2.asm
字号:
*****************************************************************************
** Description: pow2() in pow2.c **
** **
** Inputs **
** **
** ar2--Word16 exponent **
** ar3---Word16 fraction **
** **
** Outputs: **
** **
** xar1---Word32 L_x **
** **
** Return value : **
** **
** Attribute : Cycles: Pm: **
** Modified Registers: acc,p,t,xar0,xar1,xar4,xar5 **
** **
** Programmer : YANG zhiwei **
*****************************************************************************
.global _pow2
.ref pow_table
_pow2:
zapa
mpya p,ar3,#32
addl acc,p<<pm ;L_mult (fraction, 32),with overflow control
mov ar0,ah ;ar0 = i = extract_h (L_x)
mov t,#1
asrl acc,t ;L_x = L_shr (L_x, 1)
and acc,#0x7fff
mov ar5,al ;ar5 = a = extract_l (L_x) & (Word16) 0x7fff
movl xar4,#pow_table
mov al,#0
mov ah,*+xar4[ar0] ;ah = table[i]
movl xar1,acc ;xar1 = L_x
inc ar0 ;i = i + 1
sub ah,*+xar4[ar0] ;ah = tmp = sub (table[i], table[i + 1]
mov t,ah
movl acc,xar1 ;acc = L_x
mpy p,t,ar5
subl acc,p<<pm ;acc = L_msu (L_x, tmp, a)
movl xar1,acc
mov al,#30
sub al,ar2 ;al = exp = sub (30, exponent)
mov t,al
movl acc,xar1 ;acc = L_x
asrl acc,t
;bf _line_79,lo,nc
bf _line_79,nc
add acc,#1
_line_79:
movl xar1,acc
lretr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -