📄 dstr_2d.asm
字号:
;** --------------------------------------------------------------------------*
L3:
MV .D1 A13,A0 ; |172|
[!A0] BNOP .S1 L4,1 ; |169|
MVKL .S2 _DAT_copy,B5 ; |172|
MVKH .S2 _DAT_copy,B5 ; |172|
|| MV .D1 A12,A4 ; |172|
[!A0] MVKL .S2 _DAT_wait,B4 ; |180|
[!A0] MVKH .S2 _DAT_wait,B4 ; |180|
; BRANCH OCCURS ; |169|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |172|
|| LDHU .D1T1 *+A11(22),A6 ; |172|
MV .D2X A10,B4 ; |172|
ADDKPC .S2 RL3,B3,2 ; |172|
SUB .L2X B4,A6,B4 ; |172|
RL3: ; CALL OCCURS ; |172|
MV .D1 A4,A14 ; |172|
MVKL .S2 _DAT_wait,B4 ; |180|
MVKH .S2 _DAT_wait,B4 ; |180|
;** --------------------------------------------------------------------------*
L4:
CALL .S2 B4 ; |180|
LDW .D1T1 *+A11(28),A4 ; |180|
ADDKPC .S2 RL4,B3,3 ; |180|
RL4: ; CALL OCCURS ; |180|
LDHU .D1T1 *+A11(26),A5 ; |186|
LDW .D1T1 *+A11(4),A3 ; |186|
STW .D1T1 A14,*+A11(28) ; |185|
LDDW .D2T1 *+SP(16),A13:A12 ; |192|
MV .S2 B13,B3 ; |192|
LDW .D2T2 *+SP(4),B13 ; |192|
ADD .D1 A5,A3,A3 ; |186|
STW .D1T1 A3,*+A11(4) ; |186|
RET .S2 B3 ; |192|
|| LDDW .D2T1 *+SP(8),A11:A10 ; |192|
|| MV .D1 A10,A4
LDW .D2T1 *++SP(24),A14 ; |192|
NOP 4
; BRANCH OCCURS ; |192|
.sect ".text"
.global _dstr_put
;******************************************************************************
;* FUNCTION NAME: _dstr_put *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,B10,B11,B12,B13,SP,A16,A17,A18,A19, *
;* A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31, *
;* B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27, *
;* B28,B29,B30,B31 *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,B10,B11,B12,B13,SP,A16,A17,A18,A19, *
;* A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30,A31, *
;* B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26,B27, *
;* B28,B29,B30,B31 *
;* Local Frame Size : 0 Args + 0 Auto + 20 Save = 20 byte *
;******************************************************************************
_dstr_put:
;** --------------------------------------------------------------------------*
STW .D2T1 A10,*SP--(24) ; |198|
STDW .D2T2 B13:B12,*+SP(16) ; |198|
MV .S2X A4,B10 ; |198|
|| STDW .D2T2 B11:B10,*+SP(8) ; |198|
LDW .D2T2 *+B10(4),B4 ; |206|
NOP 1
MV .D2 B3,B13 ; |198|
ZERO .L2 B5 ; |208|
MVK .D1 0x1,A6 ; |211|
CMPLT .L2 B4,0,B0 ; |206|
[!B0] B .S1 L5 ; |206|
MVKL .S2 _DAT_copy,B6 ; |211|
MVKH .S2 _DAT_copy,B6 ; |211|
[ B0] STW .D2T2 B5,*+B10(4) ; |208|
[ B0] LDW .D2T2 *B10,B4 ; |211|
[!B0] LDW .D2T2 *+B10(8),B6 ; |222|
; BRANCH OCCURS ; |206|
;** --------------------------------------------------------------------------*
CALL .S2 B6 ; |211|
|| LDW .D2T2 *+B10(4),B7 ; |211|
LDW .D2T1 *+B10(12),A4 ; |211|
ADDKPC .S2 RL5,B3,0 ; |211|
STH .D2T2 B5,*+B10(16) ; |209|
NOP 1
ADD .L2 B7,B4,B4 ; |211|
RL5: ; CALL OCCURS ; |211|
BNOP .S1 L7,1 ; |216|
MV .D1 A4,A3 ; |211|
STW .D2T1 A3,*+B10(28) ; |215|
LDW .D2T1 *+B10(12),A4 ; |216|
MV .S2 B13,B3 ; |252|
|| LDDW .D2T2 *+SP(8),B11:B10 ; |252|
; BRANCH OCCURS ; |216|
;** --------------------------------------------------------------------------*
L5:
NOP 4
CMPLTU .L2 B4,B6,B0 ; |222|
[!B0] B .S1 L6 ; |222|
MVKL .S2 _DAT_copy,B5 ; |225|
[ B0] LDHU .D2T1 *+B10(16),A3 ; |225|
|| MVKH .S2 _DAT_copy,B5 ; |225|
[ B0] LDW .D2T2 *+B10(12),B7 ; |225|
[!B0] LDHU .D2T2 *+B10(22),B4 ; |235|
[!B0] LDHU .D2T2 *+B10(16),B5 ; |235|
; BRANCH OCCURS ; |222|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |225|
|| LDW .D2T2 *B10,B6 ; |225|
LDHU .D2T1 *+B10(22),A6 ; |225|
ADDKPC .S2 RL6,B3,1 ; |225|
ADD .D1X A3,B7,A4 ; |225|
ADD .D2 B4,B6,B4 ; |225|
RL6: ; CALL OCCURS ; |225|
MV .D2X A4,B11 ; |225|
LDHU .D2T2 *+B10(22),B4 ; |235|
LDHU .D2T2 *+B10(16),B5 ; |235|
;** --------------------------------------------------------------------------*
L6:
LDW .D2T2 *+B10(4),B6 ; |234|
LDHU .D2T2 *+B10(26),B7 ; |234|
MVKL .S1 _DAT_wait,A3 ; |241|
LDW .D2T2 *+B10(12),B12 ; |236|
|| MVKH .S1 _DAT_wait,A3 ; |241|
XOR .S2 B4,B5,B4 ; |235|
|| LDW .D2T1 *+B10(28),A4 ; |241|
CALL .S2X A3 ; |241|
|| STH .D2T2 B4,*+B10(16) ; |235|
LDHU .D2T1 *+B10(16),A10 ; |236|
ADDKPC .S2 RL7,B3,1 ; |241|
ADD .D2 B7,B6,B4 ; |234|
STW .D2T2 B4,*+B10(4) ; |234|
RL7: ; CALL OCCURS ; |241|
ADD .D1X A10,B12,A4 ; |236|
|| STW .D2T2 B11,*+B10(28) ; |246|
LDDW .D2T2 *+SP(8),B11:B10 ; |252|
|| MV .S2 B13,B3 ; |252|
;** --------------------------------------------------------------------------*
L7:
RET .S2 B3 ; |252|
|| LDDW .D2T2 *+SP(16),B13:B12 ; |252|
LDW .D2T1 *++SP(24),A10 ; |252|
NOP 4
; BRANCH OCCURS ; |252|
.sect ".text"
.global _dstr_get_2D
;******************************************************************************
;* FUNCTION NAME: _dstr_get_2D *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,B0,*
;* B1,B2,B3,B4,B5,B6,B7,B8,B9,B13,SP,A16,A17,A18, *
;* A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30, *
;* A31,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26, *
;* B27,B28,B29,B30,B31 *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14,B0,*
;* B1,B2,B3,B4,B5,B6,B7,B8,B9,B13,SP,A16,A17,A18, *
;* A19,A20,A21,A22,A23,A24,A25,A26,A27,A28,A29,A30, *
;* A31,B16,B17,B18,B19,B20,B21,B22,B23,B24,B25,B26, *
;* B27,B28,B29,B30,B31 *
;* Local Frame Size : 0 Args + 0 Auto + 24 Save = 24 byte *
;******************************************************************************
_dstr_get_2D:
;** --------------------------------------------------------------------------*
STW .D2T1 A14,*SP--(24) ; |259|
STDW .D2T1 A13:A12,*+SP(16) ; |259|
MV .D1 A4,A11 ; |259|
|| STDW .D2T1 A11:A10,*+SP(8) ; |259|
LDHU .D1T1 *+A11(22),A7 ; |277|
LDHU .D1T1 *+A11(24),A8 ; |277|
LDHU .D1T1 *+A11(16),A6 ; |276|
LDHU .D1T1 *+A11(16),A4 ; |280|
LDW .D1T1 *+A11(8),A18 ; |298|
LDW .D1T2 *+A11(4),B4 ; |298|
LDHU .D1T1 *+A11(20),A3 ; |277|
|| MPYU .M1 A7,A8,A5 ; |277|
LDW .D1T1 *+A11(12),A9 ; |276|
LDHU .D1T1 *+A11(18),A19 ; |289|
|| ADD .S1 A5,A4,A4 ; |280|
STH .D1T1 A4,*+A11(16) ; |280|
LDHU .D1T1 *+A11(16),A20 ; |289|
CMPLTU .L2X B4,A18,B0 ; |298|
[!B0] B .S1 L8 ; |298|
CMPLT .L1 A6,A3,A0 ; |279|
|| SUB .D1 A6,A3,A16 ; |279|
ADD .D1 A6,A9,A13 ; |276|
|| ADD .S1 A9,A16,A10 ; |279|
|| ADD .L1 A3,A5,A17 ; |277|
[ A0] ADD .D1 A3,A9,A10 ; |279|
|| MVKL .S1 0x5200001,A4 ; |300|
|| CMPLT .L1 A20,A19,A1 ; |289|
|| MVKL .S2 _DAT_copy2d,B5 ; |300|
MVKH .S1 0x5200001,A4 ; |300|
|| SUB .D1 A3,A5,A5 ; |290|
|| CMPLT .L1 A6,A17,A16 ; |277|
|| MVKH .S2 _DAT_copy2d,B5 ; |300|
[!A1] STH .D1T1 A5,*+A11(16) ; |290|
|| ADD .S1 A6,A9,A6 ; |276|
|| XOR .L1 1,A16,A12 ; |277|
|| MV .S2 B3,B13 ; |259|
|| STW .D2T2 B13,*+SP(4) ; |259|
|| MV .L2X A7,B6 ; |300|
; BRANCH OCCURS ; |298|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |300|
|| LDW .D1T1 *A11,A3 ; |300|
LDHU .D1T2 *+A11(26),B8 ; |300|
ADDKPC .S2 RL8,B3,2 ; |300|
ADD .D2X B4,A3,B4 ; |300|
RL8: ; CALL OCCURS ; |300|
MV .D1 A4,A14 ; |300|
;** --------------------------------------------------------------------------*
L8:
MV .D1 A12,A0 ; |315|
[!A0] B .S1 L9 ; |313|
MVKL .S2 _DAT_copy,B5 ; |315|
MVKH .S2 _DAT_copy,B5 ; |315|
|| MV .S1 A13,A4 ; |315|
|| [ A0] LDHU .D1T1 *+A11(22),A5 ; |315|
[ A0] LDHU .D1T1 *+A11(24),A3 ; |315|
|| [!A0] MVKL .S2 _DAT_wait,B4 ; |323|
NOP 1
[!A0] MVKH .S2 _DAT_wait,B4 ; |323|
; BRANCH OCCURS ; |313|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |315|
MV .D2X A10,B4
MPYU .M1 A3,A5,A6 ; |315|
MPYU .M1 A5,A3,A3 ; |315|
ADDKPC .S2 RL9,B3,0 ; |315|
SUB .L2X B4,A6,B4 ; |315|
|| EXTU .S1 A3,16,16,A6 ; |315|
RL9: ; CALL OCCURS ; |315|
MV .D1 A4,A14 ; |315|
MVKL .S2 _DAT_wait,B4 ; |323|
MVKH .S2 _DAT_wait,B4 ; |323|
;** --------------------------------------------------------------------------*
L9:
CALL .S2 B4 ; |323|
LDW .D1T1 *+A11(28),A4 ; |323|
ADDKPC .S2 RL10,B3,3 ; |323|
RL10: ; CALL OCCURS ; |323|
LDHU .D1T1 *+A11(24),A3 ; |329|
LDHU .D1T1 *+A11(26),A4 ; |329|
LDW .D1T1 *+A11(4),A5 ; |329|
LDDW .D2T1 *+SP(16),A13:A12 ; |335|
MV .S2 B13,B3 ; |335|
LDW .D2T2 *+SP(4),B13 ; |335|
MPYU .M1 A4,A3,A3 ; |329|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -