On the 8080 there are many instructions with parallel forms. Three of these are CALL
, RET
and JP
, which all have conditional and immediate forms.
Note: I am using Z80 terminology because that is what I am familiar with.
In octal:
3p0
-RET <cond>
3p2
-JP <cond>
3p4
-CALL <cond>
where p
- <cond>
represents a flag/value combination:
0 - NZ (Z=0, Non Zero)
1 - Z (Z=1, Zero)
2 - NC (C=0, Non Carry)
3 - C (C=1, Carry)
4 - PO (V=0, Parity Odd / non oVerflow)
5 - PE (V=1, Parity Even / oVerflow)
6 - P (S=0, Sign Plus)
7 - M (S=1, Sign Minus)
The immediate forms are:
311
-RET
303
-JP
315
-CALL
All of the CALL
and JP
instructions take the next two bytes as the 16-bit address to go to, but that is irrelevant to my question.
The 8080 did not define instruction 313
, which was later used by the Z80 to expand the instruction set. Why did the designers of the 8080 not use 313
for JumP immediate, and leave 303
undefined instead?