📅  最后修改于: 2023-12-03 15:13:08.433000             🧑  作者: Mango
在编译器的上下文中,指令的名称揭示了它们操作的数量。2地址指令在操作时使用两个数据。3地址指令在操作时使用三个数据。即 2条地址和三条地址的差别。
2地址指令是一种计算机指令,它可以将两个操作数进行某些运算。每个操作数都存储在一个寄存器中,指令从寄存器中获取操作数并将结果存储回另一个寄存器中。2地址指令通常使用一种“源目标(source destination)”格式。
add r1,r2 ; 将r1=r1+r2
sub r1,r2 ; 将r1=r1-r2
mov r1,r2 ; 将r1=r2
3地址指令是一种计算机指令,它带有三个操作数,其中两个操作数用来保存源操作数,位于后面的操作数用于保存目标操作数。在执行操作时,源操作数将被添加、减去或者分配到目标操作数中。3地址指令通常使用一种“目标源源(destination source1 source2)”格式。
add r1,r2,r3 ; 将r1=r2+r3
sub r1,r2,r3 ; 将r1=r2-r3
mul r1,r2,r3 ; 将r1=r2*r3
在计算机编译器中,3地址指令比2地址指令更通用和更好。3地址指令可以实现2地址指令不能完成的一些操作。而且,3地址指令具有更高的灵活性和更小的代码体积。然而,3地址指令通常比2地址指令花费更多的时间在执行期间,因为它们有更多的运算和数据传输。