📄 bexp.asm
字号:
;***********************************************************
; Version 2.20.01
;***********************************************************
;*********************************************************************************
; Function: bexp
; Description: block exponent
;
; Copyright Texas instruments Inc, 1998
;-----------------------------------------------------------------------------
; Revision History:
; 1.00, A. Aboagye, 8/31/98 - Original release.
; 2.20, Li Yuan, 9/07/01 - fixed temp varible location.
;
;********************************************************************************
.mmregs
.if __far_mode
offset .set 1 ; far mode uses one extra location for ret addr ll
.else
offset .set 0
.endif
.asg *sp(0), one
.asg *sp(1), temp
.asg *sp(5+offset), arg_n
.asg ar2, in_ptr
.asg ar3, out_ptr
.def _bexp
.text
_bexp:
PSHM ST0 ; 1 cycle
PSHM ST1 ; 1 cycle
RSBX OVA ; 1 cycle
RSBX OVB ; 1 cycle
frame #-2
nop
ld arg_n, B
sub #1, B
stlm B, brc
st #1h, one
stlm A, in_ptr
rptbd endLoop - 1
st #020h, temp
mainLoop:
ld *in_ptr+, 16, A
exp A
nop
mpy one, A
sub temp, A
nop
nop
xc 1, ALT
st T, temp
endLoop:
return:
ld temp, A
frame #2
POPM ST1 ; 1 cycle
POPM ST0 ; 1 cycle
.if __far_mode
fret
.else
ret
.endif
;end of file. please do not remove. it is left here to ensure that no lines of code are removed by any editor
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -