luogu#P4911. 河童重工的计算机

河童重工的计算机

题目背景

河童重工业会社的计算机产品在幻想乡中有着极其广泛的应用。

有一天,妖怪之山发大水啦!洪水夹杂着泥沙和滚木汹涌着冲进了河童的城市。

本来河童们的机械设施都是防水的,可是洪水还是对城市造成了不小的破坏。其中,河童们的服务器被砸坏了!

坏掉的电脑在短时间内不能修复,可是幻想乡里的许多事情都离不开河童们的服务器!河童们也很无奈,于是荷取找到了你!你作为一名优秀的信竞选手,决定帮助荷取,减轻服务器故障所带来的压力。

题目描述

你从荷取那里得到了一份纸质资料,扫描版在这里:

Ktx-65式微处理器汇编语言规范文件.pdf

(若此网站无法打开,请在附件中下载)

(为什么说是扫描版呢,因为,你应该不能复制里面的文字)

以下这一段是汇编教程附带的示例:

[ progfunc.asm ]
[ Shows the function functionailties of the KTX-65 ALI ]

[main]
wint #line;    [output the current physical line number]
wch 13;        [putchar \r]
wch 10;        [putchar \n]
callfunc $Function1;
callfunc $Function2;
hlt;           [halt]

function $Function1;
rint %r1;      [read int]
add %r2 1 %r2; [loop contents]
lle %r2 %r1;   [loop conditions]
jif 2;         [end loop conditional jump]
wint %r2;      [output int]
wch 13;        [putchar \r]
wch 10;        [putchar \n]
ret;           [return]

function $Function2;
rint %r1;      [read int]
rint %r2;      [read int]
add %r1, %r2;  [add]
wint %val;     [output value]
wch 13;        [putchar \r]
wch 10;        [putchar \n]
ret;           [return]

你需要用洛谷评测机支持的语言编写一个程序,它读入一个Ktx-65汇编语言程序和一段输入,解释运行这个程序,然后输出这个程序输出的东西。

输入格式

第一行是一个整数N,表示汇编程序的行数。

接下来N行是这个汇编程序,保证不会出现空行。

接下来的所有行都是这个汇编程序的输入。

输出格式

一堆东西,表示这个汇编程序的输出。

~~评测系统将以逐字节比较的方式判断你的输出是否正确。~~假的,洛谷不支持

5
rint %r1;
rint %r2;
add %r1 %r2;
wint;
hlt;
5 4
9

提示

注意:样例输出中只有9这一个字节。

保证一行中只有一个指令。

对于10%的数据:程序中只有输入和输出的指令,且不会出现数字常量,也不会有注释。

对于另外10%:程序中只有输入、输出和加法指令,且没有注释。

对于另外30%:包括除函数调用和跳转在内的所有指令。

对于剩下50%:指令没有限制。

对于全部的数据:命令条数不超过50000条,剩余输入不超过500千字节,程序需要执行的步数不超过80000步。

保证汇编程序和数据不出现编译或是运行时错误。

保证程序输入足够满足汇编程序中读入的需要。

不保证这是或不是一道毒瘤题

不保证考试时会不会有人AC这道题

不保证这次考试会不会有人AK

保证出题人为:洩矢诹访子

考试时打不开河童给的文件可以向我索要,不保证是否会回答

其实这道题数据非常简单,只是量大而已