Asembler wykład 20-11-2000, Assembler - wykład


Assembler - wykład

20-11-2000

Lista rozkazów mikroprocesora 8088 - C.D.

  1. Rozkazy operujące na łańcuchach:

MOVS - przesłanie łańcuchów

CMPS - porównanie łańcuchów

SCAS - wyszukiwanie słowa w łańcuchu

LODS - ładuj akumulator z łańcucha

STOS - zapamiętaj akumulator w łańcuchu

  1. Rozkazy sterujące wykonaniem programu:

CALL - wywołanie podprogramu

RET - powrót z podprogramu

JMP - skok bezwarunkowy

JZ/JNZ - skoki warunkowe

LOOP - iteracja

LOOPNE - iteracja warunkowa

INT - przerwanie

IRET - powrót po INT

  1. Rozkazy sterujące procesora:

CLC/STC - zerowanie/ustawianie znaczników

HLT - zatrzymanie procesora

TRYBY ADRESOWANIA DANYCH

Na rysunku 1 pokazano pewną liczbę instrukcji, z których każda wybiera pewne słowo danych i przesyła do rejestru AX. Instrukcje te ilustrują różne tryby adresowania mikroprocesora 8088.

LP

Przykład rozkazu

Tryb adresowania słowa źródłowego

Działanie

1.

mov ax, bx

Rejestrowy

0x01 graphic

2.

mov ax, 5

Natychmiastowy

0x01 graphic

3.

mov ax, LICZBA

Bezpośredni

0x01 graphic

4.

mov ax, (bx)

Pośredni

0x01 graphic

5.

mov ax, (bx+5)

Względny bazowy /baza + przesunięcie/

0x01 graphic

6.

mov ax, (bx+si+5)

Względny bazowy indeksowy /baza+indeks+przesunięcie/

0x01 graphic

rys. 1 Przykłady trybów adresowania

Pozostałe tryby adresowania są bardziej pożyteczne, ponieważ dopuszczają pośrednie adresowanie pamięci.

Dowolny z rejestrów: BX, BP, SI lub DI może być użyty w tych pośrednich trybach adresacji.

UWAGA:

Z wyjątkiem trybu natychmiastowego, każdy z przytoczonych trybów adresowania danych może być zastosowany dla operandów przeznaczenia w instrukcjach typu przesłania danych arytmetycznych i logicznych. Tak więc, na przykład, instrukcja:

ADD [BX], DX

będzie oznaczać dodanie zawartości rejestru DX do wartości spod adresu zawartego wewnątrz rejestru BX i umieszczenie wyniku ponownie w tej samej komórce pamięci.

Dla wszystkich przytoczonych przykładów, gdy tryb adresowania określa operand w pamięci, procesor zakłada, że jest to w segmencie danych i wybiera rejestr DS. dla obliczenia adresu fizycznego.

Jedynym wyjątkiem jest przypadek, gdy rejestr BP jest używany jako rejestr bazowy. W tym przypadku segment stosu jest adresowany poprzez rejestr SS. Załóżmy, że musimy dotrzeć do danych w różnych segmentach, jak to rozwiązać ?

Można to rozwiązać poprzez poprzedzenie adresu informacją o segmencie przekrywającym przez umieszczenie w instrukcji odpowiedniego kodu. Możemy poinstruować assembler, aby użył segmentu przekrywającego przez wyspecyfikowanie żądanego rejestru segmentowego po którym następuje dwukropek. Tak więc instrukcja:

MOV AX, ES:[BX]

spowoduje, że adres fizyczny będzie obliczany przy użyciu rejestru segmentowego ES i zawartości rejestru BX jako adresu przesunięcia. Słowo spod tego adresu pamięci, który jest oczywiście w segmencie dodatkowym będzie przenoszony do rejestru AX.

OPERACJE NA STOSIE

Instrukcje PUSH i POP są szczególnego rodzaju instrukcjami przesyłania danych, które implementują strukturę pamięci: „Last-In-First-Out” znaną jako STOS. Działanie tych indtrukcji pokazane jest na rysunku 2. Stos zawsze rezyduje w segmencie stosu, tak więc rejestr SS jest zawsze używany przy odwoływaniu się do stosu; nie jest możliwe jakiekolwiek przekrywanie tego segmentu. Rejestr wskaźnika stosu, SP jest używany we wszystkich operacjach na stosie jako adres pamięci.

Instrukcja PUSH zmniejsza zawartość SP o dwa, a następnie zapamiętuje wartość wskazanego operanda pod adresem pamięci określonym przez SP.

Instrukcja POP pobiera dane spod adresu pamięci określonego przez SP i umieszcza w swoim operandzie, a następnie zwiększa zawartość SP o dwa.

Zauważmy, że instrukcje PUSH i POP zawsze przesyłają słowo danych. Kontrastuje to z bnardziej ogólną instrukcją MOV, która może przesłać bajt lub słowo. Instrukcje PUSH i POP dostarczają mechanizmu, który może być używany do zachowania kilku różnych wartości danych, a następnie odtwarzaniu ich w odwrotnej kolejności do tej, w której były zachowywane.

TUTAJ MA BYĆ RYSUNEK .cdr KTÓRY JEST W OSOBNYM PLIKU (Rys 2 - operacje na stosie.cdr)

rys. 2

Pierwsza wartość, która będzie zdejmowana (w żargonie POP-owana) ze stosu będzie zawsze tą wartością, która była ostatnio składowana (PUSH-owana) na stosie. Opisane własności stosu czynią z niego idealne miejsce do tymczasowego przechowywania wartości danych, gdy nie chcemy wiązać z zadaniem żadnych konkretnych komórek pamięci. Załóżmy, na przykład, że piszemy program, w którym wykorzystujemy i zmieniamy zawartość rejestru CX. Jeżeli bieżąca wartość tego rejestru ma być wykorzystana w dalszych fragmentach programu, musimy zachować go na stosie, a następnie odtworzyć :

PUSH CX ; zachowanie zawartości CX na stosie

..................;

..................; fragment programu zmieniający wartość CX

..................;

POP CX ; odtworzenie wartości początkowej

Operandy instrukcji PUSH i POP mogą być adresowane przy pomocy dowolnego z opisanych trybów adresowania danych. Zawartość rejestru znaczników może być również PUSH-owana i POP-owana ze stosu.

Ze względu na charakter LIFO, stos może być wykorzystywany przez instrukcje współpracy z podprogramami CALL i RET-urn.



Wyszukiwarka

Podobne podstrony:
Asembler wykład 16-10-2000, Zaczynamy (pracę) z programem Turbo Assembler, Rozdział 1
Asembler wykład 30-10-2000, Assembler - wykład
2013 2014 ZARZADZANIE ZASOBAMI LUDZKIMI wyklad 7 20 11
Encyklopedia Prawa - wyklad 10 [20.11.2001], INNE KIERUNKI, prawo, ENCYKLOPEDIA PRAWA
BIOCHEMIA - VII - 13.11.2000, materiały medycyna SUM, biochemia, Kolokwium III, wykłady do II
Asembler wykład 09-10-2000
ochrona srodowiska, 20.11.04r. wykład, PRAWO OCHRONY ŚRODOWISKA - prof
OiS Wykład 8 (20 11 2014)
wykład nr 6 - 20.11, Psychologia KUL
KPC - Wykład (8), 20.11.2012
3. Bezp spol Wyklad z 06.11 i 20.11, Studia, Bezpieczeństwo Państwa, Bezpieczeństwo społeczne
Prawo konkurencji wykład 5 - 20.11, WPiA UŁ, Prawo ochrony konkurencji i konsumentów (T. Ławicki)
4 wyklad 20. 11. 2007, wykłady, organizacja i zarządzanie
Wyklad specjalizacyjny 20.11.09, Socjologia komunikacja społeczna UŚ
algebra wyklad 20 11 11 id 5733 Nieznany
wieszcz (prezentacja wykład 20 11 2011)
06 - 6.11.2000 witaminy dalej, materiały medycyna SUM, biochemia, Kolokwium III, wykłady do III kolo

więcej podobnych podstron