2009-06-02 5 views
1

SIC 어셈블러를 코딩했는데 모든 것이 I/O 측면을 제외하고는 정상적으로 작동하는 것 같습니다.SIC 어셈블러 I/O

메모리에 객체 코드를로드했습니다 (기계어 표현으로 변환 된 char 형식). 그러나 SICRun()을 호출하면 객체 코드가로드됩니다. 코드를 실행하려면 "devf1을 찾을 수 없습니다"라는 오류 메시지가 나타납니다.

나는 이것이 소스 코드의 입력/출력 장치 명령과 관련되어 있음을 알고 있습니다.
c 파일에는 외부 파일, 특히 Dev [6]에 따라 다르다고 나와 있습니다. 내가 직접 만들어야 하나? 강사가 다른 파일을 제공하지 않았습니다. 어떤 통찰력?

예 : TD 출력, 디렉토리는 소스 코드 (source.asm), 헤더 파일 (sic.h)를 포함

This TEST 출력 장치와 SIC 시뮬레이터 (sicengine.c)가에서

답변

3

sicengine.c 소스 파일로서 devf1 (도 dev2/dev3) 파일 (파라미터로서 "r" 전달된다 fopen)로부터 판독 될 수 있도록이 '입력 장치'이 예상되는 것처럼 보인다 :

if (opcode == 216) { /* RD */ 
    /* ... */ 
    if ((Dev[Devcode] = fopen(SICFile[Devcode],"r")) == NULL) { 
     printf("cannot open file %s\n", SICFile[Devcode]); 
     exit(1); 
    } 
,745,

코드 Dev[6]에 관한 코드의 주석은 모호합니다. 실제로는 devf1, devf2devf3 (입력 장치) 및 devf04, devf05devf05 (출력 장치) 인 Dev 배열의 파일 이름을 의미합니다.

devf1, devf1devf3 파일을 만드는 것이 좋습니다.

+0

완벽! 이것은 효과가 있었다. –