嵌入式C中NOP的等价值是多少?

前端之家收集整理的这篇文章主要介绍了嵌入式C中NOP的等价值是多少?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用KEIL编译程序.

该程序使用该代码

asm(“NOP”);

不幸的是,KEIL编译器不接受该声明.

想法是通过使用NOP(无操作)汇编代码来引入延迟.

C中的实际等价物是多少?这与我使用的嵌入式控制器有什么不同吗?

解决方法

Does this vary with the embedded controller that I use?

是.内联汇编不是C标准(尚未)的一部分,它因编译器而异,有时甚至在同一编译器的不同目标架构之间.有关更多信息,请参见Is inline asm part of the ANSI C standard?.

例如,对于C51 Keil编译器,syntax for inline assembly

...
#pragma asm
      NOP
#pragma endasm
...

而对于ARM,语法就像

...
__asm  {
          NOP
       }
...

您需要查看您正在使用的实际编译器的手册.

对于一些更常见的操作码,一些编译器提供所谓的内在函数 – 这些可以被称为C函数,但实际上是插入汇编代码,如_nop_ ().

猜你在找的C&C++相关文章