Designing an instruction set for a homebrew computer
since this is more like feedback: let's have a wiki.

You need some way to store the current (or next) PC. That and a JMP can form a CALL; then you need JUMP (contents of address where you stored it) to RETURN. Stack is a convenient way to handle call/return and a lot of other stuff, but quite a big change to your architecture.
why do you have fused load+arithmetic ops? Wouldn't a &quot;SUBtract value of register B from register A&quot; be significantly more handy? Otherwise you'd first have to STA to do arithmetic.
OUT is a fun operation, but honestly, I'd go the arm route and simply
use reserved addresses for that. That is, of course, unless you need all your address space because it's really not that large.
integer-to-seven-segment conversion will be pretty complicated using these instructions, if you can't waste a lot of memory space on a lookup table. So, maybe have an instruction to convert a register value to the appropriate output.
Instead of the two A-&gt;B and B-&gt;A copy instructions, I'd go with one copy, and a swap instruction.
You have an operation to load 4 bits of an immediate value into an 8 bit registers. How do you set the other bits? Maybe you want a &quot;swap high and low nibble&quot; instruction, or even more versatile, a shift?