NOP(No Operation)意為無操作,是匯編語言的一個(gè)指令。NOP指令既空指令。NOP指令通常作為偽指令。但是,如果在ARMv6K、ARMv6T2、ARMv7、ARMv8-M結(jié)構(gòu)體系中,NOP不是偽指令。
偽指令(Pseudo Instruction)是用于對匯編過程進(jìn)行控制的指令,該類指令并不是可執(zhí)行指令,沒有機(jī)器代碼,只用于匯編過程中為匯編程序提供匯編信息。偽指令包括ADR、ADRL、LDR、NOP。
NOP偽指令使用以及描述如下:
Syntax
NOP在匯編過程中,將r0寄存器的數(shù)據(jù)賦值給r0寄存器,相當(dāng)于做了一次無用功。下圖也給出了NOP的語法、描述。
此圖來自IAR的幫助文檔。
![pYYBAGMz-_aAQS3EAAGmu8VSF2U079.png](https://file.elecfans.com/web2/M00/6D/92/pYYBAGMz-_aAQS3EAAGmu8VSF2U079.png)
根據(jù)百度百科的解釋,NOP的主要作用如下:
1. 字節(jié)填充對齊
2. 精確延時(shí)和計(jì)時(shí)3. 破解程序的call驗(yàn)證4. 等待其他設(shè)備執(zhí)行完畢5. 清除由上一個(gè)算術(shù)邏輯指令設(shè)置的flag位6. 輔助jmp、call等指令
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
大家好,STM8S的NOP指令一個(gè)周期是多少?現(xiàn)在外部晶振16MHZ,CPU不分頻,請問NOP的周期是多少?因?yàn)橄胗?b class='flag-5'>NOP做延時(shí),謝謝!
發(fā)表于 04-09 07:54
如題,在程序運(yùn)行中經(jīng)常用到延時(shí)。出了常用的定時(shí)器以外,還有一種直接調(diào)用指令nop()來產(chǎn)生 延時(shí)的方法。這條指令的延時(shí)是取決于時(shí)鐘頻率的,我的疑惑是,直接調(diào)用nop()
發(fā)表于 06-02 09:54
您好TI:在C語言調(diào)用匯編指令asm (" NOP ");便是等待一個(gè)指令周期,asm (" NOP 5");表示什么意思?
發(fā)表于 07-24 09:00
_NOP() 與asm("nop")這兩個(gè)空指令有啥區(qū)別???
發(fā)表于 08-08 03:52
github:“nop”函數(shù)對于延時(shí)很短,要求在us級的,采用“nop”函數(shù),這個(gè)函數(shù)相當(dāng)匯編NOP指令,延時(shí)幾微秒。NOP
發(fā)表于 07-20 08:06
不用系統(tǒng)時(shí)鐘與通用外設(shè)時(shí)鐘的延時(shí)函數(shù)介紹下__NOP();函數(shù);它類似于匯編里的偽指令,也稱作“空指令”;它不執(zhí)行操作,但占一個(gè)程序步。空指令使用時(shí)會占用執(zhí)行一個(gè)
發(fā)表于 08-18 07:26
RISC-V,沒有NOP指令,如何實(shí)現(xiàn),執(zhí)行多個(gè)NOP?,并且不能被編譯器優(yōu)化了
發(fā)表于 05-26 06:07
所以我需要生成一些等待延遲幾微秒,我需要在延遲循環(huán)中添加 NOP 指令,我找不到 s32k146 的 NOP 指令。
我在用
ARM 的 S32 設(shè)計(jì)工作室
版本:2018.R1
內(nèi)
發(fā)表于 04-28 07:12
#defineNOP() _nop_()/* 定義空指令 */
這個(gè)空指令怎么用的啊?
發(fā)表于 06-19 07:47
單片機(jī)C語言中如何使用nop函數(shù)進(jìn)行短延時(shí)的效果資料和程序說明
標(biāo)準(zhǔn)的C語言中沒有空語句。但在單片機(jī)的C語言編程中,經(jīng)常需要用幾個(gè)空指令產(chǎn)生短延時(shí)的效果。這在匯編語言中很容易實(shí)現(xiàn),寫幾個(gè)no
發(fā)表于 03-05 11:01
?10次下載
C語言中沒有_nop_()函數(shù)。在51C中一般包含在#include “intrins.h” 頭文件中。該函數(shù)是在51單片機(jī)中用的延時(shí)函數(shù),表示執(zhí)行一條沒有什么意義的指令,延時(shí)一個(gè)指令周期,有的
發(fā)表于 07-05 17:41
?1次下載
啟動后檢查一次注冊碼是否有效——一個(gè) if 判斷,他也認(rèn)定,若反匯編軟件只要 欺騙過這條判斷加密措施蕩然無存。 群里我給他一個(gè)破解設(shè)計(jì)思想:“利用NOP指令覆蓋相關(guān)代碼繞開鑒權(quán)”。 2. 演示 下面是我做的一個(gè)例子演示運(yùn)用NOP
發(fā)表于 09-24 10:37
?2360次閱讀
與母線連接,也不能象指令表中的OR、ORI、ORP、ORF指令那樣單獨(dú)使用。 2、NOP(空操作指令) 是一條空操作指令,用于程序的修改。它
發(fā)表于 12-17 14:14
?5225次閱讀
_nop_()函數(shù)包括在庫函數(shù)intrins.h中的表示空循環(huán)一個(gè)機(jī)器指令的時(shí)間,12M中表示1us;6M中表示2us;24M中表示0.5us(微妙)1S=1000ms=1000000us;NOP
發(fā)表于 01-18 10:22
?7次下載
使用NOP912/NOP914達(dá)到精密測量應(yīng)用
發(fā)表于 08-10 11:07
?572次閱讀
評論