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

📄 vgmemcpy.s

📁 adc 3208 上面实现图片旋转的实例
💻 S
字号:
.global	_vgmemcpy.global	_vgmemcpy16################################################################ vgmemcpy###############################################################_vgmemcpy:	push	%r2 - %r7	ld	( %sp, 0x1C ), %r3 	ld	( %sp, 0x20 ), %r2 	ld	( %sp, 0x24 ), %r1 	and	%r1, 0xFFFFFFFF, %r1 # 父老狼 荤怕俊 措厚	jz	MEMCOPY_END	##############################################################	# 16byte捞窍绰 葛滴 8bit 傈价	##############################################################	tst	%r1, 0xfffffff0	jz	FLUSH_8		xor	%r3, %r2, %r0	and	%r0, 3, %r0	jnz	CHECK_16	##############################################################	# 32bit 傈价啊瓷	##############################################################PREPROCESS_32_0:	tst	%r2, 1	jz	PREPROCESS_32_1    ldbu	( %r2, 0x0 ), %r0    stb	%r0, ( %r3, 0x0 )    add	%r2, 1, %r2    add	%r3, 1, %r3    sub	%r1, 1, %r1PREPROCESS_32_1:	tst	%r2, 2	jz	PROCESS_32    ldsu	( %r2, 0x0 ), %r0    sts	%r0, ( %r3, 0x0 )    add	%r2, 2, %r2    add	%r3, 2, %r3    sub	%r1, 2, %r1	PROCESS_32:	and %r1, 0xFFFFFFE0, %r0	jz	FLUSH_8PROCESS_32_burst8:    ld	( %r2, 0x0 ), %r4    ld	( %r2, 0x4 ), %r5    ld	( %r2, 0x8 ), %r6    ld	( %r2, 0xc ), %r7    st	%r4, ( %r3, 0x0 )    st	%r5, ( %r3, 0x4 )    st	%r6, ( %r3, 0x8 )    st	%r7, ( %r3, 0xc )    ld	( %r2, 0x10 ), %r4    ld	( %r2, 0x14 ), %r5    ld	( %r2, 0x18 ), %r6    ld	( %r2, 0x1c ), %r7    st	%r4, ( %r3, 0x10 )    st	%r5, ( %r3, 0x14 )    st	%r6, ( %r3, 0x18 )    st	%r7, ( %r3, 0x1c )    add	%r2, 0x20, %r2     add	%r3, 0x20, %r3     sub %r0, 0x20, %r0    jnz	PROCESS_32_burst8	and	%r1, 0x0000001F, %r1	jz	MEMCOPY_END	jmp	FLUSH_8CHECK_16:	xor %r0, 2, %r0	jnz PROCESS_8	##############################################################	# 16bit 傈价啊瓷	##############################################################PREPROCESS_16:	tst	%r2, 1	jz	PROCESS_16    ldbu	( %r2, 0x0 ), %r4    stb	%r4, ( %r3, 0x0 )    add	%r2, 1, %r2    add	%r3, 1, %r3    sub	%r1, 1, %r1    #jmp	PREPROCESS_16	# 鞘夸绝澜PROCESS_16:	and %r1, 0xFFFFFFE0, %r0	jz	FLUSH_8PROCESS_16_burst16:    ldsu	( %r2, 0x0 ), %r4    ldsu	( %r2, 0x2 ), %r5    ldsu	( %r2, 0x4 ), %r6    ldsu	( %r2, 0x6 ), %r7    sts	%r4, ( %r3, 0x0 )    sts	%r5, ( %r3, 0x2 )    sts	%r6, ( %r3, 0x4 )    sts	%r7, ( %r3, 0x6 )    ldsu	( %r2, 0x8 ), %r4    ldsu	( %r2, 0xa ), %r5    ldsu	( %r2, 0xc ), %r6    ldsu	( %r2, 0xe ), %r7    sts	%r4, ( %r3, 0x8 )    sts	%r5, ( %r3, 0xa )    sts	%r6, ( %r3, 0xc )    sts	%r7, ( %r3, 0xe )    ldsu	( %r2, 0x10 ), %r4    ldsu	( %r2, 0x12 ), %r5    ldsu	( %r2, 0x14 ), %r6    ldsu	( %r2, 0x16 ), %r7    sts	%r4, ( %r3, 0x10 )    sts	%r5, ( %r3, 0x12 )    sts	%r6, ( %r3, 0x14 )    sts	%r7, ( %r3, 0x16 )    ldsu	( %r2, 0x18 ), %r4    ldsu	( %r2, 0x1a ), %r5    ldsu	( %r2, 0x1c ), %r6    ldsu	( %r2, 0x1e ), %r7    sts	%r4, ( %r3, 0x18 )    sts	%r5, ( %r3, 0x1a )    sts	%r6, ( %r3, 0x1c )    sts	%r7, ( %r3, 0x1e )    add	%r2, 0x20, %r2     add	%r3, 0x20, %r3     sub	%r0, 0x20, %r0    jnz	PROCESS_16_burst16	and	%r1, 0x0000001F, %r1	jz	MEMCOPY_END	jmp	FLUSH_8	##############################################################	# 8bit 傈价父 啊瓷	##############################################################PROCESS_8:	and %r1, 0xFFFFFFF0, %r0	jz	FLUSH_8PROCESS_8_burst16:    ldbu	( %r2, 0x0 ), %r4    ldbu	( %r2, 0x1 ), %r5    ldbu	( %r2, 0x2 ), %r6    ldbu	( %r2, 0x3 ), %r7    stb	%r4, ( %r3, 0x0 )    stb	%r5, ( %r3, 0x1 )    stb	%r6, ( %r3, 0x2 )    stb	%r7, ( %r3, 0x3 )    ldbu	( %r2, 0x4 ), %r4    ldbu	( %r2, 0x5 ), %r5    ldbu	( %r2, 0x6 ), %r6    ldbu	( %r2, 0x7 ), %r7    stb	%r4, ( %r3, 0x4 )    stb	%r5, ( %r3, 0x5 )    stb	%r6, ( %r3, 0x6 )    stb	%r7, ( %r3, 0x7 )    ldbu	( %r2, 0x8 ), %r4    ldbu	( %r2, 0x9 ), %r5    ldbu	( %r2, 0xa ), %r6    ldbu	( %r2, 0xb ), %r7    stb	%r4, ( %r3, 0x8 )    stb	%r5, ( %r3, 0x9 )    stb	%r6, ( %r3, 0xa )    stb	%r7, ( %r3, 0xb )    ldbu	( %r2, 0xc ), %r4    ldbu	( %r2, 0xd ), %r5    ldbu	( %r2, 0xe ), %r6    ldbu	( %r2, 0xf ), %r7    stb	%r4, ( %r3, 0xc )    stb	%r5, ( %r3, 0xd )    stb	%r6, ( %r3, 0xe )    stb	%r7, ( %r3, 0xf )    add	%r2, 0x10, %r2    add	%r3, 0x10, %r3    sub	%r0, 0x10, %r0    jnz	PROCESS_8_burst16	and	%r1, 0x0000000f, %r1	jz	MEMCOPY_END	#jmp	FLUSH_8	FLUSH_8:    ldbu	( %r2, 0x0 ), %r0     stb	%r0, ( %r3, 0x0 )    add	%r2, 1, %r2     add	%r3, 1, %r3     sub	%r1, 1, %r1    jnz	FLUSH_8MEMCOPY_END:    pop	%r2 - %r7 ,%pc ################################################################ vgmemcpy16###############################################################_vgmemcpy16:	push	%r2 - %r7 	ld	( %sp, 0x1C ), %r3 	ld	( %sp, 0x20 ), %r2 	ld	( %sp, 0x24 ), %r1 	and	%r3, 0xFFFFFFFE, %r3 # 父老狼 荤怕俊 措厚	and	%r2, 0xFFFFFFFE, %r2 # 父老狼 荤怕俊 措厚	and	%r1, 0xFFFFFFFE, %r1 # 父老狼 荤怕俊 措厚	jz	MEM16_MEMCOPY_END	# 32bit 傈价啊瓷己 八荤	xor %r2, %r3, %r0	and %r0, 3, %r0	jnz	MEM16_PROCESS_16MEM16_PREPROCESS_32:	tst	%r2, 2	jz	MEM16_PROCESS_32    ldsu	( %r2, 0x0 ), %r0    sts	%r0, ( %r3, 0x0 )    add	%r2, 2, %r2    add	%r3, 2, %r3    sub	%r1, 2, %r1	jz	MEM16_MEMCOPY_ENDMEM16_PROCESS_32:	and %r1, 0xFFFFFFE0, %r0	jz	MEM16_FLUSH_16MEM16_PROCESS_32_burst8:    ld	( %r2, 0x0 ), %r4    ld	( %r2, 0x4 ), %r5    ld	( %r2, 0x8 ), %r6    ld	( %r2, 0xc ), %r7    st	%r4, ( %r3, 0x0 )    st	%r5, ( %r3, 0x4 )    st	%r6, ( %r3, 0x8 )    st	%r7, ( %r3, 0xc )    ld	( %r2, 0x10 ), %r4    ld	( %r2, 0x14 ), %r5    ld	( %r2, 0x18 ), %r6    ld	( %r2, 0x1c ), %r7    st	%r4, ( %r3, 0x10 )    st	%r5, ( %r3, 0x14 )    st	%r6, ( %r3, 0x18 )    st	%r7, ( %r3, 0x1c )    add	%r2, 0x20, %r2     add	%r3, 0x20, %r3     sub	%r0, 0x20, %r0    jnz	MEM16_PROCESS_32_burst8	and	%r1, 0x0000001F, %r1	jz	MEM16_MEMCOPY_END	jmp	MEM16_FLUSH_16		MEM16_PROCESS_16:	and %r1, 0xFFFFFFE0, %r0	jz	MEM16_FLUSH_16MEM16_PROCESS_16_burst16:    ldsu	( %r2, 0x0 ), %r4    ldsu	( %r2, 0x2 ), %r5    ldsu	( %r2, 0x4 ), %r6    ldsu	( %r2, 0x6 ), %r7    sts	%r4, ( %r3, 0x0 )    sts	%r5, ( %r3, 0x2 )    sts	%r6, ( %r3, 0x4 )    sts	%r7, ( %r3, 0x6 )    ldsu	( %r2, 0x8 ), %r4    ldsu	( %r2, 0xa ), %r5    ldsu	( %r2, 0xc ), %r6    ldsu	( %r2, 0xe ), %r7    sts	%r4, ( %r3, 0x8 )    sts	%r5, ( %r3, 0xa )    sts	%r6, ( %r3, 0xc )    sts	%r7, ( %r3, 0xe )    ldsu	( %r2, 0x10 ), %r4    ldsu	( %r2, 0x12 ), %r5    ldsu	( %r2, 0x14 ), %r6    ldsu	( %r2, 0x16 ), %r7    sts	%r4, ( %r3, 0x10 )    sts	%r5, ( %r3, 0x12 )    sts	%r6, ( %r3, 0x14 )    sts	%r7, ( %r3, 0x16 )    ldsu	( %r2, 0x18 ), %r4    ldsu	( %r2, 0x1a ), %r5    ldsu	( %r2, 0x1c ), %r6    ldsu	( %r2, 0x1e ), %r7    sts	%r4, ( %r3, 0x18 )    sts	%r5, ( %r3, 0x1a )    sts	%r6, ( %r3, 0x1c )    sts	%r7, ( %r3, 0x1e )    add	%r2, 0x20, %r2     add	%r3, 0x20, %r3     sub %r0, 0x20, %r0    jnz	MEM16_PROCESS_16_burst16	and	%r1, 0x0000001F, %r1	jz	MEM16_MEMCOPY_END	#jmp	MEM16_FLUSH_16	MEM16_FLUSH_16:    ldsu	( %r2, 0x0 ), %r0     sts	%r0, ( %r3, 0x0 )    add	%r2, 2, %r2     add	%r3, 2, %r3     sub	%r1, 2, %r1    jnz	MEM16_FLUSH_16MEM16_MEMCOPY_END:    pop	%r2 - %r7 ,%pc 

⌨️ 快捷键说明

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