塔子哥这学期有一门专业必修课,叫做汇编语言,这不准备结课了嘛,老师布置了一个大作业,要求设计一种虚拟机解释器,能解析并执行以下虚拟指令。
虚拟机约定:32位的整形寄存器有a0,a1,..a31,共32个寄存器;
整个虚拟机只有寄存器和立即数参与计算。
规则集(dst一定为寄存器,src为寄存器或十进制正整数,运算结果存在负数场景):
这道题要求我们设计一个简单的虚拟机解释器,能够解析和执行一系列虚拟指令。虚拟机包含32个32位的整形寄存器(a0到a31),并且只使用寄存器和立即数进行计算。指令可以分为几种类型:MOV dst src
用于将源(src)赋值给目标寄存器(dst);ADD dst src0 src1
将两个源相加;SUB dst src0 src1
将第一个源减去第二个源;MUL dst src0 src1
将两个源相乘;DIV dst src0 src1
将第一个源除以第二个源并向下取整;PRINT dst
用于输出目标寄存器的值。输入为若干行指令,输出为对每条PRINT指令的寄存器值。
模拟题,根据题意模拟即可。
需要注意的几个点: