assembler€86ˆ 9

assembler€86ˆ 9



138 5. Rozkazy mikroprocesorów 8086/8088

mentu do przetwarzania. W zależnoÅ›ci od kierunku przetwarzania rejestry SI i Dl zawierajÄ… zatem offset lub (offset + dÅ‚ugość argumentu - 1) odpowiednich argumentów. Jeżeli sÄ… przetwarzane bajty, to rejestry SI i DI sÄ… zmniejszane lub zwiÄ™kszane o 1, a jeżeli sÄ… przetwarzane sÅ‚owa, to o 2. Na rysunku 5.3 przedstawiono schemat blokowy realizacji rozkazów i przedrostków. W punkcie 7.2 szerzej przedstawiono technikÄ™ ich stosowania. Poniżej zostanÄ… omówione nastÄ™pujÄ…ce rozkazy

Rys. 5.3. Przebieg realizacji operacji łańcuchowych

Rozkazy realizujÄ…ce pojedyncze operacje

MOVS - przepisanie w pamięci elementu łańcucha (tablicy, bloku),

LODS - załadowanie elementu łańcucha (tablicy, bloku) do akumulatora,

STOS - zapamiętanie w pamięci elementu łańcucha (tablicy^ bloku) znajdującego się w akumulatorze,

SCAS - porównanie elementu łańcucha (tablicy, bloku) z zawartością akumulatora, CMPS - porównanie elementów dwóch łańcuchów (tablic, bloków).

Przedrostki deklarujące powtórzenia

REP - powtarzanie pojedynczej operacji, aż do wyzerowania rejestru CX,

REPZ/REPE - powtarzanie pojedynczej operacji, aż do wyzerowania rejestru CX lub wyzerowania znacznika zera (ZF = 0),

REPNZ/REPNE - powtarzanie pojedynczej operacji, aż do wyzerowania rejestru CX lub ustawienia znacznika zera (ZF =1).

5.4.1. Operacje pojedyncze

MOVS/MOVSB/MOVSW (ang. move byte or word string)

przepisanie w pamięci baj tu lub słowa łańcucha (tablicy, blokuj__

Operacja: {w = 0 => (delta: = 1 i argumentem jest bajt)

else delta: = 2 i argumentem jest słowo}; next M[ES:DI] <- M[DS:SI];

next DF = 0 => (SI <-SI + delta; DI «-DI + delta) else (SI «-SI-delta; DI «-DI-delta)

Znaczniki:bez zmian

Rozkaz MOVS powoduje przepisanie bajtu lub sÅ‚owa w pamiÄ™ci ze źródÅ‚owego Å‚aÅ„cucha (tablicy, bloku) adresowanego rejestrami ES:SI do Å‚aÅ„cucha adresowanego rejestrami DS:DI. Po przesÅ‚aniu rejestry SI i DI sÄ… zwiÄ™kszane (DF = 0) lub zmniejszane (DF = 1) o jeden (w = 0) lub o dwa (w=l). Użycie mnemoniki MOVS powoduje, że asembler okreÅ›la na podstawie atrybutów argumentów, czy ma być przesyÅ‚any bajt, czy sÅ‚owo, i na tej podstawie generuje wÅ‚aÅ›ciwy kod wynikowy. Alternatywnie można użyć mnemoniki MOVSB lub MOVSW. Ta mnemonika okreÅ›la wprost czy majÄ… być przesyÅ‚ane bajty (MOVSB), czy sÅ‚owa (MOVSW). Jest to istotne gdy asembler nie jest w stanie okreÅ›lić atrybutu Å‚aÅ„cucha, np. przy przepisywaniu fragmentu programu.

1010 OlOw

Liczba taktów - 18 dla operacji jednokrotnej lub 9 taktów podstawowych + 17 dla każdego powtórzenia. *

Przykłady

LDS SI, ZRODLO[BX]

LES DI, CEL CLD; DF«-0


Wyszukiwarka

Podobne podstrony:
assembler?86? 9 98 5. Rozkazy mikroprocesorów 8086/8088 Pojęcie rozpakowanego i normalnego kodu BC
assembler?86? 9 118 5. Rozkazy mikroprocesorów 8086/8088 MOV AL, 8FH CBW ???? ???? 1111 1111 1000
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? 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? 7 114    5. Rozkazy mikroprocesorów 8086/8088 Mnożenie zawartoÅ›ci aku
assembler?86? 1 122 5. Rozkazy mikroprocesorów 8086/8088 OR DX, STALA_EQU OR CL, 8   &nb
assembler?86? 2 124 5. Rozkazy mikroprocesorów 8086/8088 Rozkaz realizuje logiczne mnożenie odpowi
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? 7 134 5. Rozkazy mikroprocesorów 8086/8088 Przykłady MOVCL, 11 ROR ZMIENNA[BP], CL
assembler?86? 8 136 5. Rozkazy mikroprocesorów 8086/8088 Rozkaz realizuje przesunięcie cykliczne w
assembler?86? 0 1 1 140 5. Rozkazy mikroprocesorów 8086/8088 MOVS CEL, ZRODLO MOV SI, OFFSET ZRODL

więcej podobnych podstron