Změny

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

IDIV - celočíselné delení (se znaménkem)

Přidáno 2 190 bajtů, 9. 11. 2012, 22:22
Vytvorená stránka „;Instrukce : IDIV - celočíselné delení (se znaménkem) ;Časování : 17-28 (80286), 19-34 (80386) ;Popis : Instrukce IDIV provádí operaci celočíselného delen...“
;Instrukce
: IDIV - celočíselné delení (se znaménkem)

;Časování
: 17-28 (80286), 19-34 (80386)

;Popis
: Instrukce IDIV provádí operaci celočíselného delení se znaménkem. Jestlize je specifikován zdrojový operand o velikosti byte, je registr [[AX]] delen bytovým operandem: kvocient je uložen v [[AL]] a zbytek v [[AH]]. Zdrojový operand o velikosti slova deli [[DX]]:[[AX]] slovem. Vyšších 16 bitů delence je v registru [[DX]], kvocient je umísten v [[AX]] a zbytek v [[DX]]. Zbytek má stéjne znaménko jako delenec a je vždy menší jako delitel. Viz též poznámka pro 80386.


;Syntaxe
: IDIV source


;Ovlivňuje příznaky
: žádné


;Nedefinované příznaky
: [[SF]], [[AF]], [[OF]], [[PF]], [[CF]]


;Výjimky v privilegovaném módu
: Je-li delitel roven 0 nebo je-li zbytek príliš velký pro umístení do požadovaného registru ([[AX]] nebo [[AL]]), je generováno přerušení [[INT 0]]. Jestlize obsahuji [[DS]], [[CS]] či [[ES]] neplatné efektivní adresy 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 delitel 0 nebo je kvocient príliš velký a nevejde se do místa určení ([[AL]] nebo [[AX]]), je generováno přerušení [[INT 0]]. Jestliže je slovní operand na offsetu OFFFFH, je generováno přerušení [[INT 13]].


;Poznámka pro 80386
: Velikost slova je 32 bitu. Delení ve dvojité přesnosti je prováděno s delitelem v registrovém páru [[EDX]]:[[EAX]]. Delitel je 32-bitová hodnota umístěna v registru/pameti. 32-bitový podíl (kvocient) je v [[EAX]] a 32-bitový zbytek v [[EDX]].


;Příklad:
Delení slova bytem:
MOV AX, NUMER_WRD
IDIV DIVSR_BTE

Delení slova slovem:
MOV AX, NUMER_WORD
CWD ;Konverze slova na dvouslovo
IDIV DIVSR_WRD

Delení dvouslova slovem:
MOV DX, NUMER_MSW
MOV AX, NUMER_LSW
IDIV DIVSR_WRD

Delení u 80386:
MOV EDX, MSB_NUMBER
MOV EAX, LSB_NUMBER
IDIV DIVISOR

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

Navigační menu