📄 mac.c
字号:
#include "Headers.h"
asm void buffer()
{
clr.w M01
bfset #$8007,M01 /* initializez bufferul cu 8 locatii */
move.l #$0800,R0 /*initializez R0 cu limita inferioara a bufferului */
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
move.w X:(R0)+,X0
}
void circularBuffer()
{
UInt16 coef[10]={1,2,3,4,5,6,7,8,9,10 };
UInt16 i;
register data;
asm(move.l #$0800,R0); /*initializez R0 cu limita inferioara a bufferului */
for(i=0;i<10;i++)
{
data = i;
asm(move.w data,X:(R0)+);
}
buffer();
}
void StackPointer()
{
register data = 10;
char buf[20];
asm(ADDA #2,SP);
asm(move.w data,X:(SP));
data = 34;
asm(move.w X:(SP),data);
asm(move.l 0,R0);
asm(ADDA #2,SP);
asm(move.L R0,X:(SP));
sprintf(buf,"%d",data);
asm(move.L X:(SP)-,R0);
}
asm void fast()
{
MOVE.W #0,A
REP #32
MOVE.L A10,X:(R0)+
RTS
}
void fastMAC()
{
UInt16 x_n[10]={1,2,3,4,5,6,7,8,9,10};
asm(move.l 0,R0);
fast(); //umplu primii 32 de octeti cu 0
}
asm void fctMac()
{
clr A;
move.w 0,R0;
move.w 9,R1;
moveu.w #$9,LC //LOOP COUNTER
NOP;
NOP;
DOSLC END_DOSLC
move.w X:(R0)+,X0
move.w X:(R1)+,Y0
IMAC.L X0,Y0,A
END_DOSLC:
RTS;
}
void calculMAC() //functie de test
{
UInt16 x_n[9]= {1,2,3,4,5,6,7,8,25};
UInt16 c_n[9]= {8,7,6,5,4,3,2,1,9};
UInt16 i;
register data;
char sir[20];
asm(move.w #0,R0);
asm(move.w #9,R1);
for(i=0;i<9;i++)
{
data=x_n[i];
asm(move.w data,X:(R0)+);
data=c_n[i];
asm(move.w data,X:(R1)+) ;
}
fctMac();
asm(move.w A0,data);
sprintf(sir,"%d",data);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -