cpu 1001 instruction set 0 stop 1 mov ac = r1 2 add ac = ac + r1 3 put r1 = ac 4 mvi ac = n 5 eqz F = (ac == 0) 6 jt if(F != 0) pc = ads 7 dec r1 = r1 - 1 8 jmp pc = ads 9 shr ac = ac >> 1 10 sub ac = ac - r1 11 inc r1 = r1 + 1 12 eq F = (ac == r1) 13 ne F = (ac != r1) 14 lt F = (ac < r1) 15 le F = (ac <= r1) 16 gt F = (ac > r1) 17 ge F = (ac >= r1) 18 and ac = ac & r1 19 or ac = ac | r1 20 not ac = ~r1 21 xor ac = ac ^ r1 22 shl ac = ac << 1 23 jf if(F == 0) pc = ads 24 ld ac = DS[ads] 25 st DS[ads] = ac 26 ldd ac = DS[r1] 27 std DS[r1] = ac 28 call next pc -> stack; pc = ads 29 ret stack -> pc