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

📄 mu2int.asm

📁 DSP芯片TMS320C5416实验程序
💻 ASM
字号:
; MU2INT.ASM
;
; u律编码 = u律符号位 : u律段落码 : u律电平码
;           X           XXX         XXXX
;
; INTNUM = [((2 * u律电平码 + 33) << u律段落码) - 33] * SGN(u律符号位)
;
; 注意: u律编码一般反向传输, 接收的编码为
;          反向u律编码' = 反向u律符号位': 反向u律段落码': 反向u律电平码'
;
; 将 8-bit u律编码反向, 并扩展为15比特
;
; 			u律编码 = 7FFFh - 反向u律编码'
;

		.def MU2INT
		.mmregs
		.data
BIAS 	.word 21h
MASK 	.word 7FFFh,1Fh
TABLEMU    .word 1CH,27H,3ah,48h,61h,7eh,0dfh,0d6h,0c3h,0bfh,0b0h,084h
RESULTINT  .space 16*16

TREG 	.equ 14

		.text
MU2INT
		LD 		#BIAS, 		DP 		; 设置DP
		 
		STM     #RESULTINT, AR0 	; AR0=转换结果地址
		STM     #12, 		AR1		; AR1=转换长度
		STM 	#MASK, 		AR2		; AR2=MASK起始地址
		STM 	#TREG, 		AR3		; AR3=14
		STM 	#TABLEMU, 	AR4     ; AR4=待转换的数据地址
		LD 		#-12, 		ASM		; ASM=-12
		
cbeg 	SUB 	*AR2+,*AR4, A 		;7FFFh - u律编码 -> AH
		AND 	A,8 				;去除极性比特
									;(A<<8 AND A)=(7F AND A(16-23))<<24
		ST 		A,*AR3 				;保存段落码: (A<<ASM-16)-> T 
				|| LD *AR2-,B 		;加载电平码掩码 B=1F<<16
		AND 	A,-7,B 				;电平码 (17-20): BH = 2*电平码
		ADD 	BIAS,16,B 			;BH = 2*电平码 + 33
		BIT 	*AR4+,8 			;保存U律码的符号位->TC
		NORM 	B 					;BH = (2*电平码+33)<<(段落码)
		SUB 	BIAS,16,B 			;BH = (2*电平码+33)<< 段落码) - 33
		XC 		1,NTC 				;为负数?(BIT8 == 0; TC ==0)
		NEG 	B 					;BH *= -1
		STH		B,*AR0+				;保存结果
		BANZ	cbeg, *AR1-			;进行下一次解码

		RET
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -