assembler€86ˆ 5

assembler€86ˆ 5



170


5. Rozkazy mikroprocesorów 8086/8088

Mikroprocesor 80286

W (rybie adresacji rzeczywistej mikroprocesor 80286 akceptuje wszystkie rozkazy procesora 80186. Zbiór rozkazów 80286 obejmuje również dalsze, nowe rozkazy zwiÄ…zane z pracÄ… w trybie adresacji wirtualnej. WiÄ™kszość z nich nie jest realizowalna w trybie adresacji rzeczywistej. Rozkazy inicjujÄ…ce pracÄ™ w trybie adresacji wirtualnej, muszÄ… być wykonane w trybie adresacji rzeczywistej (np. po wyzerowaniu mikroprocesora). Nowe rozkazy

ARPL - ustawienie z rejestru (pamięci) żądanego poziomu przywileju,

CTS - wyzerowanie znacznika przełączania zadań,

LAR - ładowanie z rejestru (pamięci) prawa dostępu (zob. rys. 3.4)

LGDT - Å‚adowanie rejestru GDTR (zob. rys. 3.2),

LIDT - Å‚adowanie rejestru IDTR (zob. rys. 3.2),

LLDT - Å‚adowanie rejestru LDTR (zob. rys. 3.2),

LMSW - ładowanie z rejestru (pamięci) rejestru stanu MSW (zob. rys. 3.3)

LSL - ładowanie długości (ang. limit) segmentu (zob. rys. 3.4),

LTR - ładowanie rejestru zadania TR z pamięci (zob. rys. 3.2),

SGDT - zapamiętanie w pamięci zawartości rejestru GDTR,

SIDT - zapamiętanie w pamięci zawartości rejestru IDTR,

SLDT - zapamiętanie w pamięci zawartości rejestru LDTR,

SMSW - zapamiętanie w pamięci zawartości rejestru stanu MSW,

STR - zapamiętanie w pamięci zawartości rejestru zadania TR,

VERR - sprawdzenie prawa odczytu,

VERW - sprawdzenie prawa zapisu.

SpoÅ›ród wymienionych powyżej rozkazów jedynie ARPL, LAR, LSL, VERR i VERW zmieniajÄ… jeden ze znaczników, a mianowicie znacznik zera ZF. W obu trybach adresowania sÄ… realizowalne rozkazy LGDT, SGDT, LIDT, SIDT, LMSW oraz SMSW. PozostaÅ‚e sÄ… dostÄ™pne jedynie w trybie adresacji wirtualnej. W zwiÄ…zku z mechanizmami zabezpieczajÄ…cymi tryb adresacji wirtualnej, (rozdz. 3.2), niektóre rozkazy zgodne z rozkazami procesorów 8086/8088 wykonujÄ… w procesorze 80286 pracujÄ…cym w tym trybie znacznie wiÄ™cej czynnoÅ›ci. PrzykÅ‚adowo wykonanie rozkazów JMP, GALL, RET, IRET jest zwiÄ…zane z koniecznoÅ›ciÄ… kontroli poziomów przywilejów programu wywoÅ‚ujÄ…cego i wywoÅ‚ywanego.

Ipowered by

Mi sio!

6. Makrojęzyk asemblera MASM

Makroinstrukcje umożliwiajÄ… wykonywanie pewnych dziaÅ‚aÅ„ na tekÅ›cie programu źródÅ‚owego w czasie jego tÅ‚umaczenia za pomocÄ… asemblera. W szczególnoÅ›ci umożliwiajÄ… zdefiniowanie nowej instrukcji, która w programie źródÅ‚owym bÄ™dzie generowaÅ‚a ciÄ…g rozkazów maszynowych, dyrektyw, komentarzy itp. (ogólnie wierszy programu). Definicje makroinstrukcji mogÄ… znajdować siÄ™ na poczÄ…tku moduÅ‚u programu, mogÄ… też być w czasie asemblacji doÅ‚Ä…czane za pomocÄ… dyrektywy 1NCLUDE (zob. p. 4.3.3). Można wymienić nastÄ™pujÄ…ce (dyskusyjne) zalety i wady stosowania makroinstrukcji w programie

Zalety

-    rozszerzenie możliwoÅ›ci jÄ™zyka,

-    zaoszczÄ™dzenie czasu przeznaczonego na pisanie programu,

-    wiÄ™ksza czytelność programu źródÅ‚owego,

-    mniejsza liczba bÅ‚Ä™dów (powtarzajÄ…cy siÄ™ ciÄ…g wierszy programu jest kodowany jednokrotnie),

-    możliwość modyfikowania postaci źródÅ‚owej i wyboru różnych wariantów (w przeciwieÅ„stwie do techniki stosowania podprogramów);

Wady

-    wydÅ‚użenie programu źródÅ‚owego (w przeciwieÅ„stwie do techniki stosowania podprogramów),

-    oddalenie siÄ™" od poziomu sprzÄ™tu (podobnie jak przy użyciu jÄ™zyków wysokiego poziomu),

‘ ograniczenie swobody w znajdowaniu interesujących rozwiązań programowych ze względu na logikę makroinstrukcji.

JÄ™zyk MASM dopuszcza nastÄ™pujÄ…ce rodzaje makroinstrukcji nie wymagajÄ…ce definiowania REPT/ĘNDM, 1RP/ENDM, IRPC/ENDM wymagajÄ…ce zdefiniowania MACRO/ENDM

Z makroinstrukcjami sÄ… zwiÄ…zane ponadto


Wyszukiwarka

Podobne podstrony:
assembler?86? 5 W 90    5. Rozkazy mikroprocesorów 8086/8088 PrzykÅ‚ady PUSH ZMIENNA
assembler?86? 5 130 5. Rozkazy mikroprocesorów 8086/8088 Przykłady SAR ZMIENNA, 1 SAR BAJT[BP +1],
assembler?86? 5 150 5. Rozkazy mikroprocesorów 8086/8088 RET (ang. return from procedurę) powrót z
assembler?86? 5 110 5. Rozkazy mikroprocesorów H0H6/H08S Przykład CMP ZMIENNA, AX CMP ZMIENNA[BX],
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? 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? 7 134 5. Rozkazy mikroprocesorów 8086/8088 Przykłady MOVCL, 11 ROR ZMIENNA[BP], CL

więcej podobnych podstron