Compiler construction 对指令进行实时输入和实时输出的寄存器之间的区别

Compiler construction 对指令进行实时输入和实时输出的寄存器之间的区别,compiler-construction,compiler-optimization,Compiler Construction,Compiler Optimization,登记簿的住址和住址有什么区别 我的理解是,活出寄存器意味着在当前行中指定的寄存器包含一个变量,该变量不会从其后续行更改 这是我的编译器考试中的一些机器代码,可以帮助我回答问题 L0 : lim z, 0 L1 : jmp L6 L2 : sub x, x, y L3 : mov t, z L4 : lim z, 0 L5 : addi z, t, 1 L6 : blth y, x, L2 简而言之,对于程序中的给定指令,如果寄存器在指令执行之前处于活动状态,则寄存器处于活动状态;如果寄存器在指

登记簿的住址和住址有什么区别

我的理解是,活出寄存器意味着在当前行中指定的寄存器包含一个变量,该变量不会从其后续行更改

这是我的编译器考试中的一些机器代码,可以帮助我回答问题

L0 : lim z, 0
L1 : jmp L6
L2 : sub x, x, y
L3 : mov t, z
L4 : lim z, 0
L5 : addi z, t, 1
L6 : blth y, x, L2

简而言之,对于程序中的给定指令,如果寄存器在指令执行之前处于活动状态,则寄存器处于活动状态;如果寄存器在指令执行之后处于活动状态,则寄存器处于活动状态

从头开始,如果寄存器的内容将在寄存器重置之前使用,则寄存器在程序中的给定点处于活动状态。例如,在
L2
L3
之间的点上,寄存器
z
是活动的,因为它将来会被使用(通过
L3
),但是
t
是死的,因为在值更改之前没有使用
t
。这意味着
z
是为
L3
而活,为
L2
而活,而
t
不是