空操作NOP指令在ARM和C51的区别

(一)C51调用方法

#include <intrins.h>

 _nop_();

(二)ARM下调用方法

__asm void nop(void)

{

    NOP

}

然后在之后的C代码中调用该函数:

void main()

{

...

nop();

...

关于NOP指令
在MCS-51单片机指令集中NOP的指令码为0x00,而ARM指令集中的NOP是一条伪指令,编译系统用一条MOV指令替代其执行。

NOP

编译系统生成的机器码:[0xe1a00000]   nop  

MOV  r0, r0, lsl  #0

编译系统生成的机器码:[0xe1a00000]   nop      

那么ARM指令集中有没有指令码为0x00的指令呢?有!

ANDEQ   r0,r0,r0

编译系统生成的机器码:[0x00000000]   andeq    r0,r0,r0

单片机0xFF对应的指令如下

MOV R7,A

永不止步步 发表于04-14 14:49 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:345327个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号