私はランドール・ハイドの「The Art of Assembly」を読み始めて、私の味覚を刺激し始めました. ここから HLA 1.38 (64 ビットのサポートに必要) をダウンロードしてインストールし、そこにリストされているドキュメントと上記の本の両方に記載されているように、Hello, World プログラムを作成しました。
program helloWorld;
#include ("stdlib.hhf");
begin helloWorld;
stdout.put("Hello, World!", nl);
end helloWorld;
を実行するhla helloWorld.hla
と、次のエラー メッセージが表示されます。
helloWorld.asm:66: Error: ambiguous operand size or operands invalid for 'push'
問題の組立ラインは次のとおりです。
pushd 0 ;/* No Dynamic Link. */
私はアセンブリ言語でできる限りグリーンであるため、これを機能させる方法がわかりません。私のガスのバージョンと HLA 1.38 の間に不一致があると仮定しています。疑問が残ります: 今は何ですか?
編集:「program」、「begin」、および「end」ディレクティブのみをコンパイルして(stdlibで何かになる可能性を排除して)、事実上何もしないプログラムで同じ結果を得ました。
私は 64 ビットの CrunchBang Linux を使用しています。