I looked at the instruction set published there - http://gavwood.com/Paper.pdf
. Is it the final version? If the answer is positive, could anyone answer the following questions, plz:
1. Operation 0x09 (NEG):
What will be the result of NEG(all_bits_are_set_to_1)? Is NEG(NEG(X)) always equal to X?
2. Operation 0x20 (SHA3):
Is it Keccak-f with 24 rounds?
3. Operation 0x6C (PUSH13):
Why does one need to push such weird number of bytes? How r they going to be popped?
4. I didn't find bit-shifting operations. Am I supposed to use MUL/DIV or NOT/AND combo?
5. What width of address bus is supposed to be used in a processor that implements Ethereum instruction set in silicon? Not 256 "wires" for sure, even 64 would be an overkill. If it's a stack-based machine then one stack is not enough for comfortable programming without dancing salsa with SWAP and DUP all the time.