assembler€86ˆ 8

assembler€86ˆ 8



136


5. Rozkazy mikroprocesorów 8086/8088

Rozkaz realizuje przesuniÄ™cie cykliczne w prawo przez znacznik przeniesienia CF, lewego argumentu o liczbÄ™ bitów okreÅ›lonÄ… prawym argumentem (rys. 5.2). Jeżeli przesuniÄ™cie jest o 1 bit, to jedynka jest wprost prawym argumentem. Przy przesuniÄ™ciu o wiÄ™kszÄ… liczbÄ™ bitów, prawym argumentem jest rejestr CL, który wczeÅ›niej należy zaÅ‚adować liczbÄ… okreÅ›lajÄ…cÄ… o ile bitów należy przesunąć lewy argument. W czasie przesuwania najmniej znaczÄ…cy bit argumentu jest wprowadzany do znacznika Ä™F, pozostaÅ‚e bity argumentu sÄ… przesuwane o 1 bit w prawo, a poprzedni stan znacznika CF (zapamiÄ™tany w pomocniczym przerzutniku) jest przepisywany na miejsce najbardziej znaczÄ…cego bitu argumentu. Tak wiÄ™c bity argumentu wraz ze znacznikiem CF krążą w kółko. Jeżeli przy przesuwaniu o 1 bit w prawo nie zmieni siÄ™ zawartość bitu znaku, to znacznik OF jest zerowany. W przeciwnym wypadku znacznik OF przyjmuje wartość L Możliwe opcje

Przesunięcie cykliczne w prawo z przeniesieniem o 1 bit

Operacja: {w = 0 => n: = 7 else n: = 15}; next argument < n:0 > oCF♦-CFoargument < n:0 >; next (argument < n > * argument < n-1 > => OF«-l else OF«-0)

Argumentem jest rejestr

1101 OOOw    11011 reg

Liczba taktów - 2.    ^

Przykłady

RCR AL, 1    -*

RCR CX, 1    j

RCR SI, 1

RCR DH, 1    +

Argument jest w pamięci

1101 OOOw    modOllr/m addrlow    addrhigh

Liczba taktów - 15 4- takty do obliczenia adresu efektywnego.

Przykłady

RCR ZMIENNAJBP], 1    1

RCR BAJT, 1

RCR ZMIENNA[S1], 1

RCR BYTE PTR [DI], 1    â™¦

Przesunięcie cykliczne w prawo z przeniesieniem o więcej niż 1 bit Operacja: {w = 0 => n: = 7 else n: = 15}; next CL*0 =>

=> argumment < n:0 > oCF«-CFoargumcnt < n:0 >; next CL«-CL-1; next IP«— IP-d)

{d - długość rozkazu w bajtach (2/4)}

5.4. Rozkazy przetwarzające łańcuchy (rozkazy blokowe)

powered by

Mi si^)l


Argumentem jest rejestr 1101 001 w 11011 reg Liczba taktów -8 + 4 takty na każdy bit.

Przykłady

MOV CL, 9 RCR AX, CL RCR DI, CL MOV CL, 3 RCR AH, CL

RCR DL, CL    â™¦

Argument jest w pamięci

1101 OOlw    modOllr/m addrlow    addr high

Liczba taktów' - 20 + takty do obliczenia adresu efektywnego + 4 takty na każdy bil

Przykłady

MOV CL, 9

RCR ZMIENNA[BP], CL RCR BAJT, CL MOV CL, 3 RCR ZMIENNA, CL

RCR WORD PTR [SI], CL    â™¦

5.4. Rozkazy przetwarzające łańcuchy (rozkazy blokowe)

Mikroprocesory 8086/8088 majÄ… rozkazy umożliwiajÄ…ce dziaÅ‚ania w prosty sposób na Å‚aÅ„cuchach, tablicach czy blokach danych w pamiÄ™ci operacyjnej. Można je podzielić na dwie grupy

-    proste rozkazy realizujÄ…ce pojedynczÄ… operacjÄ™,

-    przedrostki deklarujÄ…ce powtórzenie rozkazu prostego.

Rozkazy te używają zawsze tych samych rejestrów do adresowania argumentów oraz zliczania powtórzeń (kroków)

DS:SI f- adres źródła danych,

ES:DI - adres wyniku (przeznaczenia),

CX - licznik powtórzeń.

Rozkaz z przedrostkiem, a więc wykonywany wielokrotnie, zostanie zakończony po wyzerowaniu licznika CX, lub po spełnieniu innych warunków związanych z ustawianiem znacznika ZF. W zależności od stanu znacznika kierunku DF, po jednokrotnym wykonaniu rozkazu stan rejestrów SI oraz DI jest zwiększany (DF = 0) lub zmniejszany (DF=1), co pozwala na automatyczne zaadresowanie następnego argu-


Wyszukiwarka

Podobne podstrony:
assembler?86? 8 % 5. Rozkazy> mikroprocesorów 8086/8088 Przykład LA HF NOT AH SAHF; znaczniki s
assembler?86? 8 156 5. Rozkazy mikroprocesorów 8086/8088 JNC (ang.jump if no carry ) skok względny
assembler?86? 0 5. Rozkazy mikroprocesorów 8086/80885.1. Informacje ogólne Mikroprocesory 8086 i 8
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? 7 114    5. Rozkazy mikroprocesorów 8086/8088 Mnożenie zawartoÅ›ci aku
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? 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],

więcej podobnych podstron