I've started going through Randall Hyde's "The Art of Assembly" to start whetting my palate. I downloaded and installed HLA 1.38 (which I need for 64-bit support) from here , and wrote the Hello, World program as described in both the documentation listed there and in the book above.
program helloWorld;
#include ("stdlib.hhf");
begin helloWorld;
stdout.put("Hello, World!", nl);
end helloWorld;
when I run hla helloWorld.hla
, I get the following error message:
helloWorld.asm:66: Error: ambiguous operand size or operands invalid for 'push'
The Assembly line in question reads:
pushd 0 ;/* No Dynamic Link. */
As I am as green as can be with assembly language, I have no idea how to make this work. I'm assuming that there's a discrepancy between my version of gas and HLA 1.38. So the question remains: what now?
Edit: I tried compiling just the 'program', 'begin', and 'end' directives (removing the possibility of it being something with the stdlib), and get the same result with a program that does effectively nothing.
I am on 64-bit CrunchBang Linux.