空操作NOP指令在ARM和C51的區別

2021-06-05 13:40:27 字數 489 閱讀 4345

(一)c51呼叫方法

#include

_nop_();

(二)arm下呼叫方法 

__asm void nop(void)

然後在之後的c**中呼叫該函式:

void main()

關於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

NOP空指令介紹

這個指令在彙編中的作用是空指令,意味著什麼都不做的意思,一般用來控制cpu的時間週期,達到時鐘延時的效果 首先說一下什麼是cpu時鐘 cpu時鐘 處理器晶元是在特定的時鐘頻率下進行工作的。處理器的速度用時鐘頻率衡量。其次衡量的單位以赫茲為單位 首先你要明白什麼是頻率,頻率的單位hz 赫茲 1hz就是...

微控制器中的NOP指令

在微控制器中的很多程式中都能看見nop這條指令的身影,有些人很疑惑這條空空的指令到底有什麼用呢,經過多次的實驗,我終於證實 呀,誰扔的番茄 主要有兩條作用 1,精確定時 nop指令時間為1個週期,12m晶振的活呢是1us秒的時間。非常的準確。如 如果晶振用12mz的話,這樣乙個機器週期為1us。mo...

ThinkPHP之空模組和空操作

遇到這樣的情況,作為程式設計師的我們當然知道是怎麼回事了,但是使用者不知道啊,所以我們可以使用thinkphp的空操作來規避這樣的情況發生,如下圖 定義乙個 empty 方法,當使用者輸入不存在的方法時,程式自動來呼叫此方法,我寫的比較簡單,直接重定向到首頁。重定向是可以了,但是後面跳轉的路徑多了乙...