运算符 | 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 |