736 人解决,954 人已尝试。
1038 份提交通过,共有 5210 份提交。
2.0 EMB 奖励。
单点时限: 2.0 sec
内存限制: 512 MB
Smith有一台古老的计算机,这台计算机使用一套非常特殊的标记编程语言。现在我们仅考虑这一语言的一个小的子集,该子集可以实现一个简单计算器。
这台机器一共有 4 个无差别的寄存器,分别为 AX, BX, CX, DX,在指令中他们可以互相替代,下面的表格列出了所有支持的指令。
指令 | 中文名 | 格式 | 解释 |
---|---|---|---|
IN | 读操作指令 | IN AX,number | 读数据存储在AX中,AX=number |
MOV | 传送指令 | MOV AX,BX | AX=BX |
ADD | 加法指令 | ADD AX,BX | AX=AX+BX |
SUB | 减法指令 | SUB AX,BX | AX=AX-BX |
MUL | 乘法指令 | MUL AX,BX | AX=AX * BX |
DIV | 除法指令 | DIV AX,BX | AX=AX/BX(整除) |
OUT | 写操作指令 | OUT AX | 输出AX的值 |
例如:以下代码实现表达式 (2+3*5)/6的计算并输出计算结果。
IN AX,3
IN BX,5
MUL AX,BX
IN CX,2
ADD CX,AX
IN BX,6
DIV CX,BX
OUT CX
输入用这种特殊标记编程语言编写的一段代码,请编写一个翻译器,对代码进行翻译,输出最后运行结果。
输入代码片段。
注意:读的数据均为int
型整数。所有被计算的数值(包括中间值)均保证在int
范围内。
输入保证不包含任何多余的空白字符,在开始执行前,所有寄存器的值可以视为已经清零。
对于每个 OUT
指令,输出一行表示结果。
IN AX,3 IN BX,5 MUL AX,BX IN CX,2 ADD CX,AX IN BX,6 DIV CX,BX OUT CX
2