?? main.asm
字號:
.mmregs
.def _start
.global _input
.global _output
.data
table:
.word 0,1,18,2,5,19,11,3,29,6,27,20,8,12,23,4,10,30,17,7,22,28,26,21,25,9,16,13,14,24,15
.word 1,2,4,8,16,5,10,20,13,26,17,7,14,28,29,31,27,19,3,6,12,24,21,15,30,25,23,11,22,9,18
.bss x,1
.bss re_polynomial,31
.bss rs_fountain,31
.bss data8,405
.bss data5,648
.bss check,96
.text
_start:
stm #re_polynomial,ar1
rpt #62
mvpd #table,*ar1+
stm #_input,ar3
stm #data8,ar4
stm #data5,ar5
stm #404,ar2
ld #16384,a
begin: mvdd *ar3+,*ar4
stm #7,brc
rptb scramblerend-1
and #16385,a,b
stl b,#-14,*(x)
xor *(x),b
xor *ar4,b
rsbx c
ror a
and #1,b
or b,#14,a
sftl b,#8
add *ar4,b
stl b,#-1,*ar4
scramblerend:
mar *ar4+
banz begin,*ar2-
*** 8-5切分器 ***
stm #data8,ar4
stm #5,ar0
stm #80,ar1
begin85:
stm #7,ar2
l0: stm #4,brc
rptbd l1-1
ld #0,b
nop
ld *ar4,a
ror a
stl a,*ar4+
ror b
l1: sth b,#-11,*ar5+
mar *ar4-0
banz l0,*ar2-
mar *ar4+0
banz begin85,*ar1-
*** RS 編碼 ***
stm #4,ar0
stm #data5,ar3
stm #check,ar4
stm #check,ar5
rpt #95
st #0,*ar5+
stm #check+1,ar5
stm #23,ar1
RS_begin:
stm #26,brc
rptb l13-1
ld *ar3+,a
xor *ar4,a
bc l2,aneq
mvdd *ar5+,*ar4+
mvdd *ar5+,*ar4+
mvdd *ar5+,*ar4+
st #0,*ar4+
mar *ar5+
b l12
l2: add #re_polynomial,a
l3: sub #1,a
stlm a,ar2
nop
nop
ld *ar2,a
sub #6,a,b
bc l4,bgt
add #24,a,b
b l5
l4: sub #7,a,b
l5: add #rs_fountain,b
stlm b,ar2
nop
nop
ld *ar2,b
xor *ar5+,b
stl b,*ar4+
sub #11,a,b
bc l6,bgt
add #19,a,b
b l7
l6: sub #12,a,b
l7: add #rs_fountain,b
stlm b,ar2
nop
nop
ld *ar2,b
xor *ar5+,b
stl b,*ar4+
sub #1,a,b
bc l8,bgt
add #29,a,b
b l9
l8: sub #2,a,b
l9: add #rs_fountain,b
stlm b,ar2
nop
nop
ld *ar2,b
xor *ar5+,b
stl b,*ar4+
sub #20,a,b
bc l10,bgt
add #10,a,b
b l11
l10: sub #21,a,b
l11: add #rs_fountain,b
stlm b,ar2
nop
nop
mvdd *ar2,*ar4+
mar *ar5+
l12: mar *ar4-0
mar *ar5-0
l13: mar *ar4+0
mar *ar5+0
banz RS_begin,*ar1-
ret
.end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -