What you do in Human Resource Machine is programming. You are working at a lower level in a kind of restricted version of assembler, but you use all the same techniques. It is also worth noting that there are different forms of assembler, it isn’t a single unified language which means this isn’t necessarily the most restricted version of assembler that exists. I actually consulted my partner who has some experience using real world assembler when I was doing my optimisation run and despite not showing her the game she was really helpful. I did have to get my terminology straight first however.
The key things were how to discuss the storage using the tiles on the floor, and how to discuss what your character is holding.
The tiles on the floor represent registers, where you can store values on a short term basis while you are processing.
The value your character is holding represents the accumulator, basically a register that holds the working value. It is implicitly targeted in most instructions. This is why we never have 2 targets for a single command, SUB N is always SUBtract N from the accumulator. JUMPZ and JUMPN are always based on the value held in the accumulator.
Once I had those terms sorted out discussions about the game were much more productive.
Let’s go over to the next page for the optimised code for these levels.