Skip to content

Latest commit

 

History

History
43 lines (42 loc) · 2.44 KB

四元式设计.md

File metadata and controls

43 lines (42 loc) · 2.44 KB
运算符 result arg1 arg2 说明
op_label L - - 定义一个L标签
op_entry - f - 进入函数f
op_exit - f - 退出函数f
op_dec - s - 声明符号s(存疑)
op_assign x y - x=y
op_add x y z x=y+z
op_sub x y z x=y-z
op_mul x y z x=y*z
op_div x y z x=y/z
op_mod x y z x=y%z
op_neg x y - x=-y
op_incv x y - 自增运算
op_decv x y - 自减运算
op_and x y z x=y&z
op_or x y z x=y|z
op_xor x y z x=y^z
op_inv x y - x=~y(取反)
op_aand x y z x=(y&&z)
op_oor x y z x=(y||z)
op_ge x y z x=(y>=z)
op_gt x y z x=(y>z)
op_le x y z x=(y<=z)
op_lt x y z x=(y<z)
op_equ x y z x=(y==z)
op_nequ x y z x=(y!=z)
op_not x y - x=!y
op_lea x y - x=&y
op_set x y - *y=x(存疑)
op_get x y - x=*y
op_jmp L - - 跳转到标签L
op_jne L x y if(x!=y) goto L
op_jt L s - if(s) goto L
op_jf L s - if(!s) goto L
op_arg - x - 传入参数s
op_proc - f - 调用函数f
op_call x f - x=fun()
op_ret L - - return(goto L)
op_retx L x - return x(goto L)
op_read - x - 读入参数并存到x
op_write - x - 输出参数x