Obraz zawierający tekst, Czcionka, Grafika

Opis wygenerowany automatycznie 

Kierunek Informatyka

 

Instrukcja do ćwiczeń laboratoryjnych nr:

2

Nazwa przedmiotu:
Programowanie niskopoziomowe

Temat: Rejestry, rozkazy procesora oraz przerwania   

Tryb studiów: stacjonarny
i niestacjonarny

Czas trwanie ćw.

2x45 min

Autor materiałów: dr Marcin Skuba

 

I. Treści programowe

Struktura programu, edycja i kompilacja programu, rejestry procesora, rozkazy procesora 8086, przerwania DOS, BIOS,  


II. Cel ćwiczenia

Zapoznanie się z zasadą działania rozkazów procesora, pracy procesora, używania rozkazów procesora oraz wykorzystanie przerwań DOS-u.

 

III. Materiały dydaktyczne:

 

1.   Rejestry procesora:

Rejestr procesora to zespół układów elektronicznych, mogący przechowywać informacje (pamięć wewnętrzna procesora).
Rejestry są kilkubajtową pamięcią wbudowaną do procesora, do której procesor ma najszybszy dostęp.
Większość rejestrów może być dowolnie modyfikowana przez programistę tak, że mogą one pełnić rolę podobną do zmiennych w językach wysokiego poziomu.

Dla procesora 8086 używany rejestrów dwubajtowych ..X

 

 

Opis wybranych rejestrów procesora:

Rejestry ogólnego przeznaczenia:

Rejestry segmentowe.

Nazwa

ilość bitów

opis

CS

16

 segment kodu

DS

16

 segment danych

ES

16

 segment dodatkowy

SS

16

 segment stosu

 

2.   Rozkazy procesora:

Rozkazy procesora (instrukcje) to najprostsze, elementarne polecenia, które procesor potrafi zrozumieć i wykonać bezpośrednio na poziomie sprzętowym.

Większość instrukcji sprowadza się do trzech prostych czynności:

 

Cykl pracy procesora

Każdy rozkaz przechodzi przez trzy etapy:

  1. Pobranie (Fetch): Procesor bierze kolejną instrukcję z pamięci RAM.
  2. Dekodowanie (Decode): Układy elektroniczne sprawdzają, co to za polecenie (np. „Aha, mam dodać dwie liczby!”).
  3. Wykonanie (Execute): Procesor faktycznie przeprowadza operację.

 

Rozkaz MOV

MOV AX, 0FFFFh  ; oznacza przypisanie wartości 0FFFFh do rejestru AX (ax=0FFFFh)

MOV AL, 0FFh  ; oznacza przypisanie wartości 0FFh do prawej części rejestru AX czyli do AL.

MOV AX, BX    ; oznacza przypisanie wartości z rejestru BX do rejestru AX

 

 3. Przerwania


Przerwanie (ang. interrupt) to mechanizm, który pozwala procesorowi (CPU) tymczasowo przerwać wykonywanie bieżącego programu, aby zająć się innym, ważniejszym zadaniem. Po obsłużeniu przerwania procesor wraca do miejsca, w którym przerwał pracę, i kontynuuje wykonywanie programu.

Dzięki przerwaniom komputer może reagować na zdarzenia w czasie rzeczywistym, takie jak naciśnięcie klawisza czy zakończenie operacji wejścia/wyjścia.

Rodzaje przerwań

1. Przerwania sprzętowe (hardware interrupts)

Są generowane przez urządzenia zewnętrzne, takie jak:  klawiatura, mysz, dysk twardy, zegar systemowy.

Ich zadaniem jest poinformowanie procesora, że wystąpiło jakieś zdarzenie wymagające reakcji. Procesor przerywa aktualne zadanie i uruchamia odpowiednią procedurę obsługi przerwania.

2. Przerwania programowe (software interrupts)

Są wywoływane bezpośrednio przez program za pomocą specjalnej instrukcji (np. INT w asemblerze).

Używa się ich do:

·        wywoływania funkcji systemu operacyjnego,

·        korzystania z usług BIOS-u lub DOS-u.

Przykład:

·        int 21h – funkcje systemu DOS

·        int 10h – obsługa ekranu (BIOS)

3. Przerwania BIOS

To specjalny rodzaj przerwań programowych, które zapewniają bezpośredni dostęp do sprzętu poprzez firmware komputera (BIOS).

·        działają na niskim poziomie,

·        są niezależne od systemu operacyjnego,

·        umożliwiają obsługę podstawowych urządzeń.

Przykłady:

·        int 10h – obsługa ekranu

·        int 16h – obsługa klawiatury

·        int 13h – obsługa dysków

4. Przerwania systemowe (np. DOS)

Są dostarczane przez system operacyjny i oferują wygodniejsze, wyższego poziomu funkcje.

·        słatwiejsze w użyciu niż BIOS,

·        często korzystają wewnętrznie z BIOS-u,

·        umożliwiają pracę z plikami, tekstem i urządzeniami.

Przykład:

·        int 21h – główne przerwanie systemu DOS

Wybrane przerwania i funkcje:

Przerwanie int 21h (DOS) - służy do wykonywania funkcji systemu operacyjnego:

Przerwanie int 16h (BIOS) – do obsługi klawiatury:

Przerwanie int 15h (BIOS) – usługi systemowe i sprzętowe:

Przykład deklaracji zmiennej przechowującej tekst z przejściem do następnej linii:

info db "Pans Krosno",13,10,"$"

4. Turbo debugger - td

III. Zadania

Zadanie 1

Napisz program, który pobiera znak z klawiatury oraz wyświetla go na ekranie monitora. Użyj przerwania DOS. Dodatkowo w drugiej linii program wyświetla napis „KONIEC”

Zadanie 2

Napisz program, który wyświetli trzy litery ABC na ekranie. Użyj funkcji nr 2 przerwania 21h.

Zadanie 3

Napisz program, który pobiera dwa znaki z klawiatury oraz wyświetla je w odwrotnej kolejności na ekranie. Do pobrania wartości z klawiatury użyj funkcji Biosu do obsługi klawiatury.

Zadanie 4

Napisz program wyświetlający cztery duże litery „PANS ” na ekranie monitora w odstępach jednej sekundy.

Zadanie 5

Napisz program pobierający datę systemową. Używając Turbo Debuggera sprawdź wartości rejestrów przechowujących dzień, miesiąc oraz rok według opisu powyżej. Zawartości rejestrów przelicz do wartości dziesiętnych. Wynik przedstaw w sprawozdaniu.