📄 encode.asm
字号:
;Function:Encode
; .def Encode
.text
.def Encode
.ref Bw0_data,Encoded_data
Encode:
amov #Bw0_data+25,xar0
amov #Encoded_data,xar1
mov #0,ac0 ;ac0用于存放编码器目前的状态
mov #5,t1
mov #5,brc0
rptb IniAc0-1
mov *ar0-,ac1
sfts ac1,t1
or ac1,ac0
sub #1,t1
IniAc0:
; mov #Bw0_data,ar0
amov #Bw0_data,xar0
;mov #0,ac0
mov #(26-1),brc0
rptb Loop1-1
mov *ar0+,ac1
mov ac1,ac2
sfts ac2,#6 ;data(i)
xor ac0<<#2,ac2 ;mod(data(i)+g(2),2)
xor ac0<<#3,ac2 ;mod(data(i)+g(2)+g(3),2)
xor ac0<<#5,ac2 ;mod(data(i)+g(2)+g(3)+g(5),2)
xor ac0<<#6,ac2 ;mod(data(i)+g(2)+g(3)+g(5)+g(6),2)
sfts ac2,#-6
and #0001,ac2
mov ac2,*ar1+ ;get g0
mov ac1,ac2
sfts ac2,#6
xor ac0<<#1,ac2
xor ac0<<#2,ac2
xor ac0<<#3,ac2
xor ac0<<#6,ac2
sfts ac2,#-6
and #0001,ac2
mov ac2,*ar1+ ;get g1
sfts ac0,#-1 ;把g(6)移出去
sfts ac1,#5
or ac1,ac0
Loop1:
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -