源链接https://www.luogu.com.cn/paste/mmuza7hy,有删改
编号 | 类型 | 格式与参数 | 具体描述 | 额外参数限制 |
---|---|---|---|---|
0 | 常数入栈 | PUS X1 V1 Q1 |
对栈X1 进行入栈操作,推入值V1 ,然后转移到状态Q1 |
无 |
1 | 出栈 | POP X1 Q1 |
对栈X1 进行出栈操作,然后转移到状态Q1 |
无 |
2 | 移动 | MOV X1 X2 Q1 |
对栈X1 进行入栈操作,推入栈X2 的栈顶元素,然后对栈X2 进行出栈操作,然后转移到状态Q1 |
无 |
3 | 复制 | CPY X1 X2 Q1 |
对栈X1 进行入栈操作,推入栈X2 的栈顶元素,然后转移到状态Q1 |
无 |
4 | 加法 | ADD X1 X2 X3 Q1 |
对栈X1 进行入栈操作,推入栈X2 的栈顶元素加栈X3 的栈顶元素的结果,然后转移到状态Q1 |
无 |
5 | 减法 | SUB X1 X2 X3 Q1 |
对栈X1 进行入栈操作,推入栈X2 的栈顶元素减栈X3 的栈顶元素的结果,然后转移到状态Q1 |
无 |
6 | 乘法 | MUL X1 X2 X3 Q1 |
对栈X1 进行入栈操作,推入栈X2 的栈顶元素乘栈X3 的栈顶元素的结果,然后转移到状态Q1 |
无 |
7 | 整数除法 | DIV X1 X2 X3 Q1 |
对栈X1 进行入栈操作,推入栈X2 的栈顶元素除栈X3 的栈顶元素的结果,向下取整,然后转移到状态Q1 |
如果栈X3 的栈顶元素为0,则会得到DIVIDE_BY_ZERO 的错误 |
8 | 整数取模 | MOD X1 X2 X3 Q1 |
对栈X1 进行入栈操作,推入栈X2 的栈顶元素对栈X3 的栈顶元素取模得到的结果,然后转移到状态Q1 |
如果栈X3 的栈顶元素为0,则会得到DIVIDE_BY_ZERO 的错误 |
9 | 空栈分支 | EMP X1 Q1 Q2 |
如果栈X1 为空栈,则转移到状态Q1 ,否则转移到状态Q2 |
无 |
10 | 比较分支 | CMP X1 X2 Q1 Q2 |
如果栈X1 的栈顶元素小于等于栈X2 的栈顶元素,则转移到状态Q1 ,否则转移到状态Q2 |
无 |
11 | 终止 | TER |
终止程序 | 无 |