我已经编写了一个SIC汇编器,除了I/O方面,一切似乎都运行得很好。
我已经将目标代码加载到内存中(将字符格式转换为机器表示形式),但是当我调用SICRun();来执行代码时,我得到一个错误消息"devf1 cannot be found“。
我知道这与源代码中的输入/输出设备指令有关。
C文件声明它依赖于外部文件,最值得注意的是Dev6。我是不是应该自己创建这个?我的讲师没有给我们任何其他的文件。有什么见解吗?
示例: TD输出;测试输出设备
This目录包含源代码(source.asm)、头文件(sic.h)和SIC模拟器(sicengine.c.c)。
发布于 2009-06-03 09:50:03
从sicengine.c源文件看,devf1 (也是dev2/dev3)文件应该存在,因此可以读取这个“输入设备”(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、devf05和devf05 (输出设备)。
我建议创建文件devf1、devf1和devf3。
https://stackoverflow.com/questions/940274
复制相似问题