3 ms·
Subtract is a "built-in arithmetic instructions" so it wouldn't be allowed in this environment. The idea is to implement arithmetic, but from bitwise operation
by egsmi 6y ago
Subtract is a "built-in arithmetic instructions" so it wouldn't be allowed in this environment. The idea is to implement arithmetic, but from bitwise operations.
https://en.wikipedia.org/wiki/Bitwise_operation https://en.wikipedia.org/wiki/Bitwise_operation
- echlebek 6y agoHere's some background on how things like that work: https://en.wikipedia.org/wiki/Adder_(electronics) https://en.wikipedia.org/wiki/Adder_(electronics)
- kens 6y agoThis is getting far afield from the actual Nanoprocessor, which has increment and decrement instructions. With those, you can add two numbers by repeatedly incrementing one and decrementing the other. (Which is a bit like addition using the Peano axioms.) See page 126 of the Nanoprocessor User's Manual for code to add two numbers in this way. https://www.hp9845.net/9845/downloads/manuals/Nanoprocessor.pdf https://www.hp9845.net/9845/downloads/manuals/Nanoprocessor....
- egsmi 6y agoOne can also use the techniques demonstrated your reversing the ALU article. :) https://www.righto.com/2020/08/reverse-engineering-8086s.html https://www.righto.com/2020/08/reverse-engineering-8086s.htm...
- recursive 6y agoInteresting problem. In this case though, I was just offering a pointless optimization to the parent post, which also used subtraction, so I assumed it was allowed.