Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronachPoprzednia wersjaNowa wersja | Poprzednia wersja | ||
notatki:assembler8086 [2025/05/07 13:16] – administrator | notatki:assembler8086 [2025/05/07 13:18] (aktualna) – [Symulator SMZ32V50] administrator | ||
---|---|---|---|
Linia 6: | Linia 6: | ||
Procesor 8086 posiada szereg cech, które zdefiniowały jego architekturę: | Procesor 8086 posiada szereg cech, które zdefiniowały jego architekturę: | ||
+ | |||
* Rejestry : Procesor posiada 14 głównych rejestrów, w tym rejestry ogólnego przeznaczenia (AX, BX, CX, DX, SI, DI, BP, SP), rejestry segmentowe (CS, DS, SS, ES) oraz rejestr wskaźnika instrukcji (IP). | * Rejestry : Procesor posiada 14 głównych rejestrów, w tym rejestry ogólnego przeznaczenia (AX, BX, CX, DX, SI, DI, BP, SP), rejestry segmentowe (CS, DS, SS, ES) oraz rejestr wskaźnika instrukcji (IP). | ||
+ | |||
* Adresowanie pamięci : Procesor używa segmentowego adresowania pamięci, co oznacza, że cała pamięć 8086 jest podzielona na segmenty (do 1 MB pamięci). Adresy pamięci są tworzone przez 16-bitowy rejestr segmentu oraz 16-bitowy rejestr offsetu. | * Adresowanie pamięci : Procesor używa segmentowego adresowania pamięci, co oznacza, że cała pamięć 8086 jest podzielona na segmenty (do 1 MB pamięci). Adresy pamięci są tworzone przez 16-bitowy rejestr segmentu oraz 16-bitowy rejestr offsetu. | ||
+ | |||
* Cykl pracy : 8086 działa na zasadzie cykli zegara, w których wykonuje operacje odczytu, zapisu i wykonywania instrukcji. | * Cykl pracy : 8086 działa na zasadzie cykli zegara, w których wykonuje operacje odczytu, zapisu i wykonywania instrukcji. | ||
Linia 16: | Linia 19: | ||
* Tryb real-mode : Jest to tryb, w którym procesor wykonuje operacje bez wirtualizacji pamięci i bez ochrony pamięci. | * Tryb real-mode : Jest to tryb, w którym procesor wykonuje operacje bez wirtualizacji pamięci i bez ochrony pamięci. | ||
+ | |||
* Tryb ochrony: Tryb ten jest bardziej zaawansowany i pozwala na zarządzanie pamięcią w sposób bezpieczniejszy (chociaż procesor 8086 nie obsługiwał go bezpośrednio, | * Tryb ochrony: Tryb ten jest bardziej zaawansowany i pozwala na zarządzanie pamięcią w sposób bezpieczniejszy (chociaż procesor 8086 nie obsługiwał go bezpośrednio, | ||
Linia 56: | Linia 60: | ||
* Program wczytuje dane z pamięci i wysyła je na port (symulując sterowanie sygnalizacją świetlną). | * Program wczytuje dane z pamięci i wysyła je na port (symulując sterowanie sygnalizacją świetlną). | ||
+ | |||
* Wartości są przechowywane w pamięci, a procesor przesyła je na odpowiedni port za pomocą instrukcji `OUT`. | * Wartości są przechowywane w pamięci, a procesor przesyła je na odpowiedni port za pomocą instrukcji `OUT`. | ||
+ | |||
* Program zatrzymuje się, gdy liczba wysłanych danych osiągnie 5. | * Program zatrzymuje się, gdy liczba wysłanych danych osiągnie 5. | ||
Linia 79: | Linia 85: | ||
* Program ustawia wartość `B6` w rejestrze AL, a następnie wysyła ją na port 02. | * Program ustawia wartość `B6` w rejestrze AL, a następnie wysyła ją na port 02. | ||
+ | |||
* Następnie ustawia wartość `0B` w rejestrze AL i ponownie wysyła ją na port 02. | * Następnie ustawia wartość `0B` w rejestrze AL i ponownie wysyła ją na port 02. | ||
+ | |||
* Program powtarza te operacje w nieskończoność. | * Program powtarza te operacje w nieskończoność. | ||
Linia 111: | Linia 119: | ||
* Program odczytuje dane z portu 03 i sprawdza, czy najmłodszy bit jest ustawiony na 0 (co może oznaczać, że temperatura jest zbyt niska). | * Program odczytuje dane z portu 03 i sprawdza, czy najmłodszy bit jest ustawiony na 0 (co może oznaczać, że temperatura jest zbyt niska). | ||
+ | |||
* W zależności od wyniku, program włącza lub wyłącza grzałkę, wysyłając odpowiedni kod na port 03. | * W zależności od wyniku, program włącza lub wyłącza grzałkę, wysyłając odpowiedni kod na port 03. | ||
Linia 163: | Linia 172: | ||
* Program wyświetla napis "I AM KACPER" | * Program wyświetla napis "I AM KACPER" | ||
+ | |||
* Przesuwa dane z jednej komórki pamięci do drugiej, wykorzystując rejestry i instrukcje manipulacji pamięcią. | * Przesuwa dane z jednej komórki pamięci do drugiej, wykorzystując rejestry i instrukcje manipulacji pamięcią. | ||
Linia 170: | Linia 180: | ||
Do wykonywania powyższych programów użyty został symulator SMZ32V50. Jest to narzędzie, które umożliwia emulację działania procesora 8086, pozwalając na testowanie i debugowanie programów w assemblerze. Symulator ten może emulować działanie portów wejścia/ | Do wykonywania powyższych programów użyty został symulator SMZ32V50. Jest to narzędzie, które umożliwia emulację działania procesora 8086, pozwalając na testowanie i debugowanie programów w assemblerze. Symulator ten może emulować działanie portów wejścia/ | ||
+ | |||
+ | {{ : | ||
---- | ---- |