Due to some lucky circumstances, I recently had the chance to appear in one of the biggest German gaming podcasts, Stay Forever, to talk about the technology of RollerCoaster Tycoon (1999). It was …
Assembly is the ‘human-readable’ version. It has mnemonic values for the opcodes, so you can write eg. RET to return from a subroutine rather than the machine code 0xC3 / 195. It also lets you write named labels for offsets in the code which are substituted for their number values during assembly, which saves a lot of tedious counting, and macros, which are expanded into a longer list of instructions, saving lots of copy-paste.
So yeah, machine code is a step down. Not a big step down, there’s pretty much a 1:1 conversion between either form, but assembly has a couple of niceties that make it much easier for humans to work with.
Assembly is the ‘human-readable’ version. It has mnemonic values for the opcodes, so you can write eg. RET to return from a subroutine rather than the machine code 0xC3 / 195. It also lets you write named labels for offsets in the code which are substituted for their number values during assembly, which saves a lot of tedious counting, and macros, which are expanded into a longer list of instructions, saving lots of copy-paste.
So yeah, machine code is a step down. Not a big step down, there’s pretty much a 1:1 conversion between either form, but assembly has a couple of niceties that make it much easier for humans to work with.