assembler€86ˆ 0

assembler€86ˆ 0



5. Rozkazy mikroprocesorów 8086/8088

5.1. Informacje ogólne

Mikroprocesory 8086 i 8088 majÄ… dokÅ‚adnie ten sam zbiór rozkazów, traktowany obecnie jako typowy dla wczeÅ›niejszych procesorów 8-bilowych (np. 8080/8085). Zbiór ten jest uzupeÅ‚niony o nowe rozkazy, z których należaÅ‚oby wymienić    â– 

-    mnożenie i dzielenie liczb dwójkowych oraz w kodzie BCD ze znakiem i bez znaku,

-    przesyÅ‚anie i porównywanie Å‚aÅ„cuchów' (tablic)    o wielkoÅ›ci do 64 KB,    1

-    testowanie bitów,    j

-    programowe generowanie przerwaÅ„,    I

-    instrukcje uÅ‚atwiajÄ…ce programowanie systemów    wieloprocesorowych.    1

Rozkazy’ mikroprocesorów 8086/8088 w jednolity sposób traktujÄ… różne typ argumentów. Prawie każdy rozkaz może przetwarzać zarówno bajty, jak i sÅ‚owa. Rejestry, pamięć bÄ…dź argumenty bezpoÅ›rednie mogÄ… być specyfikowane w wiÄ™kszo rozkazów w jednakowy sposób. W szczególnoÅ›ci zmienne mogÄ… być dodawane, odejmowane, przesuwane, porównywane itd. bezpoÅ›rednio w pamiÄ™ci, bez uprzedniego pobierania ich do rejestrów. Pozwala to na znaczne zmniejszenie (w stosunku do mikroprocesorów 8080/8085) czasu pracy i dÅ‚ugoÅ›ci programu. Poszczególnym rozkazom maszynowym sÄ… przypisane nazwy mnemoniczne bÄ™dÄ…ce skróconym zapisem czynnoÅ›ci wykonywanej przez rozkaz. Ogółem jest dostÄ™pnych okoÅ‚o 100 mnemonic/nych (symbolicznych) kodów rozkazów (np. MOV - ang. move, LEA - ang. load effectwe ad-dress ), przy czym kodom symbolicznym jest przyporzÄ…dkowanych wiele różnych kodów dwójkowych, zależnych zazwyczaj od argumentów tych rozkazów. Na przykÅ‚ad istnieje aż 28 różnych rozkazów MOV; przeÅ›lij bajt z pamiÄ™ci do rejestru, zaÅ‚aduj bezpoÅ›rednio sÅ‚owo do rejestru itd. Istnieje ponad trzysta dwójkowych rozkazów mikroprocesorów 8086/8088. Ogólnie zbiór rozkazów można podzielić na

-    rozkazy transmisji danych,

-    rozkazy arytmetyczne i logiczne (w tym rozkazy przesunięć),

• rozkazy przetwarzajÄ…ce Å‚aÅ„cuchy (tablice),    m

-    rozkazy sterujÄ…ce skokami oraz wywoÅ‚ujÄ…ce podprogramy.

5. /. Informacje ogólne

powered by

Mi sfbl


rozkazy organizujące pętle,

rozkazy dotyczące przerwań,

inne rozkazy, sterujÄ…ce pracÄ… procesora.

c i i Format rozkazów

przykładową budowę rozkazów mikroprocesorów 8086/8088 przedstawiono na rys. 5.1. Długość rozkazu może wynieść 1...6 bajtów. Rozkaz może być bezargumentowy, posiadać jeden lub dwa argumenty. Tylko jeden z argumentów może być argumentem

0


a)

b)


Bajt 1 Bajt 2 Bajt 3 Bajt 4 Bajt 5 Bajt 6

Bajt 1 Bajt 2


mod


Kod operacji


w


reg


r/m


Mniej znaczÄ…cy bajt adresu lub


Bardziej znaczÄ…cy bajt adresu lub


Mniej znaczÄ…cy bajt danej


Bardziej znaczÄ…cy bajt danej


0


Kod


operacji


Rys. 5.1. Ogólna budowa rozkazu maszynowego mikroprocesorów 8086/8088: a) przykład formatu z krótkim kodem operacji, b) przykład formatu z długim kodem operacji

pobranym z pamięci operacyjnej. Dopuszczalne kombinacje argumentów przedstawiono w tabl. 5.1.

Tablicą 5.1. Dopuszczalne kombinacje argumentów

1 argument


2 argument


Uwagi


rejestr rejestr rejestr rejestr pamięć pamięć Pamięć ^2^*ć bezpoÅ›rednia


rejestr

pamięć

wartość bezpośrednia rejestr

wartość bezpośrednia


rozkaz bezargumentowy


Jeżeli ogólna postać dwuargumentowego rozkazu jest następująca

kodmnemoniczny argumentl, argument_2

le\ ^rZetAvarzan*e argumentów odbywa siÄ™ poczÄ…wszy od prawego argument u do naVC?° ar8liment_I> co oznacza, że w tym przypadku wynik operacji jest umieszczany miejscu lewego argumentu. Poszczególne pola rozkazu wyszczególnione na rys. 5.1 aJ3 nastÄ™pujÄ…ce znaczenie


Wyszukiwarka

Podobne podstrony:
assembler?86? 0 20 2. Mikroprocesory 8086/8088 Znacznik kierunku DF jest wykorzystywany przy wykon
assembler?86? 8 % 5. Rozkazy> mikroprocesorów 8086/8088 Przykład LA HF NOT AH SAHF; znaczniki s
assembler?86? 2 164    5. Rozkazy mikroprocesorów 80S6/8088 STD - ustawienie znaczn
assembler?86? 0 100 5. Rozkazy mikroprocesorów 8086/80X8 ADD SI, 0F0D2H ADD BL, 1   &nbs
assembler?86? 0 1 1 140 5. Rozkazy mikroprocesorów 8086/8088 MOVS CEL, ZRODLO MOV SI, OFFSET ZRODL
assembler?86? 0 160 5. Rozkazy mikroprocesorów 8086/8088 [TllOOOlO disp Liczba taktów -17 dla skok
assembler?86? 0 40 4. Język asemblerowy mikroprocesorów 8086/8088 W książce omówimy wersję MASM 4.
assembler?86? 4 48 4. Język asemblerowy mikroprocesorów 8086/8088 tępne segmenty będą łączone jak
assembler?86? 7 54 4. Język asemblerowy mikroprocesorów 8086/8088 kowych informacji czy skoki do (
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

więcej podobnych podstron