📄 encode.asm
字号:
.mmregs
STACK .usect "STACK" ,10h
EncodeDP .usect "Encode",0
CRAM1 .usect "Encode",1
CRAM2 .usect "Encode",1
CON_ROR .usect "Encode",1
UnCodeBit .usect "Encode",1
CodeBits .usect "Encode",2
BIT_00 .set 10000000B
BIT_01 .set 01000000B
BIT_02 .set 00100000B
.def start
start: STM #0,SWWSR
STM #STACK+10h,SP
STM #CON_ROR,AR2
ST #0,*AR2
STM #CodeBits,AR2
ST #0,*AR2+
ST #0,*AR2
STM #UnCodeBit,AR2
ST #0,*AR2
encodeloop
LD #EncodeDP,DP
LD CON_ROR ,A
LD UnCodeBit,B
SFTA A,-1
SFTA B,7
ADD B,A
STL A,CON_ROR
CALL con_one
CALL con_two
LD CRAM1,A
LD CRAM2,B
STM #CodeBits ,AR2
STL A,*AR2+
STL B,*AR2
NOP
B encodeloop
con_one
STM #0,AR0
BITF CON_ROR,BIT_00
NOP
NOP
XC 1,TC
MAR *AR0+
BITF CON_ROR,BIT_02
NOP
NOP
XC 1,TC
MAR *AR0+
MVKD AR0,CRAM1
ANDM #1B,CRAM1
RET
con_two
STM #0,AR0
BITF CON_ROR,BIT_00
NOP
NOP
XC 1,TC
MAR *AR0+
BITF CON_ROR,BIT_01
NOP
NOP
XC 1,TC
MAR *AR0+
BITF CON_ROR,BIT_02
NOP
NOP
XC 1,TC
ADD *AR0+,A
MVKD AR0,CRAM2
ANDM #1B,CRAM2
RET
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -