alaw2int.asm
来自「DSP芯片TMS320C5416实验程序」· 汇编 代码 · 共 45 行
ASM
45 行
; ALAW2INT.ASM
;
;IMPLEMENT EQUATION
;
; A-LAW = ASGN : ACHD : ASTEP
; X XXX XXXX
;
; INTNUM = [ (2*ASTEP + 33)*2^(ACHD) - 32*DELTA(ACHD)] * SGN(ASGN)
;
; DELTA(ACHD) = 1 ACHD == 0
; = 0 elsewhere
;
; Final output is stored in low accumulator B
.def CodeEntry
.mmregs
.data
TABLE .word 0ah,0b2h,81h,90h,0f3h,0d5h,42h,65h,6ch,19h,05h,0a6h
;TEST VALUES
MASK1 .word 0ABh;(55h<<1)+1 to account for left shift on load
MASK2 .word 0FFh
ONEF .word 1Fh
ONE .word 1
THREE2 .word 32
.text
CodeEntry STM #TABLE, AR5
LD #MASK1,DP
cbeg LD *AR5,1,B ;LOAD 2*ALAW CODE
XOR MASK1,B ;INVERT AT RECEIVER
AND MASK2,B ;REMOVE SIGN BIT
SFTA B,-5,A ;STORE CHORD (SHIFT VAL) TO A
SUB ONE,A ;A = CHD -1
STLM A,T ;STORE CHD-1 TO T FOR NORMALIZATION
AND ONEF,B ;ISOLATE SEGMENT
BIT *AR5+,8 ;CHECK SIGN OF ORIGINAL A-LAW CODE
XC 2,AGEQ ;IF CHD IS NOT -1 EXECUTE NEXT 2 INSTR
ADD THREE2,B ;ADD 32 OFFSET
NORM B ;ALIGN SEGMENT, (2*ASTEP+33)*2^(ACHR)
XC 1,TC ;CHECK IF A-CODE WAS NEGATIVE (BIT8 == 0)
NEG B ;IF SO NEGATE INTEGER
B cbeg ;DO IT AGAIN!
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?