84
5. Rozkazy mikroprocesorów 8086/8088
Pośrednio przez rejestr bazowy i indeksowy z przemieszczeniem Dla argumentu z innego segmentu
W przypadku gdy adres przemieszczenia jest nieparzysty
Dla procesora 8086, przy argumentach 16-bitowych w pamięci
MOV DX, ZMIENNA(BP + SI) 11 lub 12 MOV CH, TABLICA[BX + DI]
MOV DX ES:ZMIENNA 2
MOV CH CS:TABLICA[BX)
4
4
5.13. Skróty i symbole stosowane w opisie rozkazów
W przedstawionym zbiorze wszystkich rozkazów procesorów 8086/8088 uwzględniono następujące dane
- objaśnienie mnemoniki rozkazu,
- formalny opis wykonywanej operacji (w notacji ISF), |
- słowny opis operacji wykonywanej przez rozkaz,
- dwójkowy kod rozkazu,
- czas wykonania rozkazu w taktach maszynowych dla mikroprocesora 8086 (tabl. 5.5),
- stan rejestru znaczników po wykonaniu rozkazu,
- przykłady użycia rozkazu.
W formalnym opisie rozkazów są używane następujące skróty i symbole seg - 16-bitowy adres początku segmentu, jfl
uff - offset, reg-rejestr,
regló - rejestr 16-bilowy, 1
memló - słowo (dwa kolejne bajty) w pamięci, r J
Sreg - rejestr segmentowy, 1
ea - adres efektywny, \
w - bit określający czy argument jest bajtem czy słowem, j
mod i - reszta z dzielenia przez i,
high - bardziej znaczący bajt słowa 16-bitowcgo, M
Iow - mniej znaczący bajt słowa 16-bitowcgo, data - dana bezpośrednia,
port addr - adres układu wejściowego lub wyjściowego,
disp - odległość w bajtach względem aktualnej wartości wskaźnika pozycji asemblera (wskaźnika rozkazów PC), 3
delta - wartość odejmowana lub dodawana od (do) licznika podczas powtarzania operacji,
accum - akumulator (AX, AL). j
Znaczniki
- znacznik nie zmieniany,
- znacznik ustawiany zgodnie z ogólnymi regułami (zob. p. 2.4) lub według opisu wykonywanej operacji,
- nieznany stan znacznika.
5.2. Rozkazy transmisji danych
Niektóre elementy składni notacji ISP użyte w formalnym opisie działań wykonywanych przez rozkazy
Wyrażenia warunkowe
wyrażeń ielogiczne => wyrażenie odpowiada algolowskiemu IF - THEN,
wyrażenielogiczne =» wyrażenie 1 else wyrażenie_2 odpowiada algolowskiemu IF - TH EN - ELSE.
Operatory
() - wyodrębnienie części wyrażeń i definicji lub oznaczenie kolejności działań,
; - znak oddzielający wyrażenie w ciągu wyrażeń realizowanych równolegle, next - ogranicznik oddzielający wyrażenia realizowane kolejno (sekwencyjnie), o - symbol połączenia (konkatenacji); ze względów technicznych w tekście książki zastosowano symbol o,
{} - modyfikator operacji określający typ danych lub typ operacji; odbiegający od powszechnie stosowanego w opisie; stosuje się go do wyrażenia pewnych warunków,
4- - operator przesłania,
, - znak oddzielajÄ…cy kolejne elementy listy zmiennych,
[] - nawiasy służące do deklaracji (specyfikacji) obszarów pamięci w sensie bajtów (słów),
< > - nawiasy służące do deklaracji (specyfikacji) numerów bitów rejestrów i obszarów w pamięci (bajtów lub słów),
: - rozdzielenie wartości zakresów zmian wskaźników.
instmkcja przypisania
x: = y- przyporządkowanie nazwiex wartości y.
W grupie rozkazów transmisji danych wyróżnia się
Rozkazy transmisji danych między rejestrami i pamięcią operacyjną MOV - przesyłanie bajtu lub słowa,
PtlSH - przesyłanie słowa na szczyt stosu,
- pobieranie słowa ze szczytu stosu,
XCHG - zamiana miejscami bajtów lub słów,
. pobieranie bajtu z tablicy.
ozkazy związane z układami wejścia-wyjścia
* wprowadzenie bajtu lub słowa z układu wejściowego,
T - wyprowadzenie bajtu lub słowa do układu wyjściowego.
R°zkazy ładowania adresów
Ln ~ za^ac^owan*e adresu efektywnego EA do rejestru,
^ * zładowanie adresu logicznego do wskazanego rejestru oraz do DS,