📄 pic_convert.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 + -