Topic: Best compiler for assembly?
Wondering what compiler would be best, i have a x64 system, but either would be fine.
nub question: is x64 diff to x84 when run or when compiled??
Wondering what compiler would be best, i have a x64 system, but either would be fine.
nub question: is x64 diff to x84 when run or when compiled??
1) I am no expert on this subject. However, NASM and MASM are fairly popular assemblers. In your post, I believe you meant x86 not x84. Assuming you did, x64 and x86 are completely different architectures and contain different instructions. Therefore, you do need separate assemblers to create a binary for each architecture. NASM and MASM both have assemblers for x64 and x86 architectures.
2) A binary assembled for one architecture will not run on a different architecture (unless there is a special technology or emulator allowing it to). So in your specific case, an x64 binary will not run on an x86 machine. However, an x86 binary may be able to run in an x64 environment (if running Windows at least due to a technology named WoW64). Wikipedia has a lot more information on this. You can start here:
[Register or log in to view the URL]
*After reading that Wikipedia article, it seems that x86 and x64 architectures are very closely related. x64 is simply an extension of x86 (using 64bit general purpose registers and other enhancements). It also seems that *all* x86 code is backwards compatible with x64 processors.
Hope this helps.
I suggest using NASM over MASM. I tried a lot of the ASMs (see [Register or log in to view the URL] ), and NASM came out as my favorite by far. It has good cross-platform compatibility and tends to be more user-friendly, assuming you're comfortable with the command line. As for the x86 vs. x64 debate, if you're writing malware x86 is definitely the way to go, as it will run on both types of systems. If you write x64 assembly it'll only run on new, 64-bit machines.
its a matter of opinion, I prefer NASM or FASM
Nasm- due to it being on linux
Fasm- due to its nice syntax