Re:The HP Nanoprocessor: a high-speed processor that can't e...
by mkup on Friday September 04, 2020 @03:07PM
(#24377914)
Yes, addition and all other arithmetic and logical operations can be implemented using only one building block: Peirce's arrow (Logical NOR). I can't understand why you are getting downvoted.
Re:The HP Nanoprocessor: a high-speed processor that can't e...
by perl4ever on Sunday September 06, 2020 @09:31AM
(#24391161)
A question I was interested in a while ago was, how would you implement the usual bitwise operations if you can only do 2s-complement arithmetic.
I wasn't sure if it's something anyone reasonably bright should be able to derive, or how to search for it.
Re:The HP Nanoprocessor: a high-speed processor that can't e...
by Invictus0 on Friday September 04, 2020 @02:54PM
(#24377816)
I did this in my head and came up with -1*(-x - y); seems a little cheeky but acceptable.
Re:The HP Nanoprocessor: a high-speed processor that can't e...
by recursive on Friday September 04, 2020 @03:32PM
(#24378161)
If you're allowed negation, (like `-x`) then `x - (-y)` seems even better.
Re:The HP Nanoprocessor: a high-speed processor that can't e...
by egsmi on Friday September 04, 2020 @03:44PM
(#24378260)
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
Re:The HP Nanoprocessor: a high-speed processor that can't e...
by kens on Friday September 04, 2020 @05:07PM
(#24378898)
This 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....
Re:The HP Nanoprocessor: a high-speed processor that can't e...
by egsmi on Friday September 04, 2020 @07:54PM
(#24380130)
One can also use the techniques demonstrated your reversing the ALU article. :)
https://www.righto.com/2020/08/reverse-engineering-8086s.htm...
Re:The HP Nanoprocessor: a high-speed processor that can't e...
by recursive on Friday September 04, 2020 @07:38PM
(#24380029)
Interesting 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.
Re:The HP Nanoprocessor: a high-speed processor that can't e...
by echlebek on Friday September 04, 2020 @04:55PM
(#24378792)
Here's some background on how things like that work:
Re:The HP Nanoprocessor: a high-speed processor that can't e...
by 082349872349872 on Saturday September 05, 2020 @01:05AM
(#24381521)
or, as with sed, lookup tables
https://en.wikipedia.org/wiki/IBM_1620#Transferred_to_San_Jo...
And, of course, for better or worse, "add two numbers without using the + operator" is one of those silly LeetCode trivia questions software engineers occasionally get quizzed on.