
[英]`testl` eax against eax?
我试图了解一些程序集。 程序集如下,我对testl行感兴趣: 我想了解%eax和%eax之间的testl点? 我认为这段代码的细节并不重要,我只是想用它自己来理解测试 - 值不总是正确的吗? ...
[英]`testl` eax against eax?
我试图了解一些程序集。 程序集如下,我对testl行感兴趣: 我想了解%eax和%eax之间的testl点? 我认为这段代码的细节并不重要,我只是想用它自己来理解测试 - 值不总是正确的吗? ...
[英]Are there any smart cases of runtime code modification?
你能想到运行时代码修改(程序在运行时修改自己的代码)的任何合法(智能)用途吗? 现代操作系统似乎对执行此操作的程序不屑一顾,因为病毒已使用此技术来避免检测。 我能想到的只是某种运行时优化,通过在运行时知道一些在编译时无法知道的东西来删除或添加一些代码。 ...
[英]C code loop performance [continued]
这个问题在我这里的问题上继续(根据 Mystical 的建议): C 代码循环性能继续我的问题,当我使用打包指令而不是标量指令时,使用内部函数的代码看起来非常相似: 这个 kernel 的测量性能约为每个周期 5.6 FP 操作,尽管我预计它正好是标量版本性能的 4 倍,即每个周期 4.1,6= ...
[英]What does the endbr64 instruction actually do?
我一直在尝试理解 GCC 生成的汇编语言代码,并且在许多函数(包括_start()的开头经常遇到此指令,但找不到任何解释其目的的指南: ...
[英]How does x86 pause instruction work in spinlock *and* can it be used in other scenarios?
pause指令通常用于测试自旋锁的循环中,当其他线程拥有自旋锁时,以缓解紧循环。 据说相当于一些NOP指令。 有人能告诉我它究竟是如何用于自旋锁优化的吗? 在我看来,即使是 NOP 指令也是浪费 CPU 时间。 它们会降低 CPU 使用率吗? 另一个问题是我可以将暂停指令用于其他类似目的。 例如 ...
[英]C code loop performance
我的应用程序中有一个乘法添加内核,我想提高它的性能。 我使用英特尔酷睿i7-960(3.2 GHz时钟)并已使用SSE内在函数手动实现内核,如下所示: 我知道我可以使用压缩的fp向量来提高性能,我已经成功完成了,但我想知道为什么单个标量代码无法满足处理器的峰值性能。 我的机器 ...
[英]IL Instructions not exposed by C#
C#没有暴露哪些IL指令? 我指的是像sizeof和cpblk这样的指令 - 没有执行这些指令的类或命令(C#中的sizeof是在编译时计算的,而不是在运行时AFAIK计算的)。 其他? 编辑:我问这个的原因(并希望这将使我的问题更有效)是因为我正在开发一个小型库,它将提供这些 ...
[英]What is the 0x10 in the “leal 0x10(%ebx), %eax” x86 assembly instruction?
关于这个LEAL指令,0x10的功能是什么? 它是一个乘法或加法还是别的? 有人可以澄清一下吗? 这是Linux机器上的x86汇编程序。 ...
[英]Difference between movq and movabsq in x86-64
我是这里的新手,刚开始学习汇编语言。 所以如果我错了,请纠正我,或者如果这篇文章没有任何意义我会删除。 我说的是 x86-64 Intel 架构中的数据移动指令。 我读过常规movq指令只能有可以表示为 32 位二进制补码的立即数源操作数,而movabsq指令可以有任意 64 位立即数作为其源操作 ...
[英]MOVing between two memory addresses
我正在尝试学习汇编(请多多包涵),但我在这一行遇到了编译错误: 错误是 我怀疑这个错误的原因仅仅是 mov 指令不可能在两个 memory 地址之间移动,但是谷歌搜索了半个小时,我还无法确认这一点 - 是这样吗? 另外,假设我是对的,这意味着我需要使用寄存器作为复制 memory 的中间点: 推荐使 ...
[英]How is x86 instruction cache synchronized?
我喜欢这个例子,所以我在c中写了一些自修改代码... ...显然有效: 但老实说,我没想到它会起作用。 我预期包含指令c[2] = 0时第一次调用要被缓存c ,在这之后,以所有连续的呼叫c将忽略对所作的反复变化c (除非我莫名其妙explicitedly无效的高速缓冲存储器)。 ...
[英]JVM instruction ALOAD_0 in the 'main' method points to 'args' instead of 'this'?
我正在尝试为学术研究实现Java的一个子集。 好吧,我处于最后阶段(代码生成),我编写了一个相当简单的程序来查看如何处理方法参数: 然后我构建了它,并通过我在以下网址找到的在线反汇编程序运行'Main.class': http : //www.cs.cornell.edu/People ...
[英]What are the semantics of ADRP and ADRL instructions in ARM assembly?
广告资源计划 相对于 PC 的偏移量处的 4KB 页的地址。 ADRL 将与 PC 相关的地址加载到寄存器中。 它类似于 ADR 指令。 ADRL 可以加载比 ADR 更广泛的地址范围,因为它生成两个数据处理指令。 具体来说, ADRL 汇编为两条指令,一条 ADRP ...
[英]Does [ebp*2] reference DS or SS segment?
IDM表示,如果EBP用作基址寄存器,则内存操作使用SS段。 结果, [ebp + esi]和[esi + ebp]引用SS和DS段。 参见NASM的文档: 3.3有效地址 。 在上面的相同章节中,NASM提到了如何通过用[eax+eax]替换[eax*2]来生成更短的机器代码。 ...
[英]The difference between cmpl and cmp
我正在尝试了解汇编以解决难题。 但是我遇到了以下说明: 我认为它正在做的是: 0x14(%rsp) rsp 0x14(%rsp)的值是-7380。 根据我的理解, cmpl比较无符号。 也执行跳转。 那么(unsigned)-7380 > 7 --> jump 我其实不想让它跳。 ...
[英]Tracing/profiling instructions
我想在指令级别对我的C代码进行统计分析。 我需要知道我正在执行多少次加法,乘法,除法等。 这不是您通常的磨码分析要求。 我是算法开发人员,我想估算将代码转换为硬件实现的成本。 为此,我被问到运行时的指令调用故障(解析编译的程序集是不够的,因为它不考虑代码中的循环)。 环顾四周后 ...
[英]How exactly do executables work?
我知道可执行文件包含指令,但这些指令究竟是什么? 如果我想调用MessageBox API函数,那么指令是什么样的? 谢谢。 ...
[英]What is the advantage of having instructions in a uniform format?
许多处理器的指令具有统一的格式和宽度,例如ARM,其中所有指令均为32位长。 其他处理器具有多条宽度的指令,例如2、3或4个字节长,例如8086。 使所有指令具有相同的宽度和统一的格式有什么好处? 使用多种宽度的指令有什么好处? ...
[英]Why doesn't there exists a subi opcode for MIPS?
我对汇编语言很陌生。 我正在阅读有关MIPS架构的信息,并了解到您有addi操作码但没有subi操作码。 为什么我们没有subi操作码? ...
[英]Small Popup for Instructions, like foursquare ones
在看到新的foursquare 应用程序的最后一个屏幕截图及其气球状卡通说明之后,我想在我的应用程序中创建其中的一些。 我为 iPhone Small 弹出窗口找到了一个类似的问题以获取说明……如何? 这是foursquare应用程序的另一个屏幕截图: 我想知道如何使用 Android 实现这一目标 ...