Four simple instructions are sufficient to evaluate any Turing computable function using self-modifying programs: LOAD, STORE, GOTO, INCREment.
Further Reading:
Raul Rojas / Conditional Branching is Not Necessary for Universal Computation in von Neuman Computers, Journal of Universal Computer Science 2,11 (1996) 756-768
William F. Gilreath, Phillip A. Laplante / Computer Architecture: A Minimalist Perspective
[*11.65]
<>