Nasm – A cross-platform x86 assembler with an Intel-like syntax
github.com
github.com
If someone can build FASM 1 for 64-bit MacOS, it would be great.
It's written in 32-bit x86 assembly, so that's unlikely.
EDIT: looking it up it looks like someone has done some work for that: http://arm.flatassembler.net/
I started with 6502 assembly back in the 80s, and assembly for 8-bit micros in the 90s. I left assembly until just 4 years ago, and then I started playing with it again for boot sector games because of Oscar Toledo Gutierrez's book, 'Programming Boot Sector Games', for fun. Now there's, 'More Boot Sector Games'.
I was a Commodore PET 2001, Vic-20, Amiga 1000, Amiga 500, and Apple PowerPC user back in the day (1978 to 1997), but it looks like DOS/Gates has won; here I am spending my free time trying to create games for DOS!
NOTE: Legacy boot mode was taken out of Windows around 2019/2020, so you will need an older computer if you want to boot it off of a USB stick. Or you could just use a DOS emulator.
movl mem_location(%ebx,%ecx,4), %eax
on any architecture where assemblers also support this: mov eax, [ebx + ecx*4 + mem_location]- it's closer to the usual pseudo assembly "eax <- ebx"
- it's closer to the mathematical "A = B"
- on a more practical side, it's what was adopter by C standard library "memcpy(dst, src)"
Thinking about it, there are more reasons to favor 'mov dst, src'. I think the culprit (at least for me) is that I cannot "pronounce" it correctly in my head. I have to use some peripheral sentence such as "move in dst the contents of src" instead of the more natural (but backward from the reading perspective) "move src to dst"
Assignment is more clearly written as A := B, but I never saw this as a maths thing, but as a programming convention.
movl mem(%ebx + %ecx + 4), %ecx
also work? If so that would read better than with the commas.
(Sorry, can't quite recall how to get code snippet markup to work)
More seriously, is anyone still doing this outside of edge computing and embedded applications? Or… a hobby?
Edit: Looking back it turns out that "recently" was 18 months ago.
For this I just remind myself that every year there are people younger than me who are getting their start in these topics and this is their first time hearing about nasm. That's ok.
You'll see OS kernel developers use it, but those projects are often for educational or recreational purposes.
And it's not news it's 25 years old.