Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
back2root:archives:80x88 [2022/11/09 22:48] – [Tableau] frater | back2root:archives:80x88 [2022/11/09 23:26] (Version actuelle) – [IMUL] frater | ||
---|---|---|---|
Ligne 390: | Ligne 390: | ||
| repX cmpsw | 2 | 9+30n | 5+22n | 5+9n | 5+9n | 7+7n* | 9+4n NP | | | repX cmpsw | 2 | 9+30n | 5+22n | 5+9n | 5+9n | 7+7n* | 9+4n NP | | ||
| repX cmpsd | 2 | - | - | - | | repX cmpsd | 2 | - | - | - | ||
- | + | //repX = repe, repz, repne or repnz// | |
- | repX = repe, repz, repne or repnz | + | |
* : 5 if n = 0 | * : 5 if n = 0 | ||
Ligne 558: | Ligne 557: | ||
^ operands | ^ operands | ||
- | | r16, imm | + | | r16, imm |
| r32, imm | | r32, imm | ||
- | | r16, | + | | r16, |
| r32, | | r32, | ||
- | | r16, | + | | r16, |
| r32, | | r32, | ||
- | | r16, r16 | + | | r16, r16 |
| r32, r32 | | r32, r32 | ||
- | | r16, m16 | + | | r16, m16 |
| r32, m32 | | r32, m32 | ||
+ | |||
+ | < | ||
all forms: dest, src cycles for: | all forms: dest, src cycles for: | ||
| | ||
dest, src1, src2 | dest, src1, src2 | ||
+ | </ | ||
Example: | Example: | ||
Ligne 654: | Ligne 655: | ||
Call interrupt procedure if overflow | Call interrupt procedure if overflow | ||
- | | + | ^ operand |
- | 1 | + | | - | 1 | |
**Protected mode** | **Protected mode** | ||
- | | + | ^ operand |
- | | + | | - | |
- | + | ||
- | Task switch clocks not shown | + | |
+ | Task switch clocks not shown | ||
Example: | Example: | ||
Ligne 672: | Ligne 672: | ||
Invalidate data cache (486+) | Invalidate data cache (486+) | ||
- | | + | ^ operand |
- | | + | | |
Example: | Example: | ||
Ligne 682: | Ligne 682: | ||
Invalidate TLB entry (486+) | Invalidate TLB entry (486+) | ||
- | operands | + | ^ operand |
- | mem32 | + | | |
Example: | Example: | ||
Ligne 692: | Ligne 692: | ||
Return from interrupt | Return from interrupt | ||
- | | + | ^ operand |
- | 1 | + | | - | 1 | |
- | | + | Task switch clocks not shown |
Example: | Example: | ||
Ligne 704: | Ligne 704: | ||
32-bit return from interrupt (386+) | 32-bit return from interrupt (386+) | ||
- | | + | ^ operand |
- | 1 | + | | |
- | | + | Task switch clocks not shown |
Example: | Example: | ||
Ligne 716: | Ligne 716: | ||
Jump on condition code | Jump on condition code | ||
- | ^ operand | + | ^ operand |
- | | | + | | |
- | | near16 | + | | near16 |
- | + | //cycles for: no jump/jump// | |
- | cycles for: no jump/jump | + | |
- | + | ||
- | conditional jump instructions: | + | |
+ | **conditional jump instructions: | ||
^ ja | jump if above | ^ ja | jump if above | ||
^ jae | jump if above or equal ^ jnb | jump if not below | | ^ jae | jump if above or equal ^ jnb | jump if not below | | ||
Ligne 749: | Ligne 747: | ||
Jump if CX/ECX = 0 | Jump if CX/ECX = 0 | ||
- | operand | + | ^ |
- | | + | | |
- | | + | | |
- | + | //cycles for: no jump/jump// | |
- | cycles for: no jump/jump | + | |
Example: | Example: | ||
Ligne 762: | Ligne 759: | ||
Unconditional jump | Unconditional jump | ||
- | | + | ^ |
- | short 2 15 13 7+m | + | | |
- | near | + | | |
- | far | + | | |
- | r16 | + | | |
- | mem16 2+d(0,2) 18+EA | + | | |
- | mem32 2+d(4) | + | | |
- | + | | | |
- | r32 2 | + | | |
- | mem32 2+d(0, | + | | |
- | mem48 2+d(6) | + | | |
- | + | //cycles for jumps through call gates not shown// | |
- | cycles for jumps through call gates not shown | + | |
Example: | Example: | ||
Ligne 783: | Ligne 779: | ||
Load flags into AH | Load flags into AH | ||
- | | + | ^ operand |
- | | + | | |
Example: | Example: | ||
Ligne 790: | Ligne 786: | ||
- | === LAR === | + | === LAR [UPDATE] |
Load access rights byte (286+) | Load access rights byte (286+) | ||