True, it isn't a(n) "HLA problem". We don't have an "assembly language standards committee", so everybody can invent their own syntax... and we do! Nice to have the flexibility, I guess, but it's a PITA in a way, too!
As for "mov rax, 1" in 32-bit code... I had to try it. Nasm won't let you do it, but we can stuff in "db"s to get the same effect. Turns out that "mov rax, 1" is encoded as "mov eax, 1" (!) - upper bits of rax are cleared when moving to eax, and this is an "optimization", I guess. Using a bigger number to force "rax"... Linux says "Segmentation fault". I suspect the actual hardware exception is "invalid opcode", but I'm not certain of that.
Best,
Frank