📄 prm2bits.asm
字号:
*****************************************************************************
** Description: Prm2bits() in Prm2bits.c **
** **
** Inputs : **
** ana[19] **
** **
** Outputs: **
** XAR2--bits[] : serial bits (size <= MAX_SERIAL_SIZE) **
** **
** Return value : **
** **
** Attribute : Cycles: Pm: **
** Modified Registers: **
** **
**
** @buffer3 **
** Programmer : ZHOU Bei (OK,) **
*****************************************************************************
.global _Prm2bits
.ref ana
.ref bitno_MR515
.ref MASK
.ref BIT_0
.ref BIT_1
_Prm2bits:
;for (i = 0; i < prmno[1]; i++)
MOV AR0,#18 ;for amr 515
MOVL XAR3,#ana
MOVL XAR4,#bitno_MR515
_LOOP_111:
;Int2bin (prm[i], bitno[1][i], bits);
;Int2bin (value,no_of_bits,*bitstream)
;Word16 *pt_bitstream, i, bit;
;pt_bitstream = &bitstream[no_of_bits]
MOV AL,*XAR4
MOVL XAR6,@XAR2 ;Point to pt_bitstream
nop
ADD AR6,AL
MOVL XAR2,@XAR6 ;bits += bitno[1][i]
;for (i = 0; i < no_of_bits; i++)
MOV AR7,*XAR4++
DEC AR7
;Save value to ah
MOV AL,*XAR3++
_LOOP_69:
;bit = value & MASK;
MOV AR1,AL
AND AR1,#MASK
BF _LINE_79,NEQ
;if (bit == 0) *--pt_bitstream = BIT_0;
MOV *--XAR6,#BIT_0
BF _LINE_81,UNC
_LINE_79:
;else *--pt_bitstream = BIT_1;
MOV *--XAR6,#BIT_1
_LINE_81:
;value = shr (value, 1);
LSR AL,1
BANZ _LOOP_69,AR7--
BANZ _LOOP_111,AR0--
LRETR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -