Kurs programowania w asemblerze
Mapa pamięci
| Adres | Opis |
|---|---|
| 0000:0000 | Tablica wektorów przerwań. |
| 0040:0000 | Zmienne systemowe |
| xxxx:0000 | Część BIOS'u dostarczana ze zbioru IO.SYS. |
| xxxx:0000 | Procedury obsługi przerwań DOS'a |
| xxxx:0000 | Obszar zarezerwowany przez DOS: bufory, dane oraz instalowane procedury obsługi przerwań |
| xxxx:0000 | Rezydentna część procesora komend COMMAND.COM, około 4KB |
| xxxx:0000 | Programy typu TSR (rezydentne). Działanie takich programów składa się z trzech części:
|
| xxxx:0000 | Aktualnie wykonujący się program |
| xxxx:0000 | Przenośna część COMMAND.COM. Zawiera procesor poleceń, dzięki niej widzisz napis C:\ |
| A000:0000 | Pamięć obrazu karty EGA/VGA (64KB) |
| B000:0000 | Pamięć obrazu karty monochromatycznej, również karty Herkules (32KB) |
| B800:0000 | Pamięć obrazu CGA, również druga strona karty Herkules |
| C000:0000 do E000 | Obszar przeznaczony dla systemu BIOS karty graficznej VGA (32KB) |
| C800:0000 do E000 | Rozszerzenia BIOS'u, zawierające sterowniki dysku twardego, czy EGA-BIOS lub VGA-BIOS |
| E000:0000 do E000:FFFF | Część BIOS'u dotycząca komputerów klasy AT |
| F000:0000 do F000:FFFF | System BIOS (64KB) |
| F600:0000 | Interpreter BASIC'a |
| FE00:0000 do FFFF:FFFF | ROM-BIOS |
| Powyżej | Górna pamięć. |
Zmienne systemowe
| Adres | Rozmiar | Opis |
|---|---|---|
| 0:0400 | 2 | Bazowy adres portu pierwszego złącza RS-232 (COM1) |
| 0:0402 | 2 | Port COM2 |
| 0:0404 | 2 | Port COM3 |
| 0:0406 | 2 | Port COM4 |
| 0:0408 | 2 | Bazowy adres pierwszego złącza drukarki (LPT1) |
| 0:040A | 2 | Port LPT2 |
| 0:040C | 2 | Port LPT3 |
| 0:040E | 2 | Port LPT4 |
| 0:0410 | 2 | Lista sprzętu w komputerze. Taka sama lista jest zwracana po przerwaniu 11H w AX Bit 0: 0=Brak stacji dysków Bit 1: 8087 koprocesor Bity 2-3: Pamięć RAN płyty głównej 01=16K, 10=32K, 11=64K+ Bity 4-5: Aktywny tryb graficzny 00=można EGA (nie zawsze wiarygodne); 01=40-kolumn; 10=80 kolumn 11=TTL monochromatyczny Bity 6-7: Całkowita liczba napędów; 00=1; 01-2; 10=3; 11=4; Bit 8: Obecność DMA Bity 9-11: Porty RS-232; 000=brak; 001=1 itd. Bit 12: Obecność karty GAME Bit 13: Drukarka szeregowa Bity 14-15: Zainstalowane drukarki; 00=brak; 01=1; itd. |
| 0:0412 | 1 | Błędy klawiatury |
| 0:0413 | 2 | Całkowity rozmiar pamięci w KB (Taki jak po przerwaniu 12H w AX) |
| 0:0415 | 2 | Zmienna przejściowo używana przy testowaniu błędów sprzętowych |
| 0:0417 | 1 | Zmienna określająca stan klawiatury. Bit 0: Prawy Shift wciśnięty Bit 1: Lewy Shift wciśnięty Bit 2: Ctrl wciśnięty (lewy lub prawy) Bit 3: Alt wciśnięty (lewy lub prawy) Bit 4: ScrollLock zapalony Bit 5: NumLock zapalony Bit 6: CapsLock zapalony Bit 7: Stan Insert |
| 0:0418 | 1 | Zmienna określająca stan klawiatury. 0: Lewy Ctrl wciśnięty 1: Lewy Alt wciśnięty 2: SysReq wciśnięty 3: Stan przerwy 4: ScrollLock wciśnięty 5: NumLock wciśnięty 6: CapsLock wciśnięty 7: Insert wciśnięty |
| 0:0419 | 1 | Bieżąca wartość pseudo klawisza alt+klawisz numeryczny. Normalnie 0. |
| 0:041A | 2 | Adres głowy bufora klawiatury |
| 0:041C | 2 | Adres ogona bufora klawiatury |
| 0:041E | 20H | Bufor klawiatury. Znajdują się tutaj 20H zapamiętanych klawiszy |
| 0:043E | 1 | Napęd dyskowy potrzebuje rekalibracji (bit 0=A, bit 1=B, itd.) |
| 0:043F | 1 | Silnik stacji dysków pracuje (bit 0=!, bit 1=N itd.) |
| 0:0440 | 1 | Czas do wyłączenia zasilania. Przerwanie 8H wyłącza motor gdy =0 |
| 0:0441 | 1 | Kod błędu dyskowego. Taki sam jak ostatnio zwrócony przez przerwanie 13H |
| 0:0442 | 7 | Obszar informacji dla kontrolera napędu dysku |
| 0:0449 | 1 | Aktywny tryb graficzny |
| 0:044A | 2 | Szerokość ekranu w kolumnach |
| 0:044C | 2 | Wielkość pamięci obrazu (KB) |
| 0:044E | 2 | Offset pamięci w stosunku do początku pamięci obrazu |
| 0:0450 | 10H | Położenie kursora (8 par: kolumna, wiersz) |
| 0:0460 | 2 | Kształt kursora (początek, koniec) |
| 0:0462 | 1 | Numer aktywnej strony graficznej |
| 0:0463 | 2 | Adres portu kontrolera graficznego 6845 (Patrz porty CGA) |
| 0:0465 | 1 | Aktualna zawartość w kontrolerze 6845 CRT_MODE |
| 0:0466 | 1 | Aktualna zawartość w kontrolerze 6845 CRT_PALETTE |
| 0:0467 | 5 | Obszar danych magnetofonu lub POST (patrz Start Systemu) |
| 0:046C | 4 | Liczba taktów zegara (taktuje co 55ms od startu) |
| 0:0470 | 1 | Wskaźnik nadmiaru zegara (po 25 godzinach nieprzerwanej pracy) |
| 0:0471 | 1 | Wskaźnik Ctrl+Break (gdy wciśnięty to ustawiony zostaje bit 7) |
| 0:0472 | 2 | Wartość 1234H w tych komórkach oznacza, że trwa właśnie restart komputera po wciśnięciu Ctrl+Alt+Del) |
| 0:0474 | 4 | Obszar kontrolny dyskietki lub dysku twardego AT Liczba dysków twardych AT |
| 0:0478 | 4 | Wartości czasowe złącza równoległego drukarki |
| 0:047C | 4 | Wartości czasowe RS-232 |
| 0:0480 | 2 | Offset początku bufora klawiatury AT (zwykle 1EH) |
| 0:0482 | 2 | Offset końca bufora klawiatury AT (zwykle 3EH) |
| 0:0484 | 1 | Ilość wierszy w jednym znaku karty CGA |
| 0:0485 | 2 | Ilość bajtów na 1 znak w karcie CGA |
| 0:0487 | 1 | Różne informacje karty EGA, odpowiednie pola oznaczają: 0: 1=kursor włączony 1: 1=wyświetlanie monochromatyczne 2: 1=dozwolony zapis do pamięci ekranu 3: 1=EGA nie jest aktywna 5-6: pamięć RAM karty EGA (00=64K, 01=128K, 10=192K, 11=246K) 7: 1=ekran nie jest włączony |
| 0:0488 | 1 | Różne informacje karty EGA 0-3: Stan przełączników na karcie EGA 4-7: Bity cech |
| 0:0490 | 1 | AT Bity stanu dysku dla napędu 0 |
| 0:0491 | 1 | AT Bity stanu dysku dla napędu 1 |
| 0:0492 | 1 | AT Wskaźnik trwania operacji dyskowych dla napędu 0 |
| 0:0493 | 1 | AT Wskaźnik trwania operacji dyskowych dla napędu 1 |
| 0:0494 | 1 | AT Numer aktualnego cylindra dla napędu 0 |
| 0:0495 | 1 | AT Numer aktualnego cylindra dla napędu 1 |
| 0:0496 | 1 | Klawiatura AT bit 4=1 (10H) jeśli jest podłączona klawiatura 101 klawiszowa |
| 0:0497 | 1 | Znacznik zamkniętej kluczem klawiatury AT (patrz przerwanie 15H funkcja 86H) |
| 0:0498 | 4 | AT Adres wskaźnika opóźnienia użytkownika |
| 0:049C | 4 | AT Mikrosekundy do końca czekania |
| 0:04A0 | 1 | AT Wskaźnik opóźnienia użytkownika 1=zajęte; 80H=zgłoszenie; 0=zatwierdzone |
| 0:04A1 | 7 | Zarezerwowane dla karty sieciowych AT |
| 0:04A8 | 4 | Adres CGA(VGA) SAVE_PTR. Wskazuje na adres danych karty CGA |
| 0:04F0 | 10H | Obszar komunikacji między różnymi programami |
| 0:0500 | 1 | Status drukowania ekranu |
| 0:0504 | 1 | Status Fantom dysku. W systemach o jednej stacji dysków odwołania do napędu B: są obsługiwane przez tą stację |
| 0:0510 | 11H | Używane przez interpreter BASICA |
| 0:0530 | 3 | Używane przez instrukcję MODE |
| F000:FFF0 | 5 | FAR JMP do rozpoczęcia POST |
| F000:FFF5 | 8 | Data wyprodukowania ROM BIOS w ASCI |
| F000:FFFC | 2 | Nieużywane |
| F000:FFFE | 1 | Typ komputera IBM (nie zawsze wiarygodne) FFH=PC FEH=XT lub przenośny PC FDH=PC FCH=AT FBH=XT z 640 KB na płycie głównej FAH=PS/2 Model 30 F9H=Klon PC F8=PS/2 Model 80 |
- Memory - Mapa pamięci komputera 21.9KB
Autor: Karol Wierzchołowski, opracowano: 12.01.2002 r. Wszelkie prawa zastrzeżone.
