diff --git a/README.md b/README.md index ee3386e..a369363 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,179 @@ | x87 CW | x87 control word | Yes | -### additional resources +## Instructions + +### Conditional JUMP Instructions + +
Instruction | +Description | +signed-ness | +Flags | + short jump opcodes |
+ near jump opcodes |
+
---|---|---|---|---|---|
JO | +Jump if overflow | ++ | OF = 1 | +70 | +0F 80 |
JNO | +Jump if not overflow | ++ | OF = 0 | +71 | +0F 81 |
JS | +Jump if sign | ++ | SF = 1 | +78 | +0F 88 |
JNS | +Jump if not sign | ++ | SF = 0 | +79 | +0F 89 |
JE JZ |
+ Jump if equal
+ Jump if zero |
+ + | ZF = 1 | +74 | +0F 84 |
JNE
+ JNZ |
+ Jump if not equal
+ Jump if not zero |
+ + | ZF = 0 | +75 | +0F 85 |
JB
+ JNAE + JC |
+ Jump if below
+ Jump if not above or equal + Jump if carry |
+ unsigned | +CF = 1 | +72 | +0F 82 |
JNB
+ JAE + JNC |
+ Jump if not below
+ Jump if above or equal + Jump if not carry |
+ unsigned | +CF = 0 | +73 | +0F 83 |
JBE
+ JNA |
+ Jump if below or equal
+ Jump if not above |
+ unsigned | +CF = 1 or ZF = 1 | +76 | +0F 86 |
JA
+ JNBE |
+ Jump if above
+ Jump if not below or equal |
+ unsigned | +CF = 0 and ZF = 0 | +77 | +0F 87 |
JL
+ JNGE |
+
+ Jump if less
+ Jump if not greater or equal |
+ signed | +SF <> OF | +7C | +0F 8C |
JGE
+ JNL |
+ Jump if greater or equal
+ Jump if not less |
+ signed | +SF = OF | +7D | +0F 8D |
JLE
+ JNG |
+ Jump if less or equal
+ Jump if not greater |
+ signed | +ZF = 1 or SF <> OF | +7E | +0F 8E |
JG
+ JNLE |
+ Jump if greater
+ Jump if not less or equal |
+ signed | +ZF = 0 and SF = OF | +7F | +0F 8F |
JP
+ JPE |
+ Jump if parity
+ Jump if parity even |
+ + | PF = 1 | +7A | +0F 8A |
JNP
+ JPO |
+ Jump if not parity
+ Jump if parity odd |
+ + | PF = 0 | +7B | +0F 8B |
JCXZ
+ JECXZ |
+ Jump if %CX register is 0
+ Jump if %ECX register is 0 |
+ + | %CX = 0
+ %ECX = 0 |
+ E3 | +