6.3.3 为跳转指令产生汇编代码
在这一小节中,我们要为“有条件跳转”、“无条件跳转”和“间接跳转”产生相应的汇编指令。中间指令的四元式如下所示:
<运算符opcode,目的操作数DST,源操作数SRC1,源操作数SRC2>
(1) 有条件跳转,例如“if (a <= b) goto BB2;”,四元式为:
<JLE,BB2,a,b>
对应的汇编代码//
movl a, %eax //把SRC1的值暂存在寄存器eax中
6.3.3 为跳转指令产生汇编代码
在这一小节中,我们要为“有条件跳转”、“无条件跳转”和“间接跳转”产生相应的汇编指令。中间指令的四元式如下所示:
<运算符opcode,目的操作数DST,源操作数SRC1,源操作数SRC2>
(1) 有条件跳转,例如“if (a <= b) goto BB2;”,四元式为:
<JLE,BB2,a,b>
对应的汇编代码//
movl a, %eax //把SRC1的值暂存在寄存器eax中