我编写了一个SIC汇编程序,除了它的I / O方面外,一切似乎都运行正常。
我已将目标代码加载到内存中(将转换后的char格式转换为机器表示形式),但是当我调用SICRun()时;为了执行代码,我收到一条错误,指出“无法找到devf1”。
我知道这与源代码中的输入/输出设备指令有关。
c文件声明它依赖于外部文件,最值得注意的是Dev [6]。我应该自己创造吗?我的导师没有给我们任何其他文件。有什么见解吗?
示例:TD OUTPUT; TEST OUTPUT DEVICE
This目录包含源代码(source.asm),头文件(sic.h)和SIC模拟器(sicengine.c)
答案 0 :(得分:3)
从sicengine.c
源文件看起来好像存在devf1
(也是dev2
/ dev3
)文件,因此可以读取此“输入设备” from(fopen
传递"r"
作为参数):
if (opcode == 216) { /* RD */
/* ... */
if ((Dev[Devcode] = fopen(SICFile[Devcode],"r")) == NULL) {
printf("cannot open file %s\n", SICFile[Devcode]);
exit(1);
}
代码中关于依赖文件Dev[6]
的注释含糊不清。它实际上意味着Dev
数组中的文件名称,devf1
,devf2
和devf3
(输入设备)和devf04
,{{1 }和devf05
(输出设备)。
我建议您创建文件devf05
,devf1
和devf1
。