0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NOP指令实现过程

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-09-28 15:47 次阅读

NOP(No Operation)意为无操作,是汇编语言的一个指令。NOP指令既空指令。NOP指令通常作为伪指令。但是,如果在ARMv6K、ARMv6T2、ARMv7、ARMv8-M结构体系中,NOP不是伪指令。
伪指令(Pseudo Instruction)是用于对汇编过程进行控制的指令,该类指令并不是可执行指令,没有机器代码,只用于汇编过程中为汇编程序提供汇编信息。伪指令包括ADR、ADRL、LDR、NOP。

NOP伪指令使用以及描述如下:

Syntax

NOP在汇编过程中,将r0寄存器的数据赋值给r0寄存器,相当于做了一次无用功。下图也给出了NOP的语法、描述。

此图来自IAR的帮助文档。

pYYBAGMz-_aAQS3EAAGmu8VSF2U079.png

根据百度百科的解释,NOP的主要作用如下:

1. 字节填充对齐

2. 精确延时和计时3. 破解程序的call验证4. 等待其他设备执行完毕5. 清除由上一个算术逻辑指令设置的flag位6. 辅助jmp、call等指令

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 指令
    +关注

    关注

    1

    文章

    606

    浏览量

    35648
  • nop
    nop
    +关注

    关注

    0

    文章

    9

    浏览量

    1918
收藏 人收藏

    评论

    相关推荐

    STM8S的NOP指令一个周期是多少?

    大家好,STM8S的NOP指令一个周期是多少?现在外部晶振16MHZ,CPU不分频,请问NOP的周期是多少?因为想用NOP做延时,谢谢!
    发表于 04-09 07:54

    ST芯片中nop指令的延时问题

    如题,在程序运行中经常用到延时。出了常用的定时器以外,还有一种直接调用指令nop()来产生 延时的方法。这条指令的延时是取决于时钟频率的,我的疑惑是,直接调用nop()
    发表于 06-02 09:54

    请问在C语言调用汇编指令asm (" NOP ");便是等待一个指令周期,asm (" NOP 5");表示什么意思?

    您好TI:在C语言调用汇编指令asm (" NOP ");便是等待一个指令周期,asm (" NOP 5");表示什么意思?
    发表于 07-24 09:00

    _NOP() 与asm("nop")这两个空指令有啥区别?

    _NOP() 与asm("nop")这两个空指令有啥区别???
    发表于 08-08 03:52

    NOP指令是什么

    github:“nop”函数对于延时很短,要求在us级的,采用“nop”函数,这个函数相当汇编NOP指令,延时几微秒。NOP
    发表于 07-20 08:06

    __NOP();延时函数 精选资料分享

    不用系统时钟与通用外设时钟的延时函数介绍下__NOP();函数;它类似于汇编里的伪指令,也称作“空指令”;它不执行操作,但占一个程序步。空指令使用时会占用执行一个
    发表于 08-18 07:26

    RISC-V没有NOP指令,如何实现执行多个NOP

    RISC-V,没有NOP指令,如何实现,执行多个NOP?,并且不能被编译器优化了
    发表于 05-26 06:07

    如何在s32k中添加NOP指令

    所以我需要生成一些等待延迟几微秒,我需要在延迟循环中添加 NOP 指令,我找不到 s32k146 的 NOP 指令。 我在用 ARM 的 S32 设计工作室 版本:2018.R1 内
    发表于 04-28 07:12

    #define NOP() _nop_() /* 定义空指令 */这个空指令怎么用的啊?

    #defineNOP() _nop_()/* 定义空指令 */ 这个空指令怎么用的啊?
    发表于 06-19 07:47

    单片机C语言中如何使用nop函数进行短延时的效果资料和程序说明

    单片机C语言中如何使用nop函数进行短延时的效果资料和程序说明 标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个no
    发表于 03-05 11:01 10次下载
    单片机C语言中如何使用<b class='flag-5'>nop</b>函数进行短延时的效果资料和程序说明

    51单片机C语言的nop_()指令有什么作用和详细资料说明

    C语言中没有_nop_()函数。在51C中一般包含在#include “intrins.h” 头文件中。该函数是在51单片机中用的延时函数,表示执行一条没有什么意义的指令,延时一个指令周期,有的
    发表于 07-05 17:41 1次下载
    51单片机C语言的<b class='flag-5'>nop</b>_()<b class='flag-5'>指令</b>有什么作用和详细资料说明

    如何用NOP指令覆盖相关代码绕开鉴权

    启动后检查一次注册码是否有效——一个 if 判断,他也认定,若反汇编软件只要 欺骗过这条判断加密措施荡然无存。 群里我给他一个破解设计思想:“利用NOP指令覆盖相关代码绕开鉴权”。 2. 演示 下面是我做的一个例子演示运用NOP
    的头像 发表于 09-24 10:37 2267次阅读

    plc中常见指令的操作方法

    与母线连接,也不能象指令表中的OR、ORI、ORP、ORF指令那样单独使用。 2、NOP(空操作指令) 是一条空操作指令,用于程序的修改。它
    发表于 12-17 14:14 5011次阅读

    nop不同晶振频率下的延时时间

    _nop_()函数包括在库函数intrins.h中的表示空循环一个机器指令的时间,12M中表示1us;6M中表示2us;24M中表示0.5us(微妙)1S=1000ms=1000000us;NOP
    发表于 01-18 10:22 7次下载
    <b class='flag-5'>nop</b>不同晶振频率下的延时时间

    使用NOP912/NOP914达到精密测量应用

    使用NOP912/NOP914达到精密测量应用
    的头像 发表于 08-10 11:07 499次阅读