assembler86 4

assembler86 4



168


5. Rozkazy mikroprocesorów 808618088

przy czym .ca* - 3 bity nie dekodowane przez 8086/8088.

Liczba taktów - 8 + takty do obliczenia adresu efektywnego.

Przykłady

ESC WORD PTR [BP+ 7]

• • •

KOD OPERACJ1 EOU 110010B    ; ‘adres* procesora

ESC KOD OPERACJI, ZMIENNA

LOCK (ang. lock bus during next instruction) zablokowanie dostępu do magistrali

Operacja:-    ..,,^1

Znaczniki: bez zmian

LOCK jc$t jednobajtowym przedrostkiem, którym może być poprzedzony każdy inny rozkaz. Powoduje zablokowanie dostępu innych procesorów do pamięci do czasu wykonania następnego rozkazu (w maksymalnym trybie pracy procesora -    zob.

pkt. 2.1).    >

11110000

Liczba taktów - 2.    -Ml

Przykład

; testowanie semafora dostępnego dla różnych procesorów TESTUJ: MOV AL, 1    ; 1 - semafor aktywny

LOCK XCHG SEMAFOR, AL    ; równocześnie ?

TEST AL, AL    ; ustaw znacznik ZF

JNZ JEST1    ; semafor uaktywniony jest

; przez inny procesor, czekaj!

; wykonaj operacje przy ; uaktywnionym semaforze

MOV SEMAFOR, 0    ; zwolnij semafor    ♦

NOP (ang. no operation ) nic nie rób

Operacja: -Znaczniki: bez zmian

Wykonanie rozkazu nie powoduje żadnej operacji. Pozwala, na przykład zarezerwować miejsce w programie na ewentualne przyszłe uzupełnienia programu o dodatkowe rozkazy.

10010000

Liczba taktów - 3.

powered by

5.9. Dodatkowe rozkazy procesorów 80186 i 80286


Mi si€?l

przykład

NOP ; zarezerwowane 3 bajty na ewentualne NOP ; uzupełnienie rozkazem maszynowym

NOP    +

5.9. Dodatkowe rozkazy procesorów 80186 i 80286

Listy rozkazów procesorów 80186 i 80286 obejmują wszystkie rozkazy procesorów 8086/8088, oraz szereg rozkazów dodatkowych. Czas wykonania rozkazów, które są wspólne dla wszystkich tych mikroprocesorów jest jednak różny. Wynika to nie tylko z różnych częstotliwości zegarów współpracujących z tymi procesorami, ale także z różnej liczby taktów potrzebnych do wykonania danego rozkazu. W tablicy 5.14 podano przykładowo liczbę taktów dla kilku wybranych rozkazów (r-adresacja rzeczy-wista, w-wirtualna).

Tablica 5.14. Liczba taktów dla wybranych rozkazów

Rozkaz

8086

8088

Liczba taktów dla procesora 80186 80188

80286r

80286w

ADD

60

60

15

15

14

14

LŁiA

2 + ca

6 + ea

6

6

3/4

3/4

LDS

16 + ea

24 + ea

18

26

7/8

21/22

MOV mem. AL

10

10

8

8

3

3

MOV mcm, AX

10/14

14

8

12

3

3

MUL rcg8

70-77

70-77

26-27

26-28

13

13

NOT mcm 16

16 -ł-ca

20 + ea

3

3

7/8

7/8

POP regló

8

12

10

14

5

5

POP Sreg

8

12

8

12

5

20

SUB AX. bezpośr

4/8

8

3/4

4

3

3

Dodatkowe rozkazy procesorów 80186/80188 i 80286

Mikroprocesory 80186/80188

Można wyróżnić całkowicie nowe rozkazy, oraz rozbudowane opcje rozkazów akceptowanych przez mikroprocesory 8086/8088

BOUND - kontrola przekroczenia wartości granicznej,

ENTER - wejście na wyższy poziom podprogramów,

IMUL - mnożenie ze znakiem przez wartość bezpośrednią, iNSB/INSW - wprowadzenie elementu łańcucha z układu wejściowego,

LEAY E - wyjście z wyższego poziomu podprogramów,

Dlii SB/OLTSW - wysłanie elementu łańcucha do układu wyjściowego,

POPA - pobranie ze stosu zawartości wszystkich rejestrów,

PLISH - przesłanie do stosu wartości bezpośredniej,

PtSHA - przesłanie do stosu zawartości wszystkich rejestrów,

R°L, ROR, RCL, RCR, SHL/SAL, SHR, SAR - rozkazy przesunięć; wielkość przecięcia (liczba bitów) jest określona w sposób bezpośredni w trzecim bajcie rozkazu.


Wyszukiwarka

Podobne podstrony:
assembler?86? 4 88 5. Rozkazy mikroprocesorów 8086/8088 MOV ZMIENNAfSI], ES MOV X[BP + DI + 1], SS
assembler?86? 1 102 5. Rozkazy mikroprocesorów 808618088 Operacja: argument <- argument + 1 Zna
assembler?86? 4 108 5. Rozkazy mikroprocesorów 8086/8088 Przykłady DEC SI DEC AX    
assembler?86? 6 112 5. Rozkazy mikroprocesorów 808618088 0010 ‘ 1111
assembler?86? 3 126    5. Rozkazy mikroprocesorów 808618088 SHL DX, 1 SHL DI, 1 Arg
assembler?86? 4 128 5. Rozkazy mikroprocesorów 8086/8088 Przesunięcie logiczne w prawo o 1 bit Ope
assembler?86? 4 148 5. Rozkazy mikroprocesorów 8086/8088 11111111    mod 101 r/m
assembler?86? 7 154 5. Rozkazy mikroprocesorów 808618088 Wskaźniki: bez zmian Jeżeli wskaźnik ZF =
assembler?86? 2 164    5. Rozkazy mikroprocesorów 80S6/8088 STD - ustawienie znaczn
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? 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? 0 100 5. Rozkazy mikroprocesorów 8086/80X8 ADD SI, 0F0D2H ADD BL, 1   &nbs
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

więcej podobnych podstron