assembler€86ˆ 1

assembler€86ˆ 1



162


5. Rozkazy mikroprocesorów 8086/8088

INT - skok do podprogramu obsługi przerwania,

INTO - skok do podprogramu obsługi przerwania, jeśli wystąpiło przepełnienie, IRET- powrót z podprogramu obsługi przerwania do miejsca jego wywołania.

INT (ang. interrupt)

skok do podprogramu obsługi przerwania

Operacja: SP—SP-2;nextM[SP + l]oM[SP]♦-znaczniki; next IF—0; TH—0; SP—SP-2; ncxt M[SP + l]oM[SP]—CS; next CS—((numer_przerwania)*4-f 2); SP—SP-2; ncxt M|SP+ l]oM[SPj—IP; next IP—(numer_przerwania)*4

Znaczniki: OF DFIF TF SF ZF AF PF CF

- - o o..... 4

Rozkaz powoduje wykonanie poÅ›redniego skoku, przez wektor przerwaÅ„ do podprogramu obsÅ‚ugi przerwania. W pewnym sensie rozkaz jest poÅ‚Ä…czeniem rozkazów PUSHF oraz CALL miÄ™dzysegmcntowego. Znaczniki oraz rejestry CS i IP zostajÄ… przesÅ‚ane do stosu, znaczniki IF i TF wyzerowane, a nastÄ™pnie do rejestrów CS i IP jest Å‚adowany odpowiedni wektor przerwania (czyli 32-bitowy adres logiczny podprogramu obsÅ‚ugi przerwania). Adres wektora przerwaÅ„ jest wyliczany jako (numer _ przerwania)*4. Numerprzerwania jest liczbÄ… caÅ‚kowitÄ… z zakresu 0...255.

Numer przerwania = 3 1100 1100 Liczba taktów - 52.

Przykład

INT 3 ; skok do obsÅ‚ugi przerwania nr 3    +

Numer przerwania * 3 11001101    numer_przerwania

Liczba taktów - 51.

Przykład

INT 21H ; skok do obsÅ‚ugi przerwania nr 21H    â™¦

INTO (ang. interrupt if overflow)

skok do podprogramu obsługi przerwania jeśli jest przepełnienie

Operacja: OF= l=>(SP-SP-2; next M[SP +1 joM[SP]-znaczniki;next IF-0; TH-0; SP-SP-2; next M[SP + l]oMISP)-CS; next CS-(10H +2); SP-SP-2; next M[SP + l]oM[SP]«-IP; next IP—10H)

Znaczniki: OF DF IF TF SF ZF AF PF CF

0 0

Jeżeli znacznik przepełnienia OF=l to rozkaz INTO jest równoważny rozkazowi INT 4 (adres wektora przerwania = 10H). Jeżeli OF = 0, to jest wykonywany kolejny rozkaz bez uaktywniania podprogramu obsługi przerwania.

11001110

Liczba taktów - 53 dla skoku wykonanego, 4 dla skoku nie wykonanego.

Przykład

ADD AX, BX

INTO    ; zniszczony bit znaku!    â–¼

IRET (ang. interrupt return)

powrót z podprogramu obsÅ‚ugi przerwania    ___

Operacja: IP-M[SP 4- l]o[SP]; next SP—SP + 2; CS-M[SP + l]o[SP]; next SP—SP + 2; znaczniki— M[SP + l]o[SP]; next SP—SP + 2;

Znaczniki: OF DF IF TF SF ZF AF PF CF

xxxxxxxxx    jhpjMgp

Rozkaz pozwala powrócić z podprogramu obsÅ‚ugi przerwania do miejsca wywoÅ‚ania podprogramu rozkazem INT (w przypadku przerwania programowego), lub do miejsca przerwania programu przez przerwanie sprzÄ™towe. Rozkaz powoduje zaÅ‚adowanie rejestrów IP, CS i rejestru znaczników wartoÅ›ciami pobranymi ze stosu. Wskaźnik stosu SP zostaje uaktualniony.

11001111

Liczba taktów - 24.

Przykład

OBSLUGAPRZERWAN    SEGMENT

•••

PRZERWANIE21H    LABEL FAR

• ••

IRET

OBSLUGAPRZERWAN    ENDS    â™¦

5.8. Rozkazy sterujÄ…ce procesorem

Rozkazy sterujące w programie różnymi dodatkowymi funkcjami procesora.

Rozkazy sterowania znacznikami CF, DF i IF

STC - ustawienie znacznika przeniesienia,

CLC - wyzerowanie znacznika przeniesienia,

CMC - zanegowanie znacznika przeniesienia,


Wyszukiwarka

Podobne podstrony:
assembler?86? 1 82 5. Rozkazy mikroprocesorów 8086/8088 kod rozkazu (ang. opcode ) - definiuje ope
assembler?86? 1 122 5. Rozkazy mikroprocesorów 8086/8088 OR DX, STALA_EQU OR CL, 8   &nb
assembler?86? 1 142 5. Rozkazy mikroprocesorów 8086/8088 MOV AL, STD ; DF«-1 SCASB JE STOP CM
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
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? 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? 5 130 5. Rozkazy mikroprocesorów 8086/8088 Przykłady SAR ZMIENNA, 1 SAR BAJT[BP +1],
assembler?86? 7 134 5. Rozkazy mikroprocesorów 8086/8088 Przykłady MOVCL, 11 ROR ZMIENNA[BP], CL
assembler?86? 8 136 5. Rozkazy mikroprocesorów 8086/8088 Rozkaz realizuje przesunięcie cykliczne w

więcej podobnych podstron