📄 c6x.asm
字号:
MVKL .S2 SL1+0,B4 ; |46|
MVKH .S2 SL1+0,B4 ; |46|
STW .D2T2 B4,*+SP(4) ; |46|
LDW .D2T2 *+SP(16),B4 ; |46|
CALL .S1 _printf ; |46|
MVKL .S2 RL0,B3 ; |46|
NOP 2
STW .D2T2 B4,*+SP(8) ; |46|
MVKH .S2 RL0,B3 ; |46|
RL0: ; CALL OCCURS ; |46|
.line 20
ZERO .D2 B4 ; |47|
MVK .S2 16,B4 ; |47|
|| STW .D2T2 B4,*+SP(12) ; |47|
|| ZERO .L2 B5 ; |47|
CMPLT .L2 B5,B4,B0 ; |47|
[!B0] B .S1 L10 ; |47|
NOP 5
; BRANCH OCCURS ; |47|
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
L9:
ADD .D2 1,B5,B5 ; |47|
CMPLT .L2 B5,B4,B0 ; |47|
[ B0] B .S1 L9 ; |47|
STW .D2T2 B5,*+SP(12) ; |47|
NOP 4
; BRANCH OCCURS ; |47|
;** --------------------------------------------------------------------------*
L10:
.line 22
LDW .D2T2 *++SP(24),B3 ; |49|
NOP 4
RET .S2 B3 ; |49|
NOP 5
; BRANCH OCCURS ; |49|
.endfunc 49,000080000h,24
.sect ".text"
.global _WriteIsOver
.sym _WriteIsOver,_WriteIsOver, 32, 2, 0
.func 51
;******************************************************************************
;* FUNCTION NAME: _WriteIsOver *
;* *
;* Regs Modified : A0,A3,B0,B4,B5,SP *
;* Regs Used : A0,A3,B0,B3,B4,B5,SP *
;* Local Frame Size : 0 Args + 8 Auto + 0 Save = 8 byte *
;******************************************************************************
_WriteIsOver:
;** --------------------------------------------------------------------------*
.line 2
.sym _i,4, 14, 1, 32
.sym _LastToggleBit,8, 12, 1, 8
.sym _CurrentToggleBit,9, 12, 1, 8
SUB .D2 SP,8,SP ; |52|
.line 5
ZERO .D2 B4 ; |55|
MVKH .S2 0x90000000,B4 ; |55|
LDBU .D2T2 *B4,B5 ; |55|
MVK .S2 64,B4 ; |55|
NOP 3
AND .S2 B4,B5,B4 ; |55|
STB .D2T2 B4,*+SP(8) ; |55|
NOP 2
.line 6
ZERO .D1 A0 ; |56|
MVKH .S1 0x90000000,A0 ; |56|
LDBU .D1T1 *A0,A3 ; |56|
MVK .S1 64,A0 ; |56|
NOP 3
AND .S1 A0,A3,A0 ; |56|
STB .D2T1 A0,*+SP(9) ; |56|
NOP 2
.line 7
ZERO .D2 B4 ; |57|
STW .D2T2 B4,*+SP(4) ; |57|
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
L11:
.line 9
LDBU .D2T2 *+SP(9),B4 ; |59|
NOP 4
STB .D2T2 B4,*+SP(8) ; |59|
NOP 2
.line 10
ZERO .D1 A0 ; |60|
MVKH .S1 0x90000000,A0 ; |60|
LDBU .D1T1 *A0,A3 ; |60|
MVK .S1 64,A0 ; |60|
NOP 3
AND .S1 A0,A3,A0 ; |60|
STB .D2T1 A0,*+SP(9) ; |60|
NOP 2
.line 11
LDBU .D2T2 *+SP(9),B5 ; |61|
LDBU .D2T2 *+SP(8),B4 ; |61|
NOP 4
CMPEQ .L2 B4,B5,B0 ; |61|
[ B0] B .S1 L12 ; |61|
NOP 5
; BRANCH OCCURS ; |61|
;** --------------------------------------------------------------------------*
.line 12
LDW .D2T2 *+SP(4),B4 ; |62|
B .S1 L11 ; |62|
NOP 3
ADD .D2 1,B4,B4 ; |62|
STW .D2T2 B4,*+SP(4) ; |62|
; BRANCH OCCURS ; |62|
;** --------------------------------------------------------------------------*
L12:
.line 13
RET .S2 B3 ; |63|
ADD .D2 8,SP,SP ; |63|
NOP 4
; BRANCH OCCURS ; |63|
.endfunc 63,000000000h,8
.sect ".text"
.global _EraseChip
.sym _EraseChip,_EraseChip, 32, 2, 0
.func 65
;******************************************************************************
;* FUNCTION NAME: _EraseChip *
;* *
;* Regs Modified : A0,A3,B0,B3,B4,B5,SP *
;* Regs Used : A0,A3,B0,B3,B4,B5,SP *
;* Local Frame Size : 0 Args + 0 Auto + 4 Save = 4 byte *
;******************************************************************************
_EraseChip:
;** --------------------------------------------------------------------------*
.line 2
STW .D2T2 B3,*SP--(8) ; |66|
NOP 2
.line 3
MVKL .S2 0x90001554,B4 ; |67|
MVKH .S2 0x90001554,B4 ; |67|
|| MVK .S1 170,A0 ; |67|
STB .D2T1 A0,*B4 ; |67|
NOP 2
.line 4
MVKL .S2 0x90000aa8,B4 ; |68|
MVKH .S2 0x90000aa8,B4 ; |68|
|| MVK .S1 85,A0 ; |68|
STB .D2T1 A0,*B4 ; |68|
NOP 2
.line 5
MVKL .S2 0x90001554,B4 ; |69|
MVKH .S2 0x90001554,B4 ; |69|
|| MVK .S1 128,A0 ; |69|
STB .D2T1 A0,*B4 ; |69|
NOP 2
.line 6
MVKL .S2 0x90001554,B4 ; |70|
MVKH .S2 0x90001554,B4 ; |70|
|| MVK .S1 170,A0 ; |70|
STB .D2T1 A0,*B4 ; |70|
NOP 2
.line 7
MVKL .S2 0x90000aa8,B4 ; |71|
MVKH .S2 0x90000aa8,B4 ; |71|
|| MVK .S1 85,A0 ; |71|
STB .D2T1 A0,*B4 ; |71|
NOP 2
.line 8
MVKL .S1 0x90001554,A0 ; |72|
MVK .S2 16,B4 ; |72|
|| MVKH .S1 0x90001554,A0 ; |72|
STB .D1T2 B4,*A0 ; |72|
NOP 2
.line 10
CALL .S1 _WriteIsOver ; |74|
MVKL .S2 RL1,B3 ; |74|
MVKH .S2 RL1,B3 ; |74|
NOP 3
RL1: ; CALL OCCURS ; |74|
.line 11
LDW .D2T2 *++SP(8),B3 ; |75|
NOP 4
RET .S2 B3 ; |75|
NOP 5
; BRANCH OCCURS ; |75|
.endfunc 75,000080000h,8
.sect ".text"
.global _WriteByte
.sym _WriteByte,_WriteByte, 32, 2, 0
.func 77
;******************************************************************************
;* FUNCTION NAME: _WriteByte *
;* *
;* Regs Modified : A0,A3,B0,B3,B4,B5,B6,SP *
;* Regs Used : A0,A3,A4,B0,B3,B4,B5,B6,SP *
;* Local Frame Size : 0 Args + 8 Auto + 4 Save = 12 byte *
;******************************************************************************
_WriteByte:
;** --------------------------------------------------------------------------*
.line 2
.sym _Addr,4, 14, 17, 32
.sym _Val,20, 12, 17, 8
.sym _Addr,4, 14, 1, 32
.sym _Val,8, 12, 1, 8
STW .D2T2 B3,*SP--(16) ; |78|
NOP 2
MV .S1X B4,A0 ; |78|
STB .D2T1 A0,*+SP(8) ; |78|
STW .D2T1 A4,*+SP(4) ; |78|
NOP 2
.line 4
MVKL .S2 0x90001554,B4 ; |80|
MVK .S1 170,A0 ; |80|
|| MVKH .S2 0x90001554,B4 ; |80|
STB .D2T1 A0,*B4 ; |80|
NOP 2
.line 6
MVKL .S2 0x90000aa8,B4 ; |82|
MVK .S1 85,A0 ; |82|
|| MVKH .S2 0x90000aa8,B4 ; |82|
STB .D2T1 A0,*B4 ; |82|
NOP 2
.line 8
MVKL .S1 0x90001554,A0 ; |84|
MVKH .S1 0x90001554,A0 ; |84|
|| MVK .S2 160,B4 ; |84|
STB .D1T2 B4,*A0 ; |84|
NOP 2
.line 10
LDW .D2T2 *+SP(4),B6 ; |86|
LDBU .D2T2 *+SP(8),B5 ; |86|
ZERO .D2 B4 ; |86|
MVKH .S2 0x90000000,B4 ; |86|
NOP 1
SHL .S2 B6,2,B6 ; |86|
STB .D2T2 B5,*+B6[B4] ; |86|
NOP 2
.line 12
CALL .S1 _WriteIsOver ; |88|
MVKL .S2 RL2,B3 ; |88|
MVKH .S2 RL2,B3 ; |88|
NOP 3
RL2: ; CALL OCCURS ; |88|
.line 13
LDW .D2T2 *++SP(16),B3 ; |89|
NOP 4
RET .S2 B3 ; |89|
NOP 5
; BRANCH OCCURS ; |89|
.endfunc 89,000080000h,16
.sect ".text"
.global _mem_read
.sym _mem_read,_mem_read, 36, 2, 0
.func 91
;******************************************************************************
;* FUNCTION NAME: _mem_read *
;* *
;* Regs Modified : A4,B4,SP *
;* Regs Used : A4,B3,B4,SP *
;* Local Frame Size : 0 Args + 8 Auto + 0 Save = 8 byte *
;******************************************************************************
_mem_read:
;** --------------------------------------------------------------------------*
.line 2
.sym _Address,4, 20, 17, 32
.sym _Address,4, 20, 1, 32
.sym _Value,8, 4, 1, 32
SUB .D2 SP,8,SP ; |92|
STW .D2T1 A4,*+SP(4) ; |92|
NOP 2
.line 4
MV .S2X A4,B4
LDW .D2T2 *B4,B4 ; |94|
NOP 4
STW .D2T2 B4,*+SP(8) ; |94|
NOP 2
.line 5
MV .S1X B4,A4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -