Fix j*cxz encodings.
This commit is contained in:
@ -642,51 +642,52 @@ todo: far jumps
|
||||
|
||||
**Short jump encodings available in both 32-bit and 64-bit modes:**
|
||||
|
||||
| Opcode | Operands | Assembly | Description | Test |
|
||||
| ------- | -------- | ---------------- | ----------------------------------- | ---------------- |
|
||||
| `77 ??` | rel8 | `ja $+2+rel8` | Jump short if above. | CF=0 and ZF=0 |
|
||||
| `73 ??` | rel8 | `jae $+2+rel8` | Jump short if above or equal. | CF=0 |
|
||||
| `72 ??` | rel8 | `jb $+2+rel8` | Jump short if below (CF=1). | CF=1 |
|
||||
| `76 ??` | rel8 | `jbe $+2+rel8` | Jump short if below or equal. | CF=1 or ZF=1 |
|
||||
| `72 ??` | rel8 | `jc $+2+rel8` | Jump short if carry. | CF=1 |
|
||||
| `E3 ??` | rel8 | `jecxz $+2+rel8` | Jump short if ECX register is 0. | ECX=0 |
|
||||
| `74 ??` | rel8 | `je $+2+rel8` | Jump short if equal. | ZF=1 |
|
||||
| `7F ??` | rel8 | `jg $+2+rel8` | Jump short if greater. | ZF=0 and SF=OF |
|
||||
| `7D ??` | rel8 | `jge $+2+rel8` | Jump short if greater or equal. | SF=OF |
|
||||
| `7C ??` | rel8 | `jl $+2+rel8` | Jump short if less. | SF≠OF |
|
||||
| `7E ??` | rel8 | `jle $+2+rel8` | Jump short if less or equal. | ZF=1 or SF≠OF |
|
||||
| `76 ??` | rel8 | `jna $+2+rel8` | Jump short if not above. | CF=1 or ZF=1 |
|
||||
| `72 ??` | rel8 | `jnae $+2+rel8` | Jump short if not above or equal. | CF=1 |
|
||||
| `73 ??` | rel8 | `jnb $+2+rel8` | Jump short if not below. | CF=0 |
|
||||
| `77 ??` | rel8 | `jnbe $+2+rel8` | Jump short if not below or equal. | CF=0 and ZF=0 |
|
||||
| `73 ??` | rel8 | `jnc $+2+rel8` | Jump short if not carry. | CF=0 |
|
||||
| `75 ??` | rel8 | `jne $+2+rel8` | Jump short if not equal. | ZF=0 |
|
||||
| `7E ??` | rel8 | `jng $+2+rel8` | Jump short if not greater. | ZF=1 or SF≠OF |
|
||||
| `7C ??` | rel8 | `jnge $+2+rel8` | Jump short if not greater or equal. | SF≠OF |
|
||||
| `7D ??` | rel8 | `jnl $+2+rel8` | Jump short if not less. | SF=OF |
|
||||
| `7F ??` | rel8 | `jnle $+2+rel8` | Jump short if not less or equal. | ZF=0 and SF=OF |
|
||||
| `71 ??` | rel8 | `jno $+2+rel8` | Jump short if not overflow. | OF=0 |
|
||||
| `7B ??` | rel8 | `jnp $+2+rel8` | Jump short if not parity. | PF=0 |
|
||||
| `79 ??` | rel8 | `jns $+2+rel8` | Jump short if not sign. | SF=0 |
|
||||
| `75 ??` | rel8 | `jnz $+2+rel8` | Jump short if not zero. | ZF=0 |
|
||||
| `70 ??` | rel8 | `jo $+2+rel8` | Jump short if overflow. | OF=1 |
|
||||
| `7A ??` | rel8 | `jp $+2+rel8` | Jump short if parity. | PF=1 |
|
||||
| `7A ??` | rel8 | `jpe $+2+rel8` | Jump short if parity even. | PF=1 |
|
||||
| `7B ??` | rel8 | `jpo $+2+rel8` | Jump short if parity odd. | PF=0 |
|
||||
| `78 ??` | rel8 | `js $+2+rel8` | Jump short if sign. | SF=1 |
|
||||
| `74 ??` | rel8 | `jz $+2+rel8` | Jump short if zero. | ZF=1 |
|
||||
| Opcode | Operands | Assembly | Description | Test |
|
||||
| ------- | -------- | --------------- | ----------------------------------- | ---------------- |
|
||||
| `77 ??` | rel8 | `ja $+2+rel8` | Jump short if above. | CF=0 and ZF=0 |
|
||||
| `73 ??` | rel8 | `jae $+2+rel8` | Jump short if above or equal. | CF=0 |
|
||||
| `72 ??` | rel8 | `jb $+2+rel8` | Jump short if below (CF=1). | CF=1 |
|
||||
| `76 ??` | rel8 | `jbe $+2+rel8` | Jump short if below or equal. | CF=1 or ZF=1 |
|
||||
| `72 ??` | rel8 | `jc $+2+rel8` | Jump short if carry. | CF=1 |
|
||||
| `74 ??` | rel8 | `je $+2+rel8` | Jump short if equal. | ZF=1 |
|
||||
| `7F ??` | rel8 | `jg $+2+rel8` | Jump short if greater. | ZF=0 and SF=OF |
|
||||
| `7D ??` | rel8 | `jge $+2+rel8` | Jump short if greater or equal. | SF=OF |
|
||||
| `7C ??` | rel8 | `jl $+2+rel8` | Jump short if less. | SF≠OF |
|
||||
| `7E ??` | rel8 | `jle $+2+rel8` | Jump short if less or equal. | ZF=1 or SF≠OF |
|
||||
| `76 ??` | rel8 | `jna $+2+rel8` | Jump short if not above. | CF=1 or ZF=1 |
|
||||
| `72 ??` | rel8 | `jnae $+2+rel8` | Jump short if not above or equal. | CF=1 |
|
||||
| `73 ??` | rel8 | `jnb $+2+rel8` | Jump short if not below. | CF=0 |
|
||||
| `77 ??` | rel8 | `jnbe $+2+rel8` | Jump short if not below or equal. | CF=0 and ZF=0 |
|
||||
| `73 ??` | rel8 | `jnc $+2+rel8` | Jump short if not carry. | CF=0 |
|
||||
| `75 ??` | rel8 | `jne $+2+rel8` | Jump short if not equal. | ZF=0 |
|
||||
| `7E ??` | rel8 | `jng $+2+rel8` | Jump short if not greater. | ZF=1 or SF≠OF |
|
||||
| `7C ??` | rel8 | `jnge $+2+rel8` | Jump short if not greater or equal. | SF≠OF |
|
||||
| `7D ??` | rel8 | `jnl $+2+rel8` | Jump short if not less. | SF=OF |
|
||||
| `7F ??` | rel8 | `jnle $+2+rel8` | Jump short if not less or equal. | ZF=0 and SF=OF |
|
||||
| `71 ??` | rel8 | `jno $+2+rel8` | Jump short if not overflow. | OF=0 |
|
||||
| `7B ??` | rel8 | `jnp $+2+rel8` | Jump short if not parity. | PF=0 |
|
||||
| `79 ??` | rel8 | `jns $+2+rel8` | Jump short if not sign. | SF=0 |
|
||||
| `75 ??` | rel8 | `jnz $+2+rel8` | Jump short if not zero. | ZF=0 |
|
||||
| `70 ??` | rel8 | `jo $+2+rel8` | Jump short if overflow. | OF=1 |
|
||||
| `7A ??` | rel8 | `jp $+2+rel8` | Jump short if parity. | PF=1 |
|
||||
| `7A ??` | rel8 | `jpe $+2+rel8` | Jump short if parity even. | PF=1 |
|
||||
| `7B ??` | rel8 | `jpo $+2+rel8` | Jump short if parity odd. | PF=0 |
|
||||
| `78 ??` | rel8 | `js $+2+rel8` | Jump short if sign. | SF=1 |
|
||||
| `74 ??` | rel8 | `jz $+2+rel8` | Jump short if zero. | ZF=1 |
|
||||
|
||||
**Short jump encodings only available in 32-bit mode:**
|
||||
|
||||
| Opcode | Operands | Assembly | Description | Test |
|
||||
| ------- | -------- | --------------- | ------------------------------- | ---- |
|
||||
| `E3 cb` | rel8 | `jcxz $+2+rel8` | Jump short if CX register is 0. | CX=0 |
|
||||
| Opcode | Operands | Assembly | Description | Test |
|
||||
| ---------- | -------- | ---------------- | -------------------------------- | ----- |
|
||||
| `67 E3 ??` | rel8 | `jcxz $+3+rel8` | Jump short if CX register is 0. | CX=0 |
|
||||
| `E3 ??` | rel8 | `jecxz $+2+rel8` | Jump short if ECX register is 0. | ECX=0 |
|
||||
|
||||
**Short jump encodings only available in 64-bit mode:**
|
||||
|
||||
| Opcode | Operands | Assembly | Description | Test |
|
||||
| ------- | -------- | ---------------- | -------------------------------- | ----- |
|
||||
| `E3 cb` | rel8 | `jrcxz $+2+rel8` | Jump short if RCX register is 0. | RCX=0 |
|
||||
| Opcode | Operands | Assembly | Description | Test |
|
||||
| ---------- | -------- | ---------------- | -------------------------------- | ----- |
|
||||
| `67 E3 ??` | rel8 | `jecxz $+3+rel8` | Jump short if ECX register is 0. | ECX=0 |
|
||||
| `E3 ??` | rel8 | `jrcxz $+2+rel8` | Jump short if RCX register is 0. | RCX=0 |
|
||||
|
||||
**Near relative jump encodings available in both 32-bit and 64-bit modes:**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user