繁体   English   中英

“指令”和“操作”术语有什么区别?

[英]What is the difference between "instruction" and "operation" terms?

定义:

Instruction只是汇编语言的原子部分,例如

MOV EAX, EBX

现在假设我们有以下用 C++ 语言编写的代码:

int  a = 1;    
int  b = a + 3;

这里=+operators

在数学中, operation是 function 将零个或多个输入值(称为操作数)转换为明确定义的 output 值。


据我了解,我们不能在没有赋值的情况下执行operator (基本上我们可以写b > c;但它没有任何意义),甚至在内部进行递增和递减工作为x = x + 1

所以在我看来,在计算机科学中, operation总是一些单一操作员执行的结果 例如:

c = 1 + 2;     // this is operation since we have single + operator 
c = 1 + 2 + 3; // here we have two operations 1 + 2, and result of it + 3

现在。 并非每一行代码都可以翻译成一条指令,例如:

int  a = 1;     // MOV EAX, 1

int  b = a + 3; // ADD EAX, 3
                // ADD EBX, EAX 

所以给operation下面的定义是正确的(对于x86):

operation是算子执行的结果。 它会转化为 1 个或多个指令。

我的理解是:指令是下层术语,用于告诉您在每个步骤中要做什么,涉及寄存器,memory 地址等。因此,我们用该语言编写的操作可以采用下层语言中的多条指令。

一个 function 可以有多个运算符。
一个操作可能需要多个指令来实现。
(或者有时,单个 asm 指令可以实现多个操作,例如 x86 lea eax, [ecx + edx*4 + 123]实现x + (y<<2) + 123

大于符号也是一个运算符:它将 LHS 值与 RHS 值进行比较。 还有一元运算符:(++) (.) 等。

具有编译时常量操作数(如1+2+3 )的运算符可以在编译时计算为单个常量,无需使用 asm 指令。 (或者 1 mov如果您不能稍后立即使用该常量)

并且操作符不需要是数学的:在 C++ 中, deletenew在 C++ 语法规则方面也是操作符。 但在 asm 中,它们被实现为 function 调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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