- 打卡等级:偶尔看看III
- 打卡总天数:38
- 最近打卡:2025-04-29 08:28:25
已绑定手机
金牌会员
- 积分
- 1173
|
项目添加NOPS.ASM,包含头文件NOPS.H就可以使用了,函数调用方式效率高,不占内存,不影响全局寄存器优化,
因为是调用方式调用返回占6个周期,所以1~6的调用都是6个周期,7个以后是真实的周期,主要用于GPIO模拟接口的短延时,
//NOPS.ASM
PUBLIC __nops32
PUBLIC __nops31
PUBLIC __nops30
PUBLIC __nops29
PUBLIC __nops28
PUBLIC __nops27
PUBLIC __nops26
PUBLIC __nops25
PUBLIC __nops24
PUBLIC __nops23
PUBLIC __nops22
PUBLIC __nops21
PUBLIC __nops20
PUBLIC __nops19
PUBLIC __nops18
PUBLIC __nops17
PUBLIC __nops16
PUBLIC __nops15
PUBLIC __nops14
PUBLIC __nops13
PUBLIC __nops12
PUBLIC __nops11
PUBLIC __nops10
PUBLIC __nops9
PUBLIC __nops8
PUBLIC __nops7
PUBLIC __nops6
PUBLIC __nops5
PUBLIC __nops4
PUBLIC __nops3
PUBLIC __nops2
PUBLIC __nops1
;$REGUSE function (R1-R6, A, B, C)
$REGUSE __nops32()
$REGUSE __nops31()
$REGUSE __nops30()
$REGUSE __nops29()
$REGUSE __nops28()
$REGUSE __nops27()
$REGUSE __nops26()
$REGUSE __nops25()
$REGUSE __nops24()
$REGUSE __nops23()
$REGUSE __nops22()
$REGUSE __nops21()
$REGUSE __nops20()
$REGUSE __nops19()
$REGUSE __nops18()
$REGUSE __nops17()
$REGUSE __nops16()
$REGUSE __nops15()
$REGUSE __nops14()
$REGUSE __nops13()
$REGUSE __nops12()
$REGUSE __nops11()
$REGUSE __nops10()
$REGUSE __nops9()
$REGUSE __nops8()
$REGUSE __nops7()
$REGUSE __nops6()
$REGUSE __nops5()
$REGUSE __nops4()
$REGUSE __nops3()
$REGUSE __nops2()
$REGUSE __nops1()
?PR?__nops?nops SEGMENT CODE
RSEG ?PR?__nops?nops
__nops:
__nops32: NOP
__nops31: NOP
__nops30: NOP
__nops29: NOP
__nops28: NOP
__nops27: NOP
__nops26: NOP
__nops25: NOP
__nops24: NOP
__nops23: NOP
__nops22: NOP
__nops21: NOP
__nops20: NOP
__nops19: NOP
__nops18: NOP
__nops17: NOP
__nops16: NOP
__nops15: NOP
__nops14: NOP
__nops13: NOP
__nops12: NOP
__nops11: NOP
__nops10: NOP
__nops9: NOP
__nops8: NOP
__nops7: NOP
__nops6:
__nops5:
__nops4:
__nops3:
__nops2:
__nops1:
RET
END
//NOPS.H
#ifndef __NOPS_H__
#define __NOPS_H__
//_________________________________________________________________
// 函数声明
//_________________________________________________________________
void __nops1(void); //最少6个NOP
void __nops2(void); //最少6个NOP
void __nops3(void); //最少6个NOP
void __nops4(void); //最少6个NOP
void __nops5(void); //最少6个NOP
void __nops6(void); //最少6个NOP
void __nops7(void);
void __nops8(void);
void __nops9(void);
void __nops10(void);
void __nops11(void);
void __nops12(void);
void __nops13(void);
void __nops14(void);
void __nops15(void);
void __nops16(void);
void __nops17(void);
void __nops18(void);
void __nops19(void);
void __nops20(void);
void __nops21(void);
void __nops22(void);
void __nops23(void);
void __nops24(void);
void __nops25(void);
void __nops26(void);
void __nops27(void);
void __nops28(void);
void __nops29(void);
void __nops30(void);
void __nops31(void);
void __nops32(void);
#endif
//_________________________________________________________________
// END
//_________________________________________________________________
|
|