再次请教C51高手...

[复制链接]
2960|14
 楼主| ayb_ice 发表于 2007-7-26 13:17 | 显示全部楼层 |阅读模式
如何在C中定义定义一个宏,方便产生1~255个NOP指令...
 楼主| ayb_ice 发表于 2007-7-26 16:03 | 显示全部楼层

难道没有高手接招...

说来也奇怪,宏汇编还可以轻松搞定...
C中我试了很久也没有搞定...
望高手不吝赐教...
wjy1107 发表于 2007-7-26 16:08 | 显示全部楼层

我也不会,搬个小凳子

 楼主| ayb_ice 发表于 2007-7-26 16:16 | 显示全部楼层

没有高手,搬个小凳子也没有用。。。

xwj 发表于 2007-7-26 16:19 | 显示全部楼层

放一大堆NOP干什么?

为什么要这么做??

宏汇编又是怎么轻松搞定的???  
lzg_job 发表于 2007-7-26 16:43 | 显示全部楼层

把简单的问题弄复杂了

把简单的问题弄复杂了
xwj 发表于 2007-7-26 16:48 | 显示全部楼层

这样

#define nop3();  _nop_();_nop_();_nop_();
#define nop6();  _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();


不过这样很占空间的哦,还是用无参数的延时子程序吧,根据需要多写几个
winloop 发表于 2007-7-26 16:50 | 显示全部楼层

高手都去干活儿了

jimoom 发表于 2007-7-27 13:29 | 显示全部楼层

很简单啊!

#define NOP  _nop_();
这样就可以了。。
如果下次需要添加nop
只需这样#define NOP  _nop_();_nop_();……

范围可以是:0~……
 楼主| ayb_ice 发表于 2007-7-27 15:56 | 显示全部楼层

回10楼

你的方法也太简单了,地球人都知道...
我要的是类似于函数,可以传递参数的...
如_nopx(10);产生10个NOP...
如_nopx(100);产生100个NOP...
cbbs 发表于 2007-7-27 17:28 | 显示全部楼层

用这个方法

#define nop3();  _nop_();_nop_();_nop_();
#define nop6();  _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

会不会被编译器优化掉了?
djc001 发表于 2007-7-27 21:58 | 显示全部楼层

while(--j);已经可以满足你的要求了,用宏很浪费code的.

fanyunxiao 发表于 2007-8-1 09:21 | 显示全部楼层

也可以用for(x;x

computer00 发表于 2007-8-1 09:26 | 显示全部楼层

while(--i)比for更容易计算时间...

您需要登录后才可以回帖 登录 | 注册

本版积分规则

222

主题

15494

帖子

34

粉丝
快速回复 在线客服 返回列表 返回顶部