📄 fir.asm
字号:
//fir.asm
#include "def21160.h"
.SECTION/DM dm_data;
.VAR indata[100]="FIRIN.dat";
.VAR newdata[11];
.VAR olddata[11];
.VAR outdata[100];
.SECTION/PM pm_data;
.VAR coff[11]="COFF.dat";
.SECTION/PM pm_rsti;
NOP;
USTAT2= 0x108421; /* 1st instr. to be executed after reset */
DM(WAIT)=USTAT2; /* Set external memory waitstates to 0 */
JUMP start;
.SECTION/PM pm_code;
start: B0=indata;
L0=@indata;
B1=newdata;
L1=@newdata;
B2=olddata;
L2=@olddata;
B8=coff;
L8=@coff;
M1=-1;// amend pointer after operation
M2=10;//amend olddata pointer
M3=1; //coff pointer (DM)
M4=2;//+2,point oldest data of newdata buffer
M5=0;//may be optimized,need a little time
M8=1;//amend coff pointer (PM)
MODIFY(I2,M2);
/*I1=DM(I0,M3);*/
MODE1 = 0x1000000;
CALL fir (DB);
I3=outdata;
L3=0;
end: IDLE;
fir: LCNTR=100,DO outer UNTIL LCE;
F5=0;
F10=DM(I0,M3);//the same DAG error ,amend
DM(I1,M5)=F10;
LCNTR=11, DO inner UNTIL LCE;
F0=DM(I1,M1);
//F0=PASS F10,MODIFY(I1,M1);//the same DAG error ,amend
/*F0=DM(I1,M1);*/
F1=DM(I2,M1);//I2=?00050079
F3=F0+F1;
F8=PM(I8,M8);//F8 load coff
F4=F3*F8;//F4 store (""+"")*coff
inner: F5=F5+F4;//store temp output
DM(I3,M3)=F5;
//amend pointers
MODIFY(I1,M3);
F9=DM(I1,M5); //the same DAG error ,amend
MODIFY(I2,M5);//+1, point oldest data of olddata
outer: DM(I2,M1)=F9;
/*DM(I2,M1)=I1;*/// instead ,olddata's pointer shift(-1)
RTS;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -