&引用;mov";“的;汇编语言;是复制还是移动? 最近,我读了STD:C++的MOV,我把一个问题当作标题。

&引用;mov";“的;汇编语言;是复制还是移动? 最近,我读了STD:C++的MOV,我把一个问题当作标题。,c++,assembly,move,mov,C++,Assembly,Move,Mov,假设初始值如下: int a= 1; int b= 2; 我认为: 情景1, 移动后(a在我使用过的每个架构中,aMOV复制值,并保持源代码不变。对此有一个非常简单的理由。汇编是“基本级别”因此,每一条指令都尽可能少地完成任务。这样,发生意外行为的机会就更少了,而且可能有更精确的组合。在我使用过的每一种体系结构中,一个MOV复制值,一个d保持源代码不变。对此有一个非常简单的推理。汇编是“基本级别”因此,每一条指令都尽可能少地完成工作。这样一来,发生意外行为的机会就少了,而且可能有更精确的组合。

假设初始值如下:

int a= 1;
int b= 2;
我认为:

情景1,


移动后(a在我使用过的每个架构中,a
MOV
复制值,并保持源代码不变。对此有一个非常简单的理由。汇编是“基本级别”因此,每一条指令都尽可能少地完成任务。这样,发生意外行为的机会就更少了,而且可能有更精确的组合。

在我使用过的每一种体系结构中,一个
MOV
复制值,一个d保持源代码不变。对此有一个非常简单的推理。汇编是“基本级别”因此,每一条指令都尽可能少地完成工作。这样一来,发生意外行为的机会就少了,而且可能有更精确的组合。

它复制了……嗨@Wagner Patriota:谢谢你的回答。我也知道这个问题笨蛋……我对汇编不熟悉。所以,答案是2?@ CuryWey是的,在汇编中<代码> MOV 是一个拷贝,不是一个移动。C++引用不是一个很好的代码,因为<代码> STD::MOVER()/Cyto>只是一个类型转换,实际上没有移动任何东西。在POD类型的分配中,如
int
,也是一个副本,而不是一个移动。有无数不同的汇编语言,不同的处理器,每个处理器有不同的语法,这取决于工具供应商等。但移动是一个副本,一般来说源代码不会被销毁,读取此寄存器或内存位置中的值,然后读取wr将该值保存到此(其他)寄存器或内存位置,即“副本”指英语中的某些东西,因为源代码没有被破坏。如果有这样一个处理器,源代码被破坏了,它通常是一条不同的指令,或者它是一个外设/内存的特殊功能,与指令集无关。大多数处理器汇编语言只有一个目标和一个或多个源代码。它会复制I @ Wagner Patriota:谢谢你的回答。我知道这个问题太愚蠢了…我不熟悉汇编。所以,答案是2?@ CuryWeee是的,在汇编中<代码> MOV < /Cord>是一个拷贝,不是一个移动。C++引用不是很好,因为<代码> STD::MOVEL()只是一个类型转换,实际上不移动任何内容在POD类型的分配中,如
int
,也是一个副本,而不是一个移动。有无数不同的汇编语言,不同的处理器,每个处理器有不同的语法,这取决于工具供应商等。但移动是一个副本,一般来说源代码不会被销毁,读取此寄存器或内存位置中的值,然后读取wr将该值保存到此(其他)寄存器或内存位置,即“副本”指英语中的某些东西,因为源代码没有被破坏。如果有这样一个处理器,源代码被破坏,它通常是一条不同的指令,或者它是一个外设/内存的特殊功能,与指令集无关。大多数处理器汇编语言只有一个目标和一个或多个源代码。
a= 2 , b=  
a=2  , b=2