📌  相关文章
📜  3地址指令和2地址指令之间的区别(1)

📅  最后修改于: 2023-12-03 15:13:08.433000             🧑  作者: Mango

3地址指令和2地址指令之间的区别

在编译器的上下文中,指令的名称揭示了它们操作的数量。2地址指令在操作时使用两个数据。3地址指令在操作时使用三个数据。即 2条地址和三条地址的差别。

2地址指令

2地址指令是一种计算机指令,它可以将两个操作数进行某些运算。每个操作数都存储在一个寄存器中,指令从寄存器中获取操作数并将结果存储回另一个寄存器中。2地址指令通常使用一种“源目标(source destination)”格式。

add    r1,r2  ; 将r1=r1+r2
sub    r1,r2  ; 将r1=r1-r2
mov    r1,r2  ; 将r1=r2
3地址指令

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地址指令花费更多的时间在执行期间,因为它们有更多的运算和数据传输。