📄 mutuality.asm
字号:
.def _MutualityH
.def _SquareX
;==============================================================
;子程序名: SquareX
;功 能: 区域平方和
;输入参数: 模板首地址A4,模板容量B4
;==============================================================
_SquareX:
SHRU .S2 B4, 2, B0
SUB .L2 B0,1,B0
MVK .S1 0, A0
MVK .S1 0xFF, A2
LDW .D1 *A4++, A8
NOP 4
LOOPX2: AND .L1 A8, A2, A10
|| SHRU .S1 A8, 8, A9
MPY .M1 A10, A10, A5
AND .L1 A9, A2, A11
|| SHRU .S1 A9, 8, A8
MPY .M1 A11, A11, A6
|| ADD .L1 A0, A5, A0
AND .L1 A8, A2, A12
|| SHRU .S1 A8, 8, A9
MPY .M1 A12, A12, A7
|| ADD .L1 A0, A6, A0
AND .L1 A9, A2, A13
MPY .M1 A13, A13, A5
|| ADD .L1 A0, A7, A0
[B0] B LOOPX2
LDW .D1 *A4++, A8
SUB .L2 B0, 1, B0
|| ADD .L1 A0, A5, A0
NOP 3
MV .L1 A0, A4
B B3
NOP 5
;==============================================================
;子程序名: MutualityH
;功 能: 两块区域做相关
;输入参数: 模板首地址啊A4,区域二首地址B4,模板容量A6,模板宽度B6,
; 区域宽度A8, 返回值1--B8, 返回值2--A10
;==============================================================
_MutualityH:
MV .L1 A6, A1 ;模板容量赋给A1
|| MV .L2 B6, B1 ;模板宽度赋给B1
SHRU .S1 A1, 2, A1
|| SHRU .S2 B1, 2, B1
SUB .L1 A8, B6, A5 ;区域宽度赋给A5
MV .S1X B8, A6 ;返回值赋给A6
LDW .D1 *A4++, A8
|| LDH .D2 *B4++, B8
SUB .L1 A1, 1, A1
MV B1, A3
MV .D1 A10, A7 ;返回值赋给A7
|| MVK .S1 0xFF, A2
|| MVK .S2 0xFF, B2
MVK .S1 0, A0
|| MVK .S2 0, B0
LOOPHX:
AND .L1 A8, A2, A10
|| AND .L2 B8, B2, B10
|| SHRU .S1 A8, 8, A9
|| SHRU .S2 B8, 8, B9
MPYU .M1X A10, B10, A10
|| MPYU .M2 B10, B10, B5
LDH .D2 *B4++, B8
AND .L1 A9, A2, A11
|| AND .L2 B9, B2, B11
|| SHRU .S1 A9, 8, A8
MPYU .M1X A11, B11, A11
|| MPYU .M2 B11, B11, B6
|| ADD .L1 A0, A10, A0
|| ADD .L2 B0, B5, B0
NOP 2
AND .L1 A8, A2, A12
|| AND .L2 B8, B2, B12
|| SHRU .S1 A8, 8, A9
|| SHRU .S2 B8, 8, B9
MPYU .M1X A12, B12, A12
|| MPYU .M2 B12, B12, B7
|| ADD .L1 A0, A11, A0
|| ADD .L2 B0, B6, B0
|| SUB .S2 B1, 1, B1
AND .L1 A9, A2, A13
|| AND .L2 B9, B2, B13
MPYU .M1X A13, B13, A13
|| MPYU .M2 B13, B13, B5
|| ADD .L1 A0, A12, A0
|| ADD .L2 B0, B7, B0
||[!B1] ADD .S2 B4, A5, B4
[A1] B LOOPHX
LDW .D1 *A4++, A8
|| LDH .D2 *B4++, B8
ADD .L1 A0, A13, A0
|| ADD .L2 B0, B5, B0
|| SUB .S1 A1, 1, A1
[!B1] MV A3, B1
NOP 2
STW .D1 A0, *A6
MV .S1X B0, A0
STW .D1 A0, *A7
B B3
NOP 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -