assembler86 6

assembler86 6



192


7. Wybrane techniki programowania

to wydzielony fragment pamięci operacyjnej (rys. 7.6) od adresu 00000H do maksimum 003FFH (1 KB). Ponieważ pełny adres logiczny (offset i segment) zajmuje 4 bajty, jest możliwych 256 różnych typów przerwań, którym są przypisane różne procedury obsługi. Odszukanie właściwego adresu procedury obsługi sprowadza się do pomnożenia przez 4 liczby określającej typ przerwania. Przerwanie NMI jest przypisane do typu 2. Wektor przerwań musi być zainicjowany, tzn. programowo załadowany odpowiednimi adresami. W mikrokomputerach klasy IBM PC/XT z mikroprocesorem 8086 przyjęto następujące standardowe przyporządkowanie przerwań zewnętrznych NMI - błąd parzystości pamięci operacyjnej,

INTR- przerwanie ze sterownika 8259A, w którym standardowo wejście przerywające 0 jest przyłączone do zegara, wejście 1 natomiast do klawiatury. Pozostałe sześć wejść umożliwia rozbudowę systemu przerwań.

Warunki generowania wewnętrznych przerwań procesora

Rozkaz INT n -przy czym n oznacza typ przerwania - powoduje wykonanie skoku do odpowiedniego podprogramu obsługi przerwania zgodnie z wektorem przerwań. Przy pracy pod kontrolą systemu operacyjnego MS-DOS rozkaz ten jest wykorzystywany do wywoływania podprogramów systemowych (zob. rozdz. 9).

Rozkaz INTO wytwarza typ 4 przerwania po wystąpieniu przepełnienia (zob. p. 5.2.6).    *

Jeżeli przy realizacji rozkazu DFV lub IDIV wystąpił błąd, to procesor generuje przerwanie (typ 0).

Jeżeli znacznik TF = 1, to procesor po wykonaniu każdego rozkazu generuje przerwanie (typ 1), co pozwala na krokową pracę procesora wykorzystywaną głównie przy’ testowaniu programów.

Priorytety poszczególnych źródeł przerwań przedstawiono w tabl. 7.1. Skok do podprogramu obsługi przerwania powoduje automatyczne załadowanie na stos: rejestru znaczników, rejestrów CS i IP oraz wyzerowanie znaczników TF i IF.

Tablica 7.1. Priorytety głównych źródeł przerwań

p

Źródło przerwania

Priorytet

DIV. IDIV, INT n. INTO

Najwyższy

NMI

INTR

Praca krokowa

Najniższy

Podprogram obsługi przerwania nie może być przerwany przez inne masko-walne przerwanie. Jeżeli jest to dopuszczalne lub wymagane, to znacznik 1F musi być ponownie ustawiony rozkazem STI. Przerwanie niemaskowalne NMI oraz przerwania wewnętrzne nie są blokowane i mogą przerwać dowolny podprogram. Podprogramy obsługi przerwań muszą być zakończone rozkazem IRET umożliwiającym powrót do przerwanego podprogramu oraz odtworzenie rejestrów CS, IP i znaczników. Przykładowa struktura programu z uwzględnieniem obsługi przerwań

WEKTOR PRZERWAŃ SEGMENT AT 0

; inicjacja adresu podprogramu obsługi dla NMI (typ 2)

7.2. Przerwania sprzętowe i programowe

powered by

Mi si9o 1


ORG 2*4 DD PODPRNMI

; inicjacja adresu podprogramu obsługi dla przerwania INTR typ 4

ORG 4*4

DD PODPR PRZEP

; inicjacja adresu podprogramu obsługi dla przerwania INTR typ 32 ; (pierwsze przerwanie użytkownika)

ORG 32*4 DD PODPR P 32

WEKTORPRZERWAN    ENDS

STOS    SEGMENT STACK

• • •

STOS    ENDS

DANE    SEGMENT

DANE

PROGRAMGLOWNY


PROGRAMGLOWNY PODPR PRZERWAŃ PODPR NMI


ENDS

SEGMENT

; główny program, w ogólnym ...    ; przypadku realizowany w pętli

ENDS SEGMENT PROC FAR

PODPR NMI ENDP PODPR PRZEP


• ••

HLT

PROC FAR


; bez powrotu do programu ; przerwanego


IRET

PODPR PRZEP    ENDP

PODPR P 32    PROC FAR

IRET

PODPR p 32    ENDP

PODPR PRZERWAŃ    ENDS

W przedstawionym przykładzie założono, że wszystkie segmenty będą tłuma-£ż°ne przez asembler równocześnie, ponadto wektor przerwań został zdefiniowany ja-0 odrębny segment ładowany bezpośrednio do właściwego obszaru pamięci operacyjni rozpoczynający się od adresu 00000H.

Jeżeli podprogramy obsługi przerwań mają funkcjonować pod kontrolą syste-[n operacyjnego MS-DOS, to przedstawiona metoda inicjacji wektora przerwań nie Jesl możliwa. Adresy podprogramów obsługi przerwań muszą być załadowane Programowo do obszaru wektora przerwań. Przykładowa struktura programu WEKTOR NMI EOU WORD PTR ES:2*4 WEKTOR P 4 EOU WORD PTR ES:4*4


Wyszukiwarka

Podobne podstrony:
assembler?86? 2 184 7. Wybrane techniki programowania Z tworzeniem podprogramów zasadniczo są zwią
assembler?86? 3 186 7. Wybrane techniki programowania Przykład • •• ASSUME SS:STOS MOV AX, STOS MO
assembler?86? 5 190 7. Wybrane techniki programowania Offsc! Stos SP, nowe BP + 2 +4 + 6 
assembler?86? 7 194 7. Wybrane techniki programowania WEKTOR_P 32 EQU STOS WORD PTR ES:32*4 SEGMEN
assembler?86? 8 196 7. Wybrane techniki programowania TAB 3 TAB 4 Rys. 7.8. W przypadku, gdy tabli
assembler?86? 9 198 7. Wybrane techniki programowania CLD PI:    MOVSB ; modyfikacj
assembler?86? 4 188 7. Wybrane techniki programowania Opisany mechanizm jest bardzo skutecznym nar
assembler?86? 6 9. Wykorzystanie procedur systemowych w programach użytkowych Mikrokomputery klasy
ALG#2 232 Rozdział 9. Zaawansowane techniki programowania I 9 pozornie całą żądaną pamięć, faktyczni
kolejno powyżej kody zostaną umieszczone w pamięci CG-RAM od adresu 0x00, to zdefiniowany znak będzi
2009 06 23 0936 29 Narzędzie badawcze - to przedmiot służący do realizacji wybranej techniki badań M
Pcm ua»n«r. pod^cjMk <to rouki atoswinALGORYTMY ANYCHSTRUKTURYI TECHNIKI PROGRAMOWANIA WYDANIE
img117 (14) Elementarne wprowadzenie do techniki sieci neuronowych 111 podczas pracy programu,
zdj6 Rozwój technik programowania obiektowe - gdzie położono nacisk na : •    tworze
Ewolucja technik programowania■Zestawienie cech wybranych języków programowania Language
Ewolucja technik programowania■Programowanie obiektowe: główne zadanie to modelowanie „obiektów”

więcej podobnych podstron