⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alaw2int.asm

📁 DSP芯片TMS320C5416实验程序
💻 ASM
字号:
; 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -