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

📄 pic_convert.asm

📁 bf533平台图像采集程序
💻 ASM
字号:

.global _convert2d1;
.global _convert2cif;

.section L1_code;

//convert2d1(s, y, u, v, WIDTH, EDGED_WIDTH*2, line_width);
_convert2d1:
	link 0;
	[--sp] = r4;
	[--sp] = p5;
	
	l0 = 0;
	l1 = 0;
	l2 = 0;
	l3 = 0;
	i0 = r0;
	p5 = r0;
	p1 = r0;
	i1 = r1;
	p2 = r1;
	i2 = r2;
	r0 = [fp+20]; //v
	i3 = r0;
	p0 = [fp+24]; //WIDTH
	
	p0 = p0 >> 2; //720/4 = 180
	
	lsetup(ls0, le0) lc0 = p0 >> 1; //90
	ls0:
		flushinv [p5++];
		ssync;
		r0 = [i0++];	
		r1 = [i0++];
		r3 = bytepack(r0, r1); //vuvu
		r0 = r0 >> 8;
		r1 = r1 >> 8;
		r0 = bytepack(r0, r1); //yyyy
		[i1++] = r0;
		
		r0 = [i0++];	
		r1 = [i0++];
		r2 = bytepack(r0, r1); //vuvu
		r0 = r0 >> 8;
		r1 = r1 >> 8;
		r0 = bytepack(r0, r1); //yyyy
		[i1++] = r0;			
		r0 = bytepack(r3, r2); //vuvu
		[i3++] = r0; //dest vvvv
		r2 = r2 >> 8;
		r3 = r3 >> 8;
		r0 = bytepack(r3, r2); 	
	le0:	[i2++] = r0; //dest uuuu
	
	r0 = [fp+32]; //line_width
	r1 = p1; //source
	r0 = r0 + r1;
	i0 = r0;
	p5 = r0;
	
	r0 = [fp+28];
	r1 = p2;
	r0 = r0 + r1;
	i1 = r0;
	
	lsetup(ls1, le1) lc0 = p0 >> 1;
	ls1:
		flushinv [p5++];
		ssync;
		r0 = [i0++];
		r0 >>= 8;
		r1 = [i0++];
		r1 >>= 8;
		r0 = bytepack(r0, r1);
		[i1++] = r0;
		
		r0 = [i0++];
		r0 >>= 8;
		r1 = [i0++];
		r1 >>= 8;
		r0 = bytepack(r0, r1);
	le1: [i1++] = r0;
	
	p5 = [sp++];
	r4 = [sp++];
	unlink;
_convert2d1.end:
	rts;
	

//convert2cif(s, y, u, v, WIDTH, EDGED_WIDTH, line_width);
_convert2cif:
	link 0;
	[--sp] = r4;
	
	l0 = 0;
	l1 = 0;
	l2 = 0;
	l3 = 0;
	i0 = r0;
	p1 = r0;
	i1 = r1;
	p2 = r1;
	i2 = r2;
	r0 = [fp+20]; //v
	i3 = r0;
	p0 = [fp+24]; //WIDTH
	
	p0 = p0 >> 2; //352/4 = 88
	
	lsetup(ls2, le2) lc0 = p0 >> 1;
	ls2:
		r0 = [i0++];	
		r1 = [i0++];
		r2 = [i0++];
		r3 = bytepack(r0, r2); //vuvu
		r0 = r0 >> 8;
		r1 = r1 >> 8;
		r0 = bytepack(r0, r1); //yyyy
		r1 = [i0++];
		r2 = r2 >> 8;
		r1 = r1 >> 8;
		r1 = bytepack(r2, r1); //yyyy
		r0 = bytepack(r0, r1); //dest yyyy
		[i1++] = r0;
		
		r0 = [i0++];	
		r1 = [i0++];
		r2 = [i0++];
		r4 = bytepack(r0, r2); //vuvu
		r0 = r0 >> 8;
		r1 = r1 >> 8;
		r0 = bytepack(r0, r1); //yyyy
		r1 = [i0++];
		r2 = r2 >> 8;
		r1 = r1 >> 8;
		r1 = bytepack(r2, r1); //yyyy
		r0 = bytepack(r0, r1); //dest yyyy
		[i1++] = r0;
		
		r0 = bytepack(r3, r4);
		[i3++] = r0; //dest vvvv
		r3 >>= 8;
		r4 >>= 8;
		r0 = bytepack(r3, r4);
	le2:	[i2++] = r0; //dest uuuu
	
	r0 = [fp+32]; //line_width
	r1 = p1; //source
	r0 = r0 + r1;
	i0 = r0;
	
	r0 = [fp+28];
	r1 = p2;
	r0 = r0 + r1;
	i1 = r0;
	
	lsetup(ls3, le3) lc0 = p0;
	ls3:
		r0 = [i0++];
		r0 >>= 8;
		r1 = [i0++];
		r1 >>= 8;
		r0 = bytepack(r0, r1);
		r1 = [i0++];
		r1 >>= 8;
		r2 = [i0++];
		r2 >>= 8;
		r1 = bytepack(r1, r2);
		r0 = bytepack(r0, r1);
	le3: [i1++] = r0;
	
	r4 = [sp++];
	unlink;
_convert2cif.end:
	rts;
		

⌨️ 快捷键说明

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