UTM lets us program in assembly language for 24 ISAs in any OS on macOS and iOS

Started by lucho, January 02, 2025, 03:29:34 AM

Previous topic - Next topic

lucho

Happy New Year! :biggrin:

Today I learned that the UTM system emulator 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.