assembler€86ˆ 7

assembler€86ˆ 7



114    5. Rozkazy mikroprocesorów 8086/8088

Mnożenie zawartości akumulatora przez rejestr (ze znakiem)

1111 Oliw 11101 reg

Liczba taktów dla w = O - 80...98, dla w = 1 -128...154.    i

Przykłady

MOV AL, ZMIENNABAJT IMUL BL    ; wynik w AX

MOV AX, ZMIENNA SLOWO MUL BX    ; wynik w DXoAX

• ••

MOV AL, ZMIENNA BAJT

CBW    ; konwersja bajt-* sÅ‚owo

IMUL DI    ; wynik w DXoAX    Ä…

Mnożenie zawartości akumulatora przez argument w pamięci (ze znakiem)

1111 Oliw mod 101 r/m addrlow    addrhigh

Liczba taktów dla w = 0 - 86...104 -t* takty do obliczenia adresu efektywnego, dla w= 1 -134...160 + takty do obliczenia adresu efektywnego.    *3

Przykład

MOV AL, ZMIENNABAJTl

IMUL ZMIENNA_BAJT_2[SI] ; wynik w AX    Â«

AAM (ang. ASCII adjust for multiply )    i

poprawka po mnożeniu w rozpakowanym kodzie BCD

Operacja: AH AL/10; AL AL mod 10 Znaczniki: OF DFIF TF SF ZF AF PF CF

?---xx?x?

Rozkaz wprowadza poprawkÄ™ wyniku po mnożeniu dwójkowym dwóch cyfr (rozpakowany kod BCD). Wówczas otrzymuje siÄ™ dwucyfrowÄ… liczbÄ™ (rozpakowany kod BCD), umieszczonÄ… w AH i AL. Obliczenie poprawki: zawartość rejestru AL jest dzielona przez 10, caÅ‚kowita część wyniku jest zapamiÄ™tana w AH, reszta zaÅ› w AL.

11010100 0000 1010

Liczba taktów -83.    4

Przykład

MOV CL, 7 MOV AL, 5

•

>

•

y

AH

9999 9999

5

AL

0000 0101

MUL CL

•

y #

0 0000 0000

35

00100011

AAM

•

y

3 0000 0011

5

00000101

powered by

5.3. Rozkazy operacji arytmetycznych i logicznych


Mi sfbl

5J.4. Dzielenie

DIV (ang. divide byte or word unsigned)

dzielenie argumentów bez znaku_    _ _______

Operacja: {w = 0 =* (dzielna: = AX; dzielnik: = arg_bajt; max: = OFFH) else (dzielna: = DXoAX; dzielnik: = argslowo; max: =0FFFFH)}; next (dzielna/dzicl-nik > max) =» INT 0 else (w = 0 => AL«-AX/dziclnik; AH«-AX mod dzielnik else AX«-DXoAX/dzielnik; DX«-DXoAX mod dzielnik)

Znaczniki: OF DFIF TF SF ZF AF PF CF

9    ...    9    9    9    9    9

• •    â€¢    â€¢    â€¢    â€¢

Tablica 5.9. Argumenty rozkazów dzielenia

Dzielna

Dzielnik

Iloraz

Reszta

AX (16 bitów)

Reg8 lub mcm8

AL (8 bitów)

AH (8 bitów)

DXbAX (32 bity)

Rcgló lub memló

AX (16 bitów)

DX (16 bitów)

Rozkaz realizuje dzielenie argumentów bez znaku. Możliwe kombinacje argumentów przedstawiono w tabl. 5.9. Jeżeli wynik dzielenia przekracza odpowiednio OFFH lub OFFFFH, co wystÄ™puje np. przy dzieleniu przez zero, to jest generowane przerwanie INT 0, a iloraz i reszta nie sÄ… zdefiniowane. Możliwe opcje

Dzielenie zawartości akumulatora przez rejestr

1111 Oliw 11110 reg

Liczba taktów dla w = 0 - 80...90, dla w = 1 -144...162.

Przykłady

MOV DX, STARSZA CZESC MOV AX, MLODSZACZESC

DIV CX    ; iloraz w AX, reszta w DX

• • •

M()V AL, ZMIENNA BAJT ; dzielenie bajtu przez MOV AH, 0    ; bajt

DIV BL    ; iloraz w AL, reszta w AH    +

Dzielenie zawartości akumulatora przez argument w pamięci

1111 Oliw modllOr/m addrlow    addrhigh

Liczba taktów dla w = 0 - 8Ó...96 + takty do obliczenia adresu efektywnego,dla w = 1 -150...168 + takty do obliczenia adresu efektywnego.

Przykłady

MOV DX, 0    ; dzielenie sÅ‚owa przez sÅ‚owo

MOV AX, ZMIENNA

♦


DIV WORD PTR [SI + BX] ; iloraz w AX, reszta w DX


Wyszukiwarka

Podobne podstrony:
assembler?86? 7 134 5. Rozkazy mikroprocesorów 8086/8088 Przykłady MOVCL, 11 ROR ZMIENNA[BP], CL
assembler?86? 7 94 5. Rozkazy mikroprocesorów 8086/8088 OUT DX, AX MOV DX, 7645 OUT DX, AL  &
assembler?86? 2 124 5. Rozkazy mikroprocesorów 8086/8088 Rozkaz realizuje logiczne mnożenie odpowi
assembler?86? 1 82 5. Rozkazy mikroprocesorów 8086/8088 kod rozkazu (ang. opcode ) - definiuje ope
assembler?86? 2 84 5. Rozkazy mikroprocesorów 8086/8088 Pośrednio przez rejestr bazowy i indeksowy
assembler?86? 3 86 5. Rozkazy mikroprocesorów 8086/8088 LES - załadowanie adresu logicznego do wsk
assembler?86? 4 88 5. Rozkazy mikroprocesorów 8086/8088 MOV ZMIENNAfSI], ES MOV X[BP + DI + 1], SS
assembler?86? 5 W 90    5. Rozkazy mikroprocesorów 8086/8088 PrzykÅ‚ady PUSH ZMIENNA
assembler?86? 6 92    5. Rozkazy mikroprocesorów 8086/8088 Zamiana miejscami zawart
assembler?86? 9 98 5. Rozkazy mikroprocesorów 8086/8088 Pojęcie rozpakowanego i normalnego kodu BC
assembler?86? 2 104 5. Rozkazy mikroprocesorów 8086/8088 Przykłady 104 5. Rozkazy mikroprocesorów
assembler?86? 3 106 5. Rozkazy1 mikroprocesorów 8086/8088 SBB (ang. subtract byle or word with bor
assembler?86? 4 108 5. Rozkazy mikroprocesorów 8086/8088 PrzykÅ‚ady DEC SI DEC AX    
assembler?86? 9 118 5. Rozkazy mikroprocesorów 8086/8088 MOV AL, 8FH CBW ???? ???? 1111 1111 1000
assembler?86? 1 122 5. Rozkazy mikroprocesorów 8086/8088 OR DX, STALA_EQU OR CL, 8   &nb
assembler?86? 4 128 5. Rozkazy mikroprocesorów 8086/8088 Przesunięcie logiczne w prawo o 1 bit Ope
assembler?86? 5 130 5. Rozkazy mikroprocesorów 8086/8088 Przykłady SAR ZMIENNA, 1 SAR BAJT[BP +1],
assembler?86? 8 136 5. Rozkazy mikroprocesorów 8086/8088 Rozkaz realizuje przesunięcie cykliczne w
assembler?86? 9 138 5. Rozkazy mikroprocesorów 8086/8088 mentu do przetwarzania. W zależności od k

więcej podobnych podstron