我最近开始学习汇编语言,阅读 Randall Hyde 的《汇编语言的艺术》一书。他还开发了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 并尝试了不同的程序,但我太不熟练了,无法解决这个问题。
任何帮助将不胜感激。
HLA 不喜欢文件路径中的空格。
如果您的某个目录中有空格,您将收到这样的错误。我花了一段时间自己弄清楚。
顺便提一句
如果重命名目录,请确保没有破坏环境路径变量。您可能还必须修复这些问题。