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

📄 basic_opasm.s

📁 使用在PC机上的g729语音压缩及编码程序
💻 S
字号:
#include "linkage.h"	.section ".data"	.global Overflow	.global Carry	.align 5Overflow:	.hword 0x0000Carry:		.hword 0x0000	.section ".text"	.type Overflow_p, #object	.align 5Overflow_p:	.long Overflow Carry_p:	.long CarryMAX_32_P: 	.long 0x7fffffffMIN_32_P: 	.long 0x80000000MIN_16_P:	.long 0xffff8000MAX_16_P:	.long 0x00007fff/* static Word16 negate(Word16 var1) */	.section ".text".align 5.section ".text".global negatenegate:	cmp r0,#0x8000	mvneq r0,#0x8000	rsbne r0,r0,#0	mov pc,lr.align 5.section ".text".global L_negateL_negate:	cmp r0,#0x80000000	mvneq r0,#0x80000000	rsbne r0,r0,#0	mov pc,lr.global extract_hextract_h:	mov r0,r0,asr #16	mov pc,lr.global extract_lextract_l:	mov r0,r0,lsl #16	mov r0,r0,asr #16	mov pc,lr.align 5.section ".text".global L_addL_add:		adds r0,r1,r0	movvc pc,lr	mvnmi r0,#0x8,4	movpl r0,#0x8,4	mov pc,lr.align 5.section ".text".global L_subL_sub:		subs r0,r0,r1	movvc pc,lr	mvnmi r0,#0x8,4	movpl r0,#0x8,4	mov pc,lr.align 5.section ".text".global L_macL_mac:		mul r1,r2,r1	teq r1,#0x4,4	mvneq r1,#0x8,4	movne r1,r1,lsl #1	adds r0,r0,r1	movvc pc,lr	mov r2,#1	ldr r3,Overflow_p	mvnmi r0,#0x8,4	movpl r0,#0x8,4	strh r2,[r3]	mov pc,lr.align 5.section ".text".global L_msuL_msu:		mul r1,r2,r1	teq r1,#0x4,4	mvneq r1,#0x8,4	movne r1,r1,lsl #1	subs r0,r0,r1	movvc pc,lr	mov r2,#1	mvnmi r0,#0x8,4	movpl r0,#0x8,4	ldr r3,Overflow_p	strh r2,[r3]	mov pc,lr.align 5.section ".text".global L_multL_mult:		mul r0,r1,r0	teq r0,#0x4,4		movne r0,r0,lsl #1	movne pc,lr	mvn r0,#0x8,4	mov pc,lr.align 5.section ".text".global roundround:/*	adds r0,r0,#0x00008000	movvc r0,r0,asr #16	movvc pc,lr	mov r1,#0x80000000	movmi r0,r1,asr #16	mvnpl r0,r1,asr #16*/	movs r0,r0,asr #16	addcs r0,r0,#1	mov pc,lr.align 5.section ".text".global saturesature:	mov r1,#0x80000000  @modified	cmn r0,r1,asr #16	mvngt r0,r1,asr #16	movgt pc,lr	cmp r0,r1,asr #16	movlt r0,r1,asr #16	mov pc,lr.align 5.section ".text".global L_deposit_lL_deposit_l:	mov r0,r0,lsl #16	mov r0,r0,asr #16	mov pc,lr.align 5.section ".text".global L_CompL_Comp:	mov r0,r0,lsl #16	adds r0,r0,r1,lsl #1	movvc pc,lr	mvnmi r0,#0x8,4	movpl r0,#0x8,4	mov pc,lr.align 5.section ".text".global multmult:	mul r0,r1,r0	mov r0,r0,asr #15	mov r1,#0x80000000  @modified	cmn r0,r1,asr #16	mvngt r0,r1,asr #16	movgt pc,lr	cmp r0,r1,asr #16	movlt r0,r1,asr #16	mov pc,lr.align 5.section ".text".global Mpy_32Mpy_32:	mul r3,r0,r3		@mult(hi1,lo2)--->lo2(r3)	mov r3,r3,asr #15	mul r1,r2,r1     	@mult(hi2,lo1)--->lo1(r1)	mov r1,r1,asr #15		mul r0,r2,r0		@L_mult(hi1,hi2)		teq r0,#0x4,4		movne r0,r0,lsl #1	mvneq r0,#0x8,4		add r1,r1,r3		@(mult(hi1,lo2)+mult(hi2,lo1))<<1	adds r0,r0,r1,lsl #1	@all plus	movvc pc,lr	mvnmi r0,#0x8,4	movpl r0,#0x8,4	mov pc,lr.align 5.section ".text".global add add:	add r0,r0,r1	ldr r2,Overflow_p	ldr r1,MAX_16_P	mov r3,#1	cmp r0,r1	movgt r0,r1	strgth r3,[r2]	movgt pc,lr	cmn r0,r1	mvnlt r0,r1	strlth r3,[r2]	mov pc,lr.align 5.section ".text".global sub sub:	sub r0,r0,r1	ldr r2,Overflow_p	ldr r1,MAX_16_P	mov r3,#1	cmp r0,r1	movgt r0,r1	strgth r3,[r2]	movgt pc,lr	cmn r0,r1	mvnlt r0,r1	strlth r3,[r2]	mov pc,lr.align 5.section ".text".global mult_rmult_r:	mov r2,#0x4000	mla r0,r1,r0,r2	mov r0,r0,asr #15	ldr r1,MAX_16_P	cmp r0,r1	movgt r0,r1	movgt pc,lr	cmn r0,r1	mvnlt r0,r1	mov pc,lr.global L_deposit_hL_deposit_h:	mov r0,r0,lsl #16	mov pc,lr.align 5.section ".text".global Mpy_32_16Mpy_32_16:	mul r0,r2,r0	teq r0,#0x4,4		movne r0,r0,lsl #1	mvneq r0,#0x8,4		mul r1,r2,r1	mov r1,r1,asr #15	adds r0,r0,r1,lsl #1	  @all plus		movvc pc,lr	mvnmi r0,#0x8,4	movpl r0,#0x8,4	mov pc,lr.align 5.section ".text".global L_ExtractL_Extract:	mov r3,r0,asr #16	strh r3,[r1]	sub r0,r0,r3,lsl #16	mov r0,r0,asr #1	strh r0,[r2]	mov pc,lr.align 5.section ".text".global shlshl:2:	cmp r1,#15	movgt r1,#15	mov r0,r0,lsl r1	ldr r1,MAX_16_P 	@ldr r1,MAX_16_P modified	cmp r0,r1	movgt r0,r1	movgt pc,lr	cmn r0,r1	mvnlt r0,r1	mov pc,lr.global  shrshr:	cmp r1,#0	rsblt r1,r1,#0	blt 2b	mov r0,r0,asr r1	mov  pc,lr.align 5.section ".text".global L_shrL_shr:3:	mov r0,r0,asr r1	mov pc,lr.align 5.section ".text".global L_shlL_shl:	cmp r1,#0	rsble r1,r1,#0	ble 3b4:	adds r0,r0,r0	bvs 5f	subs r1,r1,#1	bne 4b	mov pc,lr5:	movpl r0,#0x80000000	mvnmi r0,#0x80000000	mov pc,lr.align 5.section ".text".global abs_sabs_s:	cmp r0,#0x8000	mvneq r0,#0x8000	moveq pc,lr	cmp r0,#0	rsblt r0,r0,#0	mov pc,lr.align 5.section ".text".global L_absL_abs:	cmp r0,#0x80000000	mvneq r0,#0x8000000	moveq pc,lr	cmp r0,#0	rsblt r0,r0,#0	mov pc,lr.align 5.section ".text".global L_shr_rL_shr_r:	movs r0,r0,asr r1	addcs r0,r0,#1	mov pc,lr.align 5.section ".text".global myadd myadd:	add r0,r0,r1	ldr r1,MAX_16_P	cmp r0,r1	movgt r0,r1	movgt pc,lr	cmn r0,r1	mvnlt r0,r1	mov pc,lr.align 5.section ".text".global mysub mysub:	sub r0,r0,r1	ldr r1,MAX_16_P	cmp r0,r1	movgt r0,r1	movgt pc,lr	cmn r0,r1	mvnlt r0,r1	mov pc,lr.align 5.section ".text".global myL_macmyL_mac:		mul r1,r2,r1	teq r1,#0x4,4	mvneq r1,#0x8,4	movne r1,r1,lsl #1	adds r0,r0,r1	movvc pc,lr	mvnmi r0,#0x8,4	movpl r0,#0x8,4	mov pc,lr

⌨️ 快捷键说明

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