
Ich habe vor kurzem mit dem Erlernen von Assembler begonnen, und zwar mit dem Buch „The Art Of Assembler Language“ von Randall Hyde. Er hat auch die Sprache HLA (High Level Assembly) entwickelt, um Anfängern das Erlernen von Assembler zu erleichtern.
Um Ihre erstellten .hla-Programme zu kompilieren, können Sie eine .exe herunterladen vonHier, um alle erforderlichen Einstellungen zu installieren. Sie können Ihr Programm einfach kompilieren, indem Sie das Verzeichnis in /hla ändern und in die Befehlszeile eingeben: hla PROGRAM.hla
.
Mein Problem: Am Anfang hat der Compiler einwandfrei funktioniert, aber jetzt erhalte ich eine Fehlermeldung, wenn ich ein Programm kompilieren möchte. Das Programm sieht dann so aus:
program helloWorld;
#include ("stdlib.hhf");
begin helloWorld;
stdout.put("Hello, World of Assembly Language", nl);
end helloWorld;
Wenn ich nun in die Kommandozeile eingebe hla helloWorld.hla
, erscheint ein Fenster mit einemKonvertierungsfehler.
Außerdem erscheint dieser Fehler in der Befehlszeile:
POLINK: fatal error: File not found: 'Level.OBJ'.
Error returned by POLINK = 1
Und der Compiler erstellt einfach eine .link-Datei, die so aussieht:
-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
Ich habe es mit diesem Befehl versucht: hla -v helloWorld.hla
und erhalte die folgende Ausgabe:
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
Habe mein System neugestartet, die EXE-Datei neu installiert und auch verschiedene Programme ausprobiert, bin aber zu unerfahren, um dieses Problem zu lösen.
Jede Hilfe wird geschätzt.
Antwort1
HLA mag KEINE Leerzeichen im Dateipfad.
Wenn eines Ihrer Verzeichnisse ein Leerzeichen enthält, wird ein Fehler wie dieser angezeigt. Ich habe eine Weile gebraucht, um das selbst herauszufinden.
übrigens
Wenn Sie das Verzeichnis umbenennen, stellen Sie sicher, dass Sie Ihre Umgebungspfadvariablen nicht beschädigt haben. Möglicherweise müssen Sie diese ebenfalls korrigieren.