📄 module.asm
字号:
#include "def21161.h"
#include "asm_sprt.h"
#define N 2048
//.SEGMENT/DM dm_data;
//.VAR redata[N]= "refft.dat"; /* input real array */
//.GLOBAL redata;
//.ENDSEG;
//.SEGMENT/PM pm_data;
//.VAR imdata[N]= "imfft.dat"; /* input image array */
//.VAR result;
//.global result;
//.GLOBAL imdata;
//.ENDSEG;
.SEGMENT/PM seg_pmco;
.GLOBAL _module;
.extern _result;
//.SEGMENT/PM pm_rsti; /* program starts at the reset vector */
// call module;
//stop: idle;
//.ENDSEG;
//.section/pm modu;
//.global module;
//.SEGMENT/PM pm_code;
/*_______________________________begin module__________________________________*/
_module:
// leaf_entry;
i2=r4;m1=1;m0=0;
i9=r8;m9=1;m10=0;
i8=_result;m8=1; //结果放PM区,以便指令并行操作
f2 =dm(i2,m0);
f3=pm(i9,m10);
f6 =dm(i2,m1),f7=pm(i9,m9);
f13=f2*f6;
f11=3.0;f1=0.5;
l0=0;l8=0;l15=0;
lcntr=N-1,do loopz until lce;
f8=f3*f7,f13=f8+f13;//f13存平方和
f2=dm(i2,0);
f3=pm(i9,m10);
f4=rsqrts f13;
f12=f4*f4;
f12=f12*f13;
f4=f1*f4,f12=f11-f12;
f4=f4*f12; //第一次迭代,相对误差为10-5
f12=f4*f4;
f12=f12*f13;
f4=f1*f4,f12=f11-f12;
f4=f4*f12; //第二次迭代,相对误差为10-7
f12=f4*f4;
f12=f12*f13;
f4=f1*f4,f12=f11-f12;
f4=f4*f12; //第三次迭代,相对误差为10-7
f4=f4*f13,
f6=dm(i2,m1),f7=pm(i9,m9);
loopz: f13=f2*f6, pm(i8,m8)=f4;
f8=f3*f7,f13=f8+f13;
f4=rsqrts f13;
f4=f4*f13;
pm(i8,m8)=f4;
exit;
//rts;
.ENDSEG;
//leaf_exit;
//module.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -