Happy New Year! :biggrin:
Today I learned that the UTM system emulator (https://getutm.app) allows running any operating system (OS) for 14 32-bit and 10 64-bit (a total of 24) instruction set architectures (ISAs) on macOS and iOS and hence programming in their assembly language. The ISAs are:
- aarch64
- alpha
- arm
- cris
- hppa (32/64)
- i386
- loongarch64
- m68k
- microblaze (BE/LE)
- mips (BE/LE)
- mips64 (BE/LE)
- or1k
- ppc
- ppc64
- riscv32
- riscv64
- s390x
- sh4 (LE/BE)
- sparc
- sparc64
- tricore
- x86_64
- xtensa (BE/LE)
UTM uses QEMU as its engine. It's a GUI wrapper for it. If the target ISA = the host ISA and the host OS = macOS, emulation runs at near native speed. Else it runs much more slowly, depending on the ISA.
To program in assembly language for an ISA, install UTM, create a virtual machine for the given OS, and then install a compiler, assembler and debugger in it. The specifics are OS- and product-dependent.