**LDA - 0 - Load RAM data into accumulator****ADD - 1 - Add RAM data to accumulator****SUB - 2 - Subtract RAM data from accumulator****OUT - e - Load accumulator data into output register****HLT - f - Stop processing**

Working CPU with eight 8-bit registers and eleven commands. Instructions in the project, command list below.

Commands:

LDA r - loads value from register r into accumulator

STA r - stores accumulator value in register r

CLR r - clears register r

INC r - increments the value of register r and replaces into r

DEC r - decrements the value of register r and replaces into r

COM r - stores the complement of the value in register r in the accumulator

ADD r - adds value in register r to the accumulator

SUB r - subtracts accumulator value from value in register r, replaces into accumulator

AND r - stores value of (accumulator AND r) in accumulator

IOR r - stores value of (accumulator OR r) in accumulator [inclusive or]

XOR r - stores value of (accumulator XOR r) in accumulator [exclusive or]

*Eight 8-bit registers: r must be a value between 0 and 7 and refers to the address of the register, not its contents*

I decided to do this separately from the other one because it works nicely. Also it follows a set philosophy instead of "eh, I'll figure it out". This is NOT meant to be good, it's meant to work.