Narzędzia użytkownika

Narzędzia witryny


notatki:assembler8086

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronachPoprzednia wersja
Nowa wersja
Poprzednia wersja
notatki:assembler8086 [2025/05/07 13:15] administratornotatki: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, ale w późniejszych wersjach, jak 80286, ten tryb został wprowadzony). * 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, ale w późniejszych wersjach, jak 80286, ten tryb został wprowadzony).
  
----+----
  
 ===== Przykłady programów w assemblerze procesora 8086 ===== ===== Przykłady programów w assemblerze procesora 8086 =====
Linia 24: Linia 28:
 Poniżej przedstawiam kilka przykładów programów w języku assemblera dla procesora 8086. Przykłady te ilustrują podstawowe operacje wykonywane przez procesor, jak manipulacja rejestrami, wejście/wyjście na porty oraz podstawowe skoki warunkowe. Poniżej przedstawiam kilka przykładów programów w języku assemblera dla procesora 8086. Przykłady te ilustrują podstawowe operacje wykonywane przez procesor, jak manipulacja rejestrami, wejście/wyjście na porty oraz podstawowe skoki warunkowe.
  
----+----
  
 === Program 1 === === Program 1 ===
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.
  
----+----
  
 === Program 2 === === Program 2 ===
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ść.
  
----+----
  
 === Program 3 === === Program 3 ===
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.
  
----+----
  
 === Program 4 === === Program 4 ===
Linia 158: Linia 167:
 end: end:
  end  end
-```+</code>
  
 ===== Opis programu ===== ===== Opis programu =====
  
 * Program wyświetla napis "I AM KACPER" na ekranie. * Program wyświetla napis "I AM KACPER" na ekranie.
 +
 * 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ą.
  
----+----
  
 ===== Symulator SMZ32V50 ===== ===== Symulator SMZ32V50 =====
Linia 171: Linia 181:
 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/wyjścia oraz pamięci, co czyni go idealnym narzędziem do nauki i testowania kodu dla tego typu procesorów. 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/wyjścia oraz pamięci, co czyni go idealnym narzędziem do nauki i testowania kodu dla tego typu procesorów.
  
----+{{ :notatki:smz32v50.exe |}} 
 + 
 +----
  
 ===== Podsumowanie ===== ===== Podsumowanie =====
Linia 177: Linia 189:
 Procesor 8086 był pionierem w wielu aspektach architektury komputerowej. Dzięki jego prostocie i elastyczności, programowanie w assemblerze tego procesora wciąż stanowi cenne źródło nauki dla tych, którzy chcą zrozumieć podstawy działania komputerów. Przykłady powyższych programów pokazują, jak wykorzystywać instrukcje procesora do realizacji różnych operacji, takich jak manipulacja rejestrami, interakcje z portami wejścia/wyjścia oraz proste struktury sterujące. Procesor 8086 był pionierem w wielu aspektach architektury komputerowej. Dzięki jego prostocie i elastyczności, programowanie w assemblerze tego procesora wciąż stanowi cenne źródło nauki dla tych, którzy chcą zrozumieć podstawy działania komputerów. Przykłady powyższych programów pokazują, jak wykorzystywać instrukcje procesora do realizacji różnych operacji, takich jak manipulacja rejestrami, interakcje z portami wejścia/wyjścia oraz proste struktury sterujące.
  
----+----
  
notatki/assembler8086.1746616513.txt.gz · ostatnio zmienione: 2025/05/07 13:15 przez administrator