machine-instruction相关内容

哪些 x86 指令需要两个(或更多)内存操作数?

我以为是零.但是,我在这里看到, 具有两个内存操作数的指令极为罕见 我找不到任何可以解释存在哪些指令(尽管很少见)的内容.有哪些例外? 解决方案 我找不到任何可以解释这种稀有性的东西. 一条 x86 指令最多可以有一个 ModR/M + SIB + disp0/8/32.所以有两个显式内存操作数的零指令. x86 内存-内存指令都至少有一个 隐式 内存操作数,其 ..
发布时间:2021-12-18 08:53:57 其他开发

指令和微操作的区别

机器指令和微操作有什么区别?我在此处找到了以下定义: 一个小的、基本的指令,串联使用组成一个高级别的指令机器指令 这是我在维基百科 上找到的内容 在计算机中央处理器中,微操作(也称为micro-ops 或 μops)是一些详细的低级指令设计来实现复杂的机器指令(有时称为此上下文中的宏指令) 我是否正确理解微操作是在给定周期内执行的处理器指令.说喜欢和 ADD、SUB、MUL、 ..

动态与静态指令计数

动态指令数和静态指令数有什么区别? 一个.导出一个表达式来计算用户 CPU 时间作为函数以下参数:动态指令数(N),每条指令的时钟周期 (CPI) 和时钟频率 (f) B.解释在问题 3a 中选择“动态"指令计数作为参数的原因而不是“静态"指令计数 解决方案 动态指令数是 CPU 为特定程序执行实际执行的指令数,而静态指令数是程序拥有的指令数. 我们通常使用动态指令计数, ..
发布时间:2021-06-02 22:19:48 其他开发

实际的机器代码在各个方面是什么样的?

对于实际的机器代码似乎有很多意见.我听说有人说它是汇编语言,二进制或十六进制. 说机器代码本质上是针对特定处理器的一组指令是否正确?如果是这样,我想这些可以用二进制或十六进制表示法或汇编形式表示.但是,未经翻译的“实际"机器代码是什么样的呢?它基于体系结构的字长吗?还是所有意图和目的的十六进制都是默认表示形式? 坐在硬盘上看起来像什么?坐在收银机上看起来像什么?在处理时怎么样,那时候仅 ..
发布时间:2020-07-24 08:00:19 其他开发

为什么汇编指令可以在"lea"中包含乘法?操作说明?

我正在研究性能非常关键的应用程序的非常低级的部分. 在调查生成的程序集时,我注意到以下说明: lea eax,[edx*8+8] 使用内存引用(例如[edx + 4])时,我习惯于看到加法,但这是我第一次看到乘法. 这是否意味着x86处理器可以在lea指令中执行简单的乘法运算? 这种乘法对执行指令所需的周期数有影响吗? 乘法是否仅限于2的幂(我会假设是这种情况)? ..
发布时间:2020-07-24 08:00:15 其他开发

大于和大于或等于之间是否存在性能差异?

在当今的现代处理器上,分支条件的大于和大于或等于比较之间是否存在性能差异?如果我有一个容易发生的情况,选择>而不是>=有什么小优势吗?反之亦然吗? (这适用于Intel或AMD硬件上的编译语言) 解决方案 由于比较谓词的计算方式,比较不同谓词之间不应有任何明显的区别(请注意,我没有详细阅读x86手册)因此可能会有所不同): 大多数指令会产生几个标志作为副产品,通常至少具有:进位(c) ..
发布时间:2020-07-24 08:00:11 其他开发

处理器/寄存器/存储器中的数据,地址和指令有何区别?

在处理器中,如何区分数据,地址和指令?在执行程序时,当所有内容都在0 s and 1 s并且寄存器的数据和地址都装入时,处理器如何区分指令? 解决方案 处理器仅执行您要执行的操作.如您所述,处理器无法分辨内存中“数据"和“代码"之间的区别:它们全都是字节序列.您就是要告诉它与定义该字节如何处理的那些字节有关. 编译程序时,生成的可执行文件中包含信息,该信息说明哪些部分是代码,哪些部分 ..
发布时间:2020-07-24 08:00:10 其他开发

处理器指令周期执行时间

我的猜测是,假设每个NOP在一个时钟周期内执行,我想通过__no_operation()内部(ARM)指令执行1/(168 MHz),我想通过文档进行验证. 是否存在用于处理器的指令周期执行时间信息的标准位置?我正在尝试确定STM32f407IGh6处理器需要多长时间才能执行以168 MHz运行的NOP指令. 某些处理器每个指令周期需要多次振荡,有些在将时钟周期与指令周期进行比较时是一 ..
发布时间:2020-07-24 07:59:06 其他开发

C ++可以在全局范围内使用代码吗?

拥有代码(在C ++源文件的全局范围内编译为汇编指令是否合法)?以前,我的印象是,除了但是,我发现您可以通过将函数赋给全局变量来在C ++中的主函数之前调用函数!这将在汇编代码中包含call指令.您也可以将两个变量的和分配给汇编代码之外的另一个全局变量.几乎可以肯定会涉及到add和mov指令.如果该代码在任何函数之外的全局范围内,它将在何时执行?如果+是一个类类型的重载运算符,如果它里面有一个pr ..
发布时间:2020-07-24 07:59:02 C/C++开发

哪些x86指令需要两个(或更多)内存操作数?

我认为那里是零.但是,我在这里看到 带有两个内存操作数的指令极为罕见 我找不到任何能解释什么指令的资料,尽管很少见.有什么例外? 解决方案 我找不到任何能解释稀有性的东西. x86指令最多可以具有一个ModR/M + SIB + disp0/8/32.因此,零指令具有两个显式内存操作数. x86存储器指令全部具有至少一个隐式存储器操作数,其位置被烘焙到操作码中, ..
发布时间:2020-07-24 07:59:00 其他开发

机器值类型是什么“其他"? llvm SDnodes中的均值

我试图更深入地了解llvm中的指令选择过程,为此,我正在逐步调试CodeGenAndEmitDAG函数.在合并步骤之前,我已经打印了一个小功能(见下文),即上述功能的第一步.在图中,我看到了蓝线,并且它们似乎总是指向"ch",我认为这意味着“其他"机器值类型.我不明白蓝线的含义...这种依赖性是什么?而且,我对"ch"的含义是否正确?是“其他"吗? 解决方案 虚线蓝色箭头表示之间的非数据流依赖性 ..
发布时间:2020-05-02 10:53:43 其他开发

第一个编译器是如何编写的?

我听说鸡肉和鸡蛋和自慰。我有几个问题。 是什么编写了第一个将某些东西转换为二进制指令的编译器? 编译或翻译成二进制指令? ...我很难相信他们用二进制编写了一个编译器。 这个用于6039微处理器,例如),它们用匹配的汇编指令列出它们,并且为诸如跳转之类的事情手动确定存储器地址/偏移。 第一个程序是以这种方式完成的 - 手写的操作码。 但是,大多数时候,使用汇编器“编 ..

在ASM 8086 ADC指令

当我使用 ADC 为〔实施例: AL = 01和BL = 02和CF = 1 当我这样做: ADC AL,BL 威尔 AL 是 3 或 4 ? (与 CF 添加或不?) 解决方案 有关 8086 ADC 指令几件事情语法:ADC DEST,SRC DEST:内存或寄存器 SRC:内存,注册,或立即 操作:DEST = DEST + SRC + CF 显然动作说,进位标志( ..
发布时间:2016-07-18 20:56:01 .NET Framework

什么是循环指令(ROL,RCL在x86)的目的是什么?

我总是在想什么的移位指令,某些CPU有目的(ROL,RCL在x86,例如)。什么样的软件,利用这些指令?我首先想到它们可用于加密/计算哈希codeS,但这些库在C,它不具有映射到这些指示运营商通常写。结果 有没有人发现他们的使用?为什么他们加入到指令集? 解决方案 用于旋转都需要跨越多个字位的变化。当你SHL低位字,高位位流溢到随身携带。为了完成该操作,则需要更高的字(S)而到了低位带来 ..
发布时间:2016-07-18 20:09:21 .NET Framework