Index Pedagogika Pilch Tadeusz Zasady Badań Pedagogicznych(txt) Asimov Isaac Science Fiction (Opowiadania).Txt MODELNR2.TXT DROGA (2).TXT WIEZAJ~1.TXT MOCPODSW.TXT ANDRZE~1 (2).TXT MALYBCHL.TXT DZIKUS.TXT PRINCE80.TXT |
[ Pobierz caÅ‚ość w formacie PDF ] .Po powrocie z funkcji rejestry zostan¹ automatycznie odtworzone.Przyk³adem funkcji obs³uguj¹cej przerywanie mo¿e byæ piszczek()pos³uguj¹cy siê wbudowanym g³oœniczkiem i portem:# define us unsigned# include# includevoid InstalujWektor(void interrupt (*adres)(), int numer_wekt);void interrupt Piszczek(us bp, us di, us si, us ds, us es,us ax, us bx, us cx, us dx);void main(){.}.Po zadeklarowaniu prototypów dwu funkcji:Piszczek() - nasz handler przerywania;InstalujWektor() - funkcja instaluj¹ca nasz handler;mo¿emy przyst¹piæ do zdefiniowania oby funkcji.Pos³u¿ymy siêzmiennyminowe_bity, stare_bity.Wydawanie dŸwiêku polega na w³¹czaniu iwy³¹czaniu g³oœniczka.Pusta pêtla pos³u¿y nam do zw³oki wczasie.void interrupt Piszczek(us bp, us di, us si, us ds, us es,us ax, us bx, us cx, us dx){char nowe_bity, stare_bity, i;int n;unsigned char licznik = ax >> 8;stare_bity = inportb(0x61);for(nowe_bity = stare_bity, n = 0; n 0.31 EDI w tym (DI = 0.15)BP -> 0.31 EBP w tym (BP = 0.15)SP -> 0.31 ESP w tym (SP = 0.15)IP -> 0.31 EIP w tym (IP = 0.15)FLAGS -> 0.31 EFLAGS w tym (FLAGS = 0.15)Wszystkie "stare" po³Ã³wki dostêpne pod star¹ nazw¹.Rejestry segmentowe pozosta³y 16 bitowe, ale jest ich o dwawiêcej: CS, DS, ES, SS oraz nowe FS i GS.Nowe 32 bitowe rejestry dzia³aj¹ wed³ug tych samych zasad:.386.MOV EAX, 1 ;zapisz 1 do rejestru EAXSUB EBX, EBX ;wyzeruj rejestr EBXADD EBX, EAX ;dodaj (EAX)+(EBX) --> EBXDostêp do starszej po³owy rejestru mo¿na uzyskaæ np.poprzezprzesuwanie (rotation):.386.MOV AX, Liczba_16_bitowaROR EDX, 16MOV AX, DXROR EDX, 16.itp.W assemblerze mo¿esz stosowaæ wobec procesora 386 noweinstrukcje (testowania nie istniej¹cych wczeœniej bitów,przenoszenia krótkich liczb do 32 bitowych rejestrów zuwzglêdnieniem zaku i uzupe³nieniem zerami itp.):BSF, BSR, BTR, BTS, LFS, LGS, MOVZX, SETxx,BT, BTC, CDQ, CWDE, LSS, MOVSX, SHLD i SHRD.Przy pomocji instrukcji MOV w trybie uprzywilejowanym (tzw.most-privileged level 0 - tylko w trybie.386P) mo¿esz dodatkowouzyskaæ dostêp do specjalnych rejestrów mikroprocesora 80386.CR0, CR2, CR3,DR0, DR1, DR2, DR3, DR6, DR7TR6, TR7Wystêpuje tu typ danych - FWORD - 48 bitów (6 bajtów).Obokznanych dyrektyw DB i DW pojawia siê zatem nowa DF, a opróczznajomych wskaŸników BYTE PTR, WORD PTR pojawia siê nowy FWORDPTR.Przy pomocy dyrektywy.387 mo¿esz skorzystaæ z koprocesora.Jak wynika z zestawu dodatkowych insrukcji:FCOS, FSINCOS, FUCOMP, FPREM1, FUCOM, FUCOMPP, FSINwarto dysponowaæ koprocesorem, jeœli czêsto korzystasz zgrafiki, animacji i funkcji trygonometrycznych (kompilacji nieprzyspieszy to niestety ani o 10% - tam odbywaj¹ siê operacjesta³oprzecinkowe).Zwróæ uwagê, ¿e procesory 386 i wczeœniejsze wymaga³y instalacjidodatkowego uk³adu 387 zawieraj¹cego koprocesorzmiennoprzecinkowy.Procesory 486 jeœli maj¹ rozszerzenie DX -zawieraj¹ ju¿ koprocesor wewn¹trz uk³adu scalonego.________________________________________________________________ [ Pobierz caÅ‚ość w formacie PDF ] |
||||
Wszelkie Prawa Zastrzeżone! Kawa była słaba i bez smaku. Nie miała treści, a jedynie formę. Design by SZABLONY.maniak.pl. | |||||