.hla 파일을 컴파일하려고 할 때 변환 오류가 발생했습니다.

.hla 파일을 컴파일하려고 할 때 변환 오류가 발생했습니다.

저는 최근 Randall Hyde의 "The Art Of Assembler Language"라는 책을 읽고 어셈블러를 배우기 시작했습니다. 그는 또한 초보자가 어셈블러를 쉽게 배울 수 있도록 HLA(High Level Assembly) 언어를 개발했습니다.

생성된 .hla 프로그램을 컴파일하려면 다음에서 .exe를 다운로드할 수 있습니다.여기, 필요한 모든 설정을 설치합니다. 디렉토리를 /hla로 변경하고 명령줄에 다음을 입력하여 간단히 프로그램을 컴파일할 수 있습니다 hla PROGRAM.hla.

내 문제: 처음에는 컴파일러가 잘 작동했지만 이제 프로그램을 컴파일하려고 하면 오류가 발생합니다. 프로그램은 다음과 같습니다:

program helloWorld;
#include ("stdlib.hhf");

begin helloWorld;

    stdout.put("Hello, World of Assembly Language", nl);

end helloWorld;

이제 명령줄에 입력하면 hla helloWorld.hla다음과 같은 창이 나타납니다.변환 오류.

또한 이 오류는 명령줄에 나타납니다.

POLINK: fatal error: File not found: 'Level.OBJ'.
Error returned by POLINK = 1

그리고 컴파일러는 다음과 같은 .link 파일을 생성합니다.

-heap:0x1000000,0x1000000
-stack:0x1000000,0x1000000
-base:0x4000000
-entry:HLAMain
-section:.text,ER
-section:.data,RW
-section:.bss,RW
kernel32.lib
user32.lib
gdi32.lib

이 명령으로 시도했는데 hla -v helloWorld.hla다음과 같은 결과가 나왔습니다.

    HLA (High Level Assembler)
    Use '-license' to see licensing information.
    Version 2.16 build 4413 (prototype)
    Win32 COFF output
    OBJ output using HLA Back Engine
    -test active

    HLA Lib Path:     C:\hla\hlalib\hlalib.lib
    HLA include path: C:\hla\include
    HLA temp path:
    Linker Lib Path:  ;D:\hla\hlalib;D:\hla\hlalib;C:\hla\hlalib;C:\hla\hlalib;D:\hla\hlalib;C:\hla\hlalib;C:\hla\hlalib

    Compiling 'helloWorld.hla' to 'helloWorld.obj'
    using command line:
    [hlaparse -WIN32 -level=high  -v -test "helloWorld.hla"]

    ----------------------
    HLA (High Level Assembler) Parser
    use '-license' to view license information
    Version 2.16 build 4413 (prototype)
    -test active
    Output Path: ""
    hlainc Path: "C:\hla\include"
    hlaauxinc Path: ""
    Compiler generating code for Windows OS
    Back-end assembler: HLABE
    Language Level: high

    Assembling "helloWorld.hla" to "helloWorld.obj"
    HLAPARSE assembly complete, 40963 lines,   0.058 seconds,  705043 lines/second
    ------------
    HLA Back Engine Object code formatter
----------------------
Linking via [polink @"helloWorld.link._.link"]
POLINK: fatal error: File not found: 'Level.OBJ'.
Error returned by POLINK = 1

시스템을 재부팅하고 .exe를 다시 설치하고 다른 프로그램도 시도했지만 이 문제를 해결하기에는 너무 미숙합니다.

도움을 주시면 감사하겠습니다.

답변1

HLA는 파일 경로의 공백을 좋아하지 않습니다.

디렉토리 중 하나에 공백이 있으면 다음과 같은 오류가 발생합니다. 스스로 알아내는 데 시간이 좀 걸렸습니다.

그나저나

디렉터리 이름을 바꾸는 경우 환경 경로 변수가 손상되지 않았는지 확인하세요. 이 문제도 해결해야 할 수도 있습니다.

관련 정보