空操作NOP指令在ARM和C51的區(qū)別
#include
_nop_();
(二)ARM下調(diào)用方法
__asmvoidnop(void)
{
NOP
}
然后在之后的C代碼中調(diào)用該函數(shù):
voidmain()
{
...
nop();
...
}
關(guān)于NOP指令
在MCS-51單片機(jī)指令集中NOP的指令碼為0x00,而ARM指令集中的NOP是一條偽指令,編譯系統(tǒng)用一條MOV指令替代其執(zhí)行。
NOP
編譯系統(tǒng)生成的機(jī)器碼:[0xe1a00000] nop
MOV r0, r0, lsl #0
編譯系統(tǒng)生成的機(jī)器碼:[0xe1a00000] nop
那么ARM指令集中有沒(méi)有指令碼為0x00的指令呢?有!
ANDEQ r0,r0,r0
編譯系統(tǒng)生成的機(jī)器碼:[0x00000000] andeq r0,r0,r0
單片機(jī)0xFF對(duì)應(yīng)的指令如下
MOV R7,A
評(píng)論