| CMPS |
| Сравняване на низове |
| Общи форми: |
CMPS source, dest CMPSB CMPSW CMPSD CMPSQ |
| Форма |
КОП |
CPUID |
I8086 |
I80386 |
I80286 |
| 16 |
32 |
64 |
Alt |
|
I8086 |
I80386 |
I80286 |
| CMPSB |
A6 |
A6 |
A6 |
F4 1C |
|
19 |
7 |
6 |
| CMPSW |
A7 |
66 F7 |
66 F7 |
F4 1D |
|
19 |
7 |
6 |
| CMPSD |
66 F7 |
A7 |
A7 |
F4 1E |
386+ |
|
7 |
6 |
| CMPSQ |
|
|
48 A7 |
F4 1F |
x86-64 |
|
|
|
| REPO CMPSB |
|
|
|
F4 F0 1C |
|
OF = 1 |
| REPO CMPSW |
|
|
|
F4 F0 1D |
|
| REPO CMPSD |
|
|
|
F4 F0 1E |
|
| REPO CMPSQ |
|
|
|
F4 F0 1F |
|
| REPNO CMPSB |
|
|
|
F4 F1 1C |
|
OF = 1 |
| REPNO CMPSW |
|
|
|
F4 F1 1D |
|
| REPNO CMPSD |
|
|
|
F4 F1 1E |
|
| REPNO CMPSQ |
|
|
|
F4 F1 1F |
|
| REPC CMPSB |
65 A6 |
|
|
F4 F2 1C |
V20 |
CF = 1 REPB CMPS, REPNAE CMPS |
| REPC CMPSW |
64 A7 |
|
|
F4 F2 1D |
V20 |
| REPC CMPSD |
|
|
|
F4 F2 1E |
|
| REPC CMPSQ |
|
|
|
F4 F2 1F |
|
| REPNC CMPSB |
64 A6 |
|
|
F4 F3 1C |
|
CF = 1 REPNB CMPS, REPNA CMPS |
| REPNC CMPSW |
64 A7 |
|
|
F4 F3 1D |
|
| REPNC CMPSD |
|
|
|
F4 F3 1E |
|
| REPNC CMPSQ |
|
|
|
F4 F3 1F |
|
| REPZ CMPSB |
F3 A6 |
F3 A6 |
F3 A6 |
F4 F4 1C |
|
ZF = 1 REPE CMPS |
| REPZ CMPSW |
F3 A7 |
F3 66 A7 |
F3 66 A7 |
F4 F4 1D |
|
| REPZ CMPSD |
F3 66 A7 |
F3 A7 |
F3 A7 |
F4 F4 1E |
|
| REPZ CMPSQ |
|
|
F3 48 A7 |
F4 F4 1F |
|
| REPNZ CMPSB |
F2 A6 |
F2 A6 |
F2 A6 |
F4 F5 1C |
|
ZF = 1 REPNE CMPS |
| REPNZ CMPSW |
F2 A7 |
F2 66 A7 |
F2 66 A7 |
F4 F5 1D |
|
| REPNZ CMPSD |
F2 66 A7 |
F2 A7 |
F2 A7 |
F4 F5 1E |
|
| REPNZ CMPSQ |
|
|
F2 48 A7 |
F4 F5 1F |
|
| REPBE CMPSB |
|
|
|
F4 F6 1C |
|
CF OR ZF = 1 REPNA CMPS |
| REPBE CMPSW |
|
|
|
F4 F6 1D |
|
| REPBE CMPSD |
|
|
|
F4 F6 1E |
|
| REPBE CMPSQ |
|
|
|
F4 F6 1F |
|
| REPA CMPSB |
|
|
|
F4 F7 1C |
|
CF OR ZF = 1 REPNBE CMPS |
| REPA CMPSW |
|
|
|
F4 F7 1D |
|
| REPA CMPSD |
|
|
|
F4 F7 1E |
|
| REPA CMPSQ |
|
|
|
F4 F7 1F |
|
| REPS CMPSB |
|
|
|
F4 F8 1C |
|
SF = 1 |
| REPS CMPSW |
|
|
|
F4 F8 1D |
|
| REPS CMPSD |
|
|
|
F4 F8 1E |
|
| REPS CMPSQ |
|
|
|
F4 F8 1F |
|
| REPNS CMPSB |
|
|
|
F4 F9 1C |
|
SF = 1 |
| REPNS CMPSW |
|
|
|
F4 F9 1D |
|
| REPNS CMPSD |
|
|
|
F4 F9 1E |
|
| REPNS CMPSQ |
|
|
|
F4 F9 1F |
|
| REPP CMPSB |
|
|
|
F4 FA 1C |
|
PF = 1 REPPE CMPS |
| REPP CMPSW |
|
|
|
F4 FA 1D |
|
| REPP CMPSD |
|
|
|
F4 FA 1E |
|
| REPP CMPSQ |
|
|
|
F4 FA 1F |
|
| REPNP CMPSB |
|
|
|
F4 FB 1C |
|
PF = 1 REPPO CMPS |
| REPNP CMPSW |
|
|
|
F4 FB 1D |
|
| REPNP CMPSD |
|
|
|
F4 FB 1E |
|
| REPNP CMPSQ |
|
|
|
F4 FB 1F |
|
| REPL CMPSB |
|
|
|
F4 FC 1C |
|
SF XOR OF = 1 REPNGE CMPS |
| REPL CMPSW |
|
|
|
F4 FC 1D |
|
| REPL CMPSD |
|
|
|
F4 FC 1E |
|
| REPL CMPSQ |
|
|
|
F4 FC 1F |
|
| REPGE CMPSB |
|
|
|
F4 FD 1C |
|
SF XOR OF = 1 REPNL CMPS |
| REPGE CMPSW |
|
|
|
F4 FD 1D |
|
| REPGE CMPSD |
|
|
|
F4 FD 1E |
|
| REPGE CMPSQ |
|
|
|
F4 FD 1F |
|
| REPLE CMPSB |
|
|
|
F4 FE 1C |
|
SF XOR OF OR ZF = 1 REPNG CMPS |
| REPLE CMPSW |
|
|
|
F4 FE 1D |
|
| REPLE CMPSD |
|
|
|
F4 FE 1E |
|
| REPLE CMPSQ |
|
|
|
F4 FE 1F |
|
| REPG CMPSB |
|
|
|
F4 FF 1C |
|
SF XOR OF OR ZF = 1 REPNLE CMPS |
| REPG CMPSW |
|
|
|
F4 FF 1D |
|
| REPG CMPSD |
|
|
|
F4 FF 1E |
|
| REPG CMPSQ |
|
|
|
F4 FF 1F |
|
|
| Забележка |
Операндът в асемблерското представяне на инструкцията не се кодира. Операндът може да се използва за да се промени използваният сегментен регистър (по подразбиране DS) за source. Сегментът, използван за dest е винаги ES. |
| Действие |
[eSI] – ES:[eDI]
CASE Инструкция OF
CMPSB: OperSize ← 1
CMPSW: OperSize ← 2
CMPSD: OperSize ← 4
CMPSQ: OperSize ← F
END CASE
IF DF = 0 THEN
eSI ← eSI + OperSize
eDI ← eDI + OperSize
ELSE
eSI ← eSI - OperSize
eDI ← eDI - OperSize
ENDIF
|
| Забележка: |
Сравнението се извършва в посока source — dest ([eSI] — ES:[eDI]). Това трябва да се има предвид, ако е от значение неравенство на операндите. |
| Флагове |
| PE |
VM |
NT |
IOPL |
OF |
DF |
IF |
TF |
SF |
ZF |
AF |
PF |
CF |
| |
|
|
|
A |
T |
|
|
A |
A |
A |
A |
A |
|
| CPU |
| 8086 |
186 |
V20 |
286 |
386 |
486 |
P |
P-P |
P-II |
MMX |
SSE |
3D! |
E64 |
| • |
• |
• |
• |
• |
• |
• |
• |
• |
|
|
|
• |
|
| Изключения | ОБЩИ |