📄 bitreverse test.asm
字号:
/*--------------------------------------------------------------------------
INCLUDES
--------------------------------------------------------------------------*/
#include <def21065l.h>
/*--------------------------------------------------------------------------
CONSTANT & MACRO DEFINITIONS
--------------------------------------------------------------------------*/
#define TRANSBYTENUM 8
#define REVERSESTEP 0x20000000 //通过公式2^(32-TRANSBYTENUM)自己或用程序计算
/*--------------------------------------------------------------------------
GLOBAL DECLARATIONS
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
.SEGMENT/DM seg_dmda;
.VAR DataSource[TRANSBYTENUM]={0,1,2,3,4,5,6,7};
.VAR DataDestination[TRANSBYTENUM];
.ENDSEG;
/*---------------------------------------------------------------------------*/
.SEGMENT/PM seg_int_rst;
NOP; JUMP _main; RTI; RTI;
.ENDSEG;
.SEGMENT /PM seg_pmco;
/* ---------------------------------------------------------------------------
;
; main: Notes demo main function.
;
----------------------------------------------------------------------------*/
_main:
BIT SET MODE1 BR0; //设置位反转模式
B0=DataSource;
I0=DataSource; //将数据源基址赋给有位反序能力的I0寄存器
M0=REVERSESTEP; //设置数据源地址修正的位反序步长
L0=0; //禁止位循环缓冲功能
BITREV(I0,0); //将基址进行位反序
B1=DataDestination; //将数据目的基址赋给有位反序能力的I0寄存器
I1=DataDestination; //将数据目的基址赋给有位反序能力的I0寄存器
M1=1; //I1是没有位反序能力的DAG
L1=0;
LCNTR=TRANSBYTENUM, DO TransByte UNTIL LCE;
R0=DM(I0,M0);
TransByte: DM(I1,M1)=R0;
wait: /* 循环等待*/
IDLE;
JUMP wait;
_main.end:
.ENDSEG;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -