
私は最近、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 では、ファイル パス内のスペースは許可されません。
ディレクトリの 1 つにスペースが含まれていると、次のようなエラーが発生します。私自身、原因を突き止めるのにしばらく時間がかかりました。
ところで
ディレクトリの名前を変更する場合は、環境パス変数が壊れていないことを確認してください。これらも修正する必要があるかもしれません。