Změny

Skočit na navigaci Skočit na vyhledávání

CMP - porovnej dva operandy

Přidáno 1 621 bajtů, 4. 11. 2012, 23:01
Vytvorená stránka „;Instrukce : CMP - porovnej dva operandy ;Časování : 2-7 (80286), 2-6 (80386) ;Popis : Instrukce CMP odečte zdrojový operand od cílového a podle vzniklého ...“
;Instrukce
: CMP - porovnej dva operandy

;Časování
: 2-7 (80286), 2-6 (80386)

;Popis
: Instrukce CMP odečte zdrojový operand od cílového a podle vzniklého výsledku nastaví patričné příznaky. CMP nemení operandy. Zdrojový a cílový operand musí být oba stejného typu, s výjimkou použití CMP v bezprostredním režimu - zde může být bezprostrední operand o velikosti byte s rozšíreným znaménkovým bitem na celé slovo porovnán se slovem v paměti.


;Syntaxe
: CMP destination,source


;Ovlivňuje příznaky
: [[OF]], [[SF]], [[ZF]], [[AF]], [[PF]], [[CF]]


;Nedefinované příznaky
: žádné


;Výjimky v privilegovaném módu
: Jestliže registr [[CS]], [[DS]] nebo [[ES]] obsahují nepovolenou efektívni adresu operandu, je generována všeobecná výjimka privilegovaného módu. Jestliže [[SS]] obsahuje neplatnou adresu, je generována výjimka "chyba zásobniku".


;Výjimky v reálnem módu
: Je-li slovní operand umísten na offsetu 0FFFFH, je generováno přerušení [[INT 13]].


;Poznámka pro 80386
: šírka slova je 32 bitů


;Příklad
Bezprostrední operand srovnán s paměti:
CMP EXTMEM, 5CAFH

Bezprostrední operand srovnán s registrem:
CMP BL,5
CMP EAX, 0FFFF0000H (pro 80386)

Bezprostrední operand srovnán se stradačem:
CMP AL, 7

Registr srovnán s registrem:
CMP AX, BX
CMP EDX, EAX (jen pro 80386)

Registr srovnán s paměti:
CMP EXTMEM, DX

Paměť srovnána s registrem:
CMP CH, EXTMEM
CMP EBX, VALUE (jen pro 80386)


[[Category:Assembler]]
[[Category:Instrukce mikroprocesoru 80386]]

Navigační menu