📄 laplacian.asm
字号:
loopcount .set 65022
imagesize .set 256
operator .sect"laplacian"
.byte -1
.byte -1
.byte -1
.byte -1
.byte 8
.byte -1
.byte -1
.byte -1
.byte -1 ;输入拉普拉斯算子矩阵系数
operator_end
bos .usect"stack",12
.data
output .space 0x10000;把要处理的图像数据输入到RAM
input .copy Lenna;初始化输出空间
.text
.def line
.def end
.def laplacian_int
.def laplacian_task
laplacian_int:
mvkl input,a1
mvkh input,a1;
mvkl operator,a4
mvkh operator,a4
mvkl bos,b15
mvkh bos,b15
mvkl output,b10
mvkh output,b10
mvkl loopcount,b0
mvkh loopcount,b0
mvkl imagesize,b9
mvkh imagesize,b9
stw a4,*b15++
stw a1,*b15;入栈
mvk 3,b2
mvk 3,a2
mvk 0,b6;累加器初始化
laplacian_task:
line:
ldbu *a1++,b3
nop 4
ldb *a4++,b4
nop 4
mpyus b3,b4,b5
nop
add b5,b6,b6
sub b2,1,b2;完成一次像素与系数相乘
[b2]b line
nop 5
mvk 3,b2;
sub a1,3,a1;
add a1,b9,a1
sub a2,1,a2
[a2]b line
nop 5
mvk 3,a2;
ldw *b15,a1
nop 4
add a1,1,a1
stw a1,*b15
ldw *--b15,a4
nop 4
abs b6,b6
cmpgt b6,b9,b1
[b1]mvk 255,b6
stb b6,*b10++;
mvk 0,b6;累加器初始化
sub b0,1,b0
add b15,4,b15
[b0]b line
nop 5
end: b end
nop 5
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -