问题标签 [nop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
22389 浏览

execution-time - 处理器指令周期执行时间

  • 我的猜测是,__no_operation()内在(ARM)指令应该花费 1/(168 MHz)来执行,前提是每个NOP指令都在一个时钟周期内执行,我想通过文档进行验证。

  • 是否有关于处理器指令周期执行时间的信息的标准位置?我正在尝试确定 STM32f407IGh6 处理器执行运行在 168 MHz 的 NOP 指令需要多长时间。

  • 有些处理器需要每个指令周期多次振荡,有些处理器在比较时钟周期和指令周期时是一对一的。

  • 术语“指令周期”甚至没有出现在 STMicro 提供的整个数据表中,也没有出现在他们的编程手册中(列出处理器的指令集,顺便说一句)。然而,8051 文档清楚地定义了它的指令周期执行时间,以及它的机器周期特性。

0 投票
2 回答
3873 浏览

java - 获取 slf4j NOP 实现以登录到控制台

我希望slf4j NOP实现登录到控制台。目前,它只是不记录任何内容,而是有办法让它记录到控制台吗?

我的用例是我有一个库(不是应用程序),它只依赖于slf4j-api. 但是其中的一些类具有用于测试目的的主要方法。当我运行这些主要方法时,我希望所有日志都转到控制台,而不必依赖slf4j-log4j绑定。

谢谢。

0 投票
4 回答
4871 浏览

assembly - 如何获得可靠的 Cortex M4 短延迟

我正在将一些代码从 M3 移植到 M4,它使用 3 个 NOP 在串行输出时钟更改之间提供非常短的延迟。M3 指令集将 NOP 的时间定义为 1 个周期。我注意到 M4 中的 NOP 不一定会延迟任何时间。我知道我需要禁用编译器优化,但我正在寻找一个低级命令,它会给我可靠的、可重复的时间。实际上,在这种特殊情况下,串行使用非常偶尔并且可能非常慢,但我仍然想知道获得周期级延迟的最佳方法。

0 投票
2 回答
5465 浏览

c - GCC 编译器执行 asm volatile ("nop"/::) 指令需要多长时间?

我在 UNIX 中有一个 C 代码,我需要让我的处理器在 2 秒内什么都不做。为此,我找到了汇编指令asm volatile("nop"::)。我已经搜索了很多,但我找不到任何地方解释如何计算必要的 NOP 数量以执行我的函数恰好 2 秒。谁能帮我?

0 投票
2 回答
3993 浏览

arduino - 如何创建 1 秒延迟 Arduino

嗨,我是 Arduino 新手,我正在尝试创建 1 秒的延迟,但我不知道如何生成完成 delay_ms 函数的代码,我尝试过解决但似乎没有得到任何更好的谢谢你 void setup() {

0 投票
1 回答
6502 浏览

assembly - 长多字节 NOP:通常理解的宏或其他表示法

x86(和 x86_64)处理器不仅有单字节NOP指令,而且还有各种类型的多字节类 NOP 指令,这已经不是什么大秘密了。

这些是我设法找到的:

AMD 推荐,参考文献。AMD 系列 15h 处理器的 AMD 软件优化指南,文档 #47414,第 5.8 节“使用操作数大小覆盖和多字节 NOP 进行代码填充”,第 94 页)

英特尔推荐,参考。英特尔 64 和 IA-32 架构软件开发人员手册第 2B 卷:指令集参考,新西兰,“NOP”部分

GNU 汇编器(在 binutils/gas 中)包括以下模式

f32(兼容 Intel 的旧 CPU,最高到 Pentium):

alt(对于现代 CPU,对于 Intel 和 AMD 相同):

alt_short(适用于现代 AMD 系列 CPU):

alt_long(适用于现代 Intel 系列 CPU):

我的问题如下:所有这些字节序列是否有任何广泛/通用的命名,如宏、伪助记符或类似的东西?到目前为止,我只发现:

  • AMD 建议命名它们NOPx_OVERRIDE_NOPx= 字节长度)。
  • gas 理解nopw(作为 2 字节 nop)和nopl(作为 4 字节 nop)

现代反汇编程序如何倾向于输出这些值?

相关但不重复的问题:NOPL 在 x86 系统中做了什么?

0 投票
3 回答
11878 浏览

c - 等效于嵌入式 C 中的 NOP?

我使用KEIL编译程序。

该程序使用代码

asm("NOP");

不幸的是,KEIL 编译器不接受该声明。

这个想法是通过使用 NOP(无操作)汇编代码来引入延迟。

这在 C 中的实际等价物是什么?这是否因我使用的嵌入式控制器而异?

0 投票
2 回答
2569 浏览

c - 在 x86_64 和 i686 上编译时 NOP 字符 0x90 的 printf 不同

我有2个系统:

  1. 3.13.0-35-generic ... x86_64 x86_64 x86_64 带有 gcc 的 GNU/Linux:4.8.2
  2. 2.6.32-21-generic #32-Ubuntu ... i686 GNU/Linux with gcc: 4.4.3

我在两个系统上编译了以下代码:

问题是“nops”数组的打印。

  1. 当我在 64 位系统 #1 上运行它时,输出看起来正是我想要的样子。
  2. 当我在 32 位系统 #2 上运行它时,printf() 输出的 NOP 部分包含额外的奇怪字符,即:

Hexdump 系统 #1

Hexdump 系统 #2:

所以附加字符是:0x24 0xc5 0x12。

[问] 为什么会这样?

谢谢。

0 投票
1 回答
832 浏览

nop - C代码NOP混淆

该文件采用 AT&T 语法 - 请参阅http://www.imada.sdu.dk/Courses/DM18/Litteratur/IntelnATT.htmhttp://en.wikipedia.org/wiki/X86_assembly_language#Syntax。gdb 和 objdump 默认生成 AT&T 语法。

最后一条指令 NOP 运行时 %eax 的值是多少?

0 投票
1 回答
5041 浏览

x86 - x86 多字节 NOP 和指令前缀

回想一下,x86 架构定义0x0F 0x1F [mod R/M]为多字节 NOP。

现在我正在查看 8 字节 NOP 的具体情况:我有

最后 5 个字节有任意值。

第三个字节 ,[mod R/M]分开给出:

现代

  • mod = 10b: 参数是reg1+ 一个 DWORD 大小的位移
  • reg2 = 000b: (我们不在乎)
  • reg1 = 100b: 表示参数是SIB字节 + DWORD 大小的位移。

现在,作为一个具体的例子,如果我采取

我有

  • SIB = 0x12
  • displacement = 0x9A785634: 一个双字

现在我添加0x66指令前缀以指示位移应该是 WORD 而不是 DWORD:

我希望0x78 0x9A被“切断”并被视为新指令。但是,当编译它并objdump在生成的可执行文件上运行时,它仍然使用所有 4 个字节(一个 DWORD)作为位移。

在这种情况下,我是否误解了“位移”的含义?还是0x66前缀对多字节 NOP 指令没有任何影响?