📄 dstr_2d.asm
字号:
STW .D1T1 A14,*+A11(28) ; |328|
ADD .D1 A3,A5,A3 ; |329|
STW .D1T1 A3,*+A11(4) ; |329|
RET .S2 B3 ; |335|
|| LDDW .D2T1 *+SP(8),A11:A10 ; |335|
|| MV .D1 A10,A4 ; |329|
LDW .D2T1 *++SP(24),A14 ; |335|
NOP 4
; BRANCH OCCURS ; |335|
.sect ".text"
.global _dstr_put_2D
;******************************************************************************
;* FUNCTION NAME: _dstr_put_2D *
;* *
;* 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_2D:
;** --------------------------------------------------------------------------*
STW .D2T1 A10,*SP--(24) ; |341|
STDW .D2T2 B13:B12,*+SP(16) ; |341|
MV .S2X A4,B10 ; |341|
|| STDW .D2T2 B11:B10,*+SP(8) ; |341|
LDW .D2T1 *+B10(4),A3 ; |349|
NOP 1
MV .D2 B3,B13 ; |341|
ZERO .L2 B4 ; |351|
MVK .D1 0x1,A6 ; |353|
CMPLT .L1 A3,0,A0 ; |349|
[!A0] B .S1 L10 ; |349|
MVKL .S2 _DAT_copy,B5 ; |353|
MVKH .S2 _DAT_copy,B5 ; |353|
[ A0] STW .D2T2 B4,*+B10(4) ; |351|
[ A0] LDW .D2T2 *B10,B6 ; |353|
[!A0] LDW .D2T2 *+B10(8),B4 ; |363|
; BRANCH OCCURS ; |349|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |353|
|| LDW .D2T2 *+B10(4),B7 ; |353|
LDW .D2T1 *+B10(12),A4 ; |353|
ADDKPC .S2 RL11,B3,2 ; |353|
ADD .L2 B7,B6,B4 ; |353|
|| STH .D2T2 B4,*+B10(16) ; |352|
RL11: ; CALL OCCURS ; |353|
BNOP .S1 L12,1 ; |357|
MV .D1 A4,A3 ; |353|
STW .D2T1 A3,*+B10(28) ; |356|
LDW .D2T1 *+B10(12),A4 ; |357|
LDDW .D2T2 *+SP(8),B11:B10 ; |395|
|| MV .S2 B13,B3 ; |395|
; BRANCH OCCURS ; |357|
;** --------------------------------------------------------------------------*
L10:
MVKL .S1 0x1a00001,A4 ; |365|
MVKL .S2 _DAT_copy2d,B5 ; |365|
MVKH .S1 0x1a00001,A4 ; |365|
MVKH .S2 _DAT_copy2d,B5 ; |365|
CMPLTU .L1X A3,B4,A0 ; |363|
[!A0] BNOP .S1 L11,1 ; |363|
[ A0] LDHU .D2T2 *+B10(16),B6 ; |365|
[ A0] LDW .D2T2 *+B10(12),B4 ; |365|
[!A0] LDHU .D2T2 *+B10(22),B5 ; |378|
NOP 1
; BRANCH OCCURS ; |363|
;** --------------------------------------------------------------------------*
LDW .D2T2 *B10,B7 ; |365|
LDHU .D2T2 *+B10(26),B8 ; |365|
CALL .S2 B5 ; |365|
|| LDHU .D2T1 *+B10(24),A8 ; |365|
LDHU .D2T2 *+B10(22),B6 ; |365|
|| ADD .S2 B6,B4,B4 ; |365|
ADDKPC .S2 RL12,B3,2 ; |365|
ADD .D1X A3,B7,A6 ; |365|
RL12: ; CALL OCCURS ; |365|
MV .D2X A4,B11 ; |365|
LDHU .D2T2 *+B10(22),B5 ; |378|
;** --------------------------------------------------------------------------*
L11:
LDHU .D2T2 *+B10(24),B4 ; |377|
LDHU .D2T2 *+B10(16),B6 ; |378|
LDHU .D2T2 *+B10(26),B8 ; |377|
LDW .D2T2 *+B10(4),B7 ; |377|
MVKL .S1 _DAT_wait,A3 ; |384|
MPYU .M2 B5,B4,B5 ; |378|
LDW .D2T2 *+B10(12),B12 ; |379|
|| MVKH .S1 _DAT_wait,A3 ; |384|
XOR .S2 B5,B6,B4 ; |378|
|| MPYU .M2 B8,B4,B5 ; |377|
|| LDW .D2T1 *+B10(28),A4 ; |384|
CALL .S2X A3 ; |384|
|| STH .D2T2 B4,*+B10(16) ; |378|
LDHU .D2T1 *+B10(16),A10 ; |379|
ADDKPC .S2 RL13,B3,1 ; |384|
ADD .D2 B5,B7,B4 ; |377|
STW .D2T2 B4,*+B10(4) ; |377|
RL13: ; CALL OCCURS ; |384|
ADD .D1X A10,B12,A4 ; |379|
|| STW .D2T2 B11,*+B10(28) ; |389|
LDDW .D2T2 *+SP(8),B11:B10 ; |395|
|| MV .S2 B13,B3 ; |395|
;** --------------------------------------------------------------------------*
L12:
RET .S2 B3 ; |395|
|| LDDW .D2T2 *+SP(16),B13:B12 ; |395|
LDW .D2T1 *++SP(24),A10 ; |395|
NOP 4
; BRANCH OCCURS ; |395|
.sect ".text"
.global _dstr_rewind
;******************************************************************************
;* FUNCTION NAME: _dstr_rewind *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,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,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 + 16 Save = 16 byte *
;******************************************************************************
_dstr_rewind:
;** --------------------------------------------------------------------------*
CMPEQ .L2X A6,1,B0 ; |422|
[!B0] B .S1 L13 ; |422|
STW .D2T1 A12,*SP--(16) ; |407|
MV .D1 A4,A10 ; |407|
|| STDW .D2T1 A11:A10,*+SP(8) ; |407|
|| ZERO .S1 A3 ; |417|
STH .D1T1 A3,*+A10(16) ; |417|
STW .D1T2 B4,*A10 ; |416|
|| MV .S1 A6,A12 ; |407|
|| MVKL .S2 _DAT_wait,B5 ; |425|
MVK .S1 -1,A3 ; |424|
|| MV .L2 B3,B13 ; |407|
|| STW .D2T2 B13,*+SP(4) ; |407|
|| STW .D1T1 A3,*+A10(4) ; |418|
|| MV .L1X B6,A11 ; |407|
|| MVKH .S2 _DAT_wait,B5 ; |425|
; BRANCH OCCURS ; |422|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |425|
LDW .D1T1 *+A10(28),A4 ; |425|
ADDKPC .S2 RL14,B3,0 ; |425|
STW .D1T1 A3,*+A10(4) ; |424|
NOP 2
RL14: ; CALL OCCURS ; |425|
;** --------------------------------------------------------------------------*
L13:
MV .D1 A12,A0 ; |439|
[ A0] BNOP .S1 L14,1 ; |432|
MVKL .S1 0x5200001,A4 ; |439|
|| MVKL .S2 _DAT_copy2d,B5 ; |439|
MVKH .S1 0x5200001,A4 ; |439|
|| MVKH .S2 _DAT_copy2d,B5 ; |439|
|| [!A0] LDHU .D1T1 *+A10(24),A3 ; |439|
[!A0] LDW .D1T1 *+A10(12),A6 ; |439|
[!A0] LDHU .D1T2 *+A10(26),B8 ; |439|
|| [ A0] LDDW .D2T1 *+SP(8),A11:A10 ; |452|
|| [ A0] MV .S2 B13,B3 ; |452|
; BRANCH OCCURS ; |432|
;** --------------------------------------------------------------------------*
CALL .S2 B5 ; |439|
|| LDHU .D1T2 *+A10(22),B6 ; |439|
LDW .D1T2 *A10,B4 ; |439|
ADDKPC .S2 RL15,B3,0 ; |439|
MPYU .M1 A3,A11,A3 ; |439|
NOP 1
EXTU .S1 A3,16,16,A8 ; |439|
RL15: ; CALL OCCURS ; |439|
LDHU .D1T1 *+A10(24),A5 ; |446|
LDHU .D1T1 *+A10(26),A3 ; |446|
LDHU .D1T1 *+A10(22),A6 ; |447|
LDW .D1T1 *+A10(4),A8 ; |446|
STW .D1T1 A4,*+A10(28) ; |448|
MV .S2 B13,B3 ; |452|
MPYU .M1 A3,A5,A3 ; |446|
MPYU .M1 A6,A5,A6 ; |447|
LDHU .D1T1 *+A10(16),A5 ; |447|
|| MPYLHU .M1 A11,A3,A7 ; |446|
MPYU .M1 A11,A3,A3 ; |446|
SHL .S1 A7,16,A7 ; |446|
ADD .D1 A3,A7,A3 ; |446|
|| MPYUS .M1 A11,A6,A6 ; |447|
ADD .S1 A3,A8,A3 ; |446|
STW .D1T1 A3,*+A10(4) ; |446|
|| ADD .S1 A6,A5,A4 ; |447|
STH .D1T1 A4,*+A10(16) ; |447|
LDDW .D2T1 *+SP(8),A11:A10 ; |452|
;** --------------------------------------------------------------------------*
L14:
RET .S2 B3 ; |452|
|| LDW .D2T2 *+SP(4),B13 ; |452|
LDW .D2T1 *++SP(16),A12 ; |452|
NOP 3
ZERO .D1 A4 ; |451|
; BRANCH OCCURS ; |452|
.sect ".text"
.global _dstr_close
;******************************************************************************
;* FUNCTION NAME: _dstr_close *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6, *
;* B7,B8,B9,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,B0,B1,B2,B3,B4,B5,B6, *
;* B7,B8,B9,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 + 4 Save = 4 byte *
;******************************************************************************
_dstr_close:
;** --------------------------------------------------------------------------*
MVKL .S2 _DAT_wait,B4 ; |466|
MVKH .S2 _DAT_wait,B4 ; |466|
CALLRET .S2 B4 ; |466|
LDW .D1T1 *+A4(28),A4 ; |466|
NOP 4
RL16: ; CALL OCCURS ; |467| ; bypass _dstr_close upon return
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;******************************************************************************
.global _DAT_copy
.global _DAT_wait
.global _DAT_copy2d
.global __remi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -