
저는 최근 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는 파일 경로의 공백을 좋아하지 않습니다.
디렉토리 중 하나에 공백이 있으면 다음과 같은 오류가 발생합니다. 스스로 알아내는 데 시간이 좀 걸렸습니다.
그나저나
디렉터리 이름을 바꾸는 경우 환경 경로 변수가 손상되지 않았는지 확인하세요. 이 문제도 해결해야 할 수도 있습니다.