对于我们的课程,我们必须制作一个C程序,将MIPS指令编码为指令字,并将指令字解码为MIPS指令。
我已经编写了所有内容并在某些情况下进行了测试,但我想在更大的数据集上进行测试。
我们给出了测试文件:test.asm
和test.bin
。 .asm
文件具有MIPS指令,.bin
文件具有用于那些MIPS指令的等效指令字。
我的decode
函数接收来自test.bin
的指令字,将它们转换为等效的MIPS指令并将其发送到stdout
。
我想将我的解码函数的输出与test.asm
文件中的MIPS指令进行比较,看它们是否相同(我正确解码)。
有人告诉我,我可以使用cmp
命令和进程替换来比较两者,但我不知道我会把它放在<(...)
里面。
我运行我的程序:bin/mips -d < test.bin
,其中-d
标志代表decoding
。
我想也许会是这样,但我不确定:
cmp <(cat test.asm) <(bin/mips -d < test.bin)
该命令应该可以工作,但是不需要使用cat
进行进程替换,只需将文件名放在那里:
cmp test.asm <(bin/mips -d < test.bin)
我不确定使用格式cmp file1 file2
,但你可以像这样做file1 | cmp file2
:
bin/mips -d test.bin | cmp test.asm