cost 448 ms
[ebp * 2]是否引用DS或SS段?

[英]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]来生成更短的机器代码。 ...

如何通过指令读取二进制可执行文件?

[英]How to read binary executable by instructions?

有没有办法以编程方式从x86体系结构上的二进制可执行文件中读取给定数量的指令? 如果我有一个简单的C程序hello.c的二进制文件: 使用gcc编译后,反汇编函数main如下所示: C中是否有一种简单的方法可以从main读取例如前三个指令(意味着字节55, 48, 89, ...

调用加载双字指令时,哪些控制线有效/置为1?

[英]What control lines are asserted/set to 1 when a load double word instruction is called?

使用此图,我正在查看此指令以确定需要哪些控制线。 ld x5、40(x9) x5 = 0x000000ff x9 = 0x00000fff 我很好奇为了使该指令运行而断言或设置了哪些控制线(RegWrite,MemRead,MemWrite,MemtoReg,Bran ...

指令解码器如何在32位模式下区分EVEX前缀和BOUND操作码?

[英]How does the instruction decoder differentiate between EVEX prefix and BOUND opcode in 32-bit mode?

在32位模式下,英特尔通过反转寄存器扩展的高位来解决VEX前缀与LDS / LES冲突,因为ModRM字节的mod字段不能为11b VEX前缀的初始字节值C4h和C5h与LDS和LES指令的操作码相同。 64位模式不支持这些指令。 为了在32位模式下解决模糊性,VEX的规范利用了合 ...

用汇编语言中的一条指令替换两条指令

[英]Replacing two instructions with one instruction in assembly language

这是程序中给出的许多指令的表格。 第一列表示指令本身,第二列表示程序中任何指令的权重百分比,第三列表示任何给定指令的CPI(每条指令的周期数)。 现在,我要用一条指令madd代替add和mult 。 madd接受三个输入,将前两个输入相乘,然后将结果与第三个输入相加。 这样 ...

“性能”-计算每种方法的指令

[英]“perf” - count instructions per method

我想对代码中每个函数调用的动态指令计数,以便可以将该计数器视为: 所以下面的子问题: 使用perf吗? 如果是的话:什么样的perf我应该使用标志来获取(至少)的信息? 如果没有:我还可以使用其他什么程序? ...

`add al,0`和`add al,'0'之间有什么区别?

[英]What's the difference between `add al, 0` and `add al, '0'`?

因此,我一直在阅读一些汇编代码以进行学习,并遇到了以下两条指令: 两者有什么区别? 在我被解雇之前,如果碰巧是重复的话。 我之所以在这里提出问题,是因为我不知道该如何回答Google。 ...

为什么短路逻辑运算符应该更快

[英]Why short circuit logical operator is supposed to be faster

这个问题不是关于优化代码,而是关于短路逻辑运算符和普通逻辑运算符的性能差异的技术问题,这可能归结为它们在硬件级别上的执行方式。 基本上逻辑AND和OR需要一个周期,而短路评估使用分支并且可能需要不同数量的周期。 现在我知道分支预测器可以使这个评估有效,但我看不出它比 1 个周期快多少? 是的,如 ...

如何从汇编程序指令转到C代码

[英]How to go From Assembler instruction to C code

我有一个任务,除其他外,我需要在.asm文件中查找某个指令和“反向工程”(找出)C代码的哪一部分导致它在汇编程序级别执行。 (文字下方的例子) 什么是最快(最简单)的方法。 或者更好地说,.asm文件中的其他命令/指令/标签应该/我可以注意什么,这将指导我使用正确的C代码? 我几 ...

test_and_set()指令仍如何在多处理器上运行?

[英]How could the test_and_set() instruction still work on a multiprocessor?

亲爱的堆栈溢出社区, 我正在阅读Silberschatz,Galvin和Gagne的《操作系统概念》(2012),它说:“如果同时执行两个test_and_set()指令(每个指令在不同的CPU上),它们将以任意顺序顺序执行。” 在第210页上,我不明白为什么即使在多处理器上也会依次执行两 ...

机器级架构,使用其他人实施命令

[英]Machine Level Architecture, implement commands using others

为面试做一些准备,这样就可以回答人们在玻璃门上张贴的类似职位的面试问题。 碰到一个我被卡住了,有点困惑。 一个只有1个寄存器和2个内存插槽的处理器。 它有两个指令SUB和STO。 仅使用以下方法实现LOD,ADD和MOV: SUB a,内存1 SUB a,内存2 ...

ARM逻辑操作说明

[英]ARM Logical Operation Instructions

我正在上微控制器课程,我们正在研究ARM处理器体系结构。 我们目前正在谈论数据处理指令(算术,比较,逻辑和数据移动)。 我了解算术比较和数据移动指令的概念,以及它们在用代码编写时的工作方式。 但是,我不了解逻辑指令的工作方式。 在我们的讲座中,我们给出了3个示例,但我都不理解。 例 ...

找到以可执行文件访问内存的机器指令

[英]Locate the machine instructions that access the memory in executable

编辑:我想通过插入一个断点并比较断点前后的内存来测试系统。 我使用静态分析来获取C源代码位置的列表和调试信息(例如,小矮人),该列表提供了C源代码与可执行文件中的机器指令之间的映射。 但是问题在于,有许多机器指令映射到C源代码的一行,我需要测试所有这些指令。 要测试的机器指令是修改内 ...

如何使用ARMv5TE指令集的增强乘法指令

[英]How to use the enhanced multiplier instructions of ARMv5TE instruction set

我使用的是 ARM966E-S RISC-CPU,想知道如何使用明显可用的指令集扩展来获得更好的 DSP 性能,例如增强的乘法器指令。 我在技术参考手册中读到这些指令集扩展可用,但我不知道如何使用/激活它们。 有人可以帮忙吗? 提前致谢! ...

在C程序中,BITWISE AND操作如何可能比ARITHMETIC ADDITION操作花费更多的CPU时钟?

[英]How is it possible that BITWISE AND operation to take more CPU clocks than ARITHMETIC ADDITION operation in a C program?

我想测试按位运算是否真的比算术运算要快。 我以为是。 我写了一个小的C程序来检验这个假设,令我惊讶的是,相加平均比按位与运算要少。 这让我感到惊讶,而且我不明白为什么会这样。 据我所知,从较低有效位进位的进位应进位到下一位,因为结果也取决于进位。 对我来说,逻辑运算符比加法运算 ...

存储单元还是英特尔处理器上的加载单元吗?

[英]Is Store Unit Also a Load Unit on an Intel processor?

大多数英特尔处理器具有2个装载单元和1个存储单元。 商店单位还是装载单位吗? 是用于修改现有内存数据(如inc [memory]的指令/微操作是否仅利用1个存储单元,而其余2个装载单元可用于可在同一周期内执行的其他微操作/指令,或诸如inc指令取1个加载单位(以加载现有值)加上1个存储单位( ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM