Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.

Slides:



Advertisements
Podobne prezentacje
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Advertisements

Architektura jednostki centralnej RD MBR MAR IRPC +1 WR jednostka sterująca ALU A F Adres Dane Rejestry: MAR – (Memory Address Register) rejestr adresowy.
Wirtualizacja zasobów w systemach operacyjnych
Wykonał : Marcin Sparniuk
Odpytywanie - Polling Program czeka na nadejście danych z urządzenia i nie może wykonywać innych zadań. Urządzenie zewnętrzne dostarcza dane w trudnym.
Wykład 3: Jak działa typowy mikroprocesor?
PROGRAMOWANIE STRUKTURALNE
Lista rozkazów Działanie mikroprocesora jest kontrolowane poprzez rozkazy (instrukcje). Dla każdego typu mikroprocesora istnieje specyficzny zbiór rozkazów,
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Elementarne struktury danych Piotr Prokopowicz
Przykład - Debugger Język pewnego procesora zawiera następujące instrukcje: MOV l, r l:=r ADD l, r l := l + r SUB l, r l := l - r JMP instr skok.
Mapa pamięci mikrokontrolera
Wykład 5 Przerwania w systemie SAB80C537 dr inż. Andrzej Przybył
Podstawowe składniki funkcjonalne procesora i ich rola.
Alokacja pamięci struct Test {char c; int n; double x; } st1; st1 cnxcnx
ARCHITEKTURA KOMPUTERÓW definicja komputera PROCESOR PAMIĘĆ OPERACYJNA URZĄDZENIA ZEWNĘTRZNE.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Tablice.
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Magistrala & mostki PN/PD
Wykład 1: Wskaźniki Podstawy programowania Programowanie w C
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Wykład 2: Jak działa typowy mikroprocesor? Budowa procesora rodziny Intel80x86 Architektury CISC i RISC Instrukcje skoków warunkowych Stos Instrukcje operujące.
Procesory RISC.
PHP wprowadzenie.
ZARZĄDZANIE PROCESAMI
Semafory według normy POSIX
Mikroprocesory i mikrokontrolery
Układy wejścia-wyjścia
Architektura komputerów
Podstawy programowania II
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
MCS51 - wykład 2.
Dekodery adresów.
Mikroprocesor Z80 przerwania.
Architektura komputerów
Mikrokontrolery PIC.
Operacje na strukturach listowych
Architektura komputerów
XML – eXtensible Markup Language 4. XSL transformations (XSLT) XSLT (ang. eXtensible Stylesheet Language Transformations) jest opartym na XML językiem.
Zasada działania komputera
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Etapy pracy biosu.
Architektura komputerów
Architektura systemów komputerowych (jesień 2013)
Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie do akumulatora.
Przerwanie ang. interrupt.
Buforowanie D e f i n i c j a.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Zajęcia I Organizacja zajęć Rejestracja i uruchamianie makr
Wykład 7 Synchronizacja procesów i wątków
Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie.
URZĄDZENIA TECHNIKI KOMPUTEROWEJ
Wykład nr 4: Mikrokontrolery - wprowadzenie Piotr Bilski
Derekursywacja i optymalizacja kodu
Procesor, pamięć, przerwania, WE/WY, …
Architektury procesorów rdzeniowych mikrokontrolerów.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Pętle – instrukcje powtórzeń
Tryby adresowania i formaty rozkazów mikroprocesora
Budowa komputera.
POLITECHNIKA POZNAŃSKA
Zmienne typy danych w VBA. MS Excel – typy danych w języku programowania VBA.
Opiekun: Stanisław Toton. 1. Co to jest mikroprocesor? 2. Początki mikroprocesora. 3. Budowa typowego mikroprocesora. 4. Rozwój mikroprocesorów na przełomie.
Mikrokontrolery System przerwań
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów operacji nazywane są trybami adresowania. Wyróżnia się cztery podstawowe tryby adresowania: adresowanie rejestrowe adresowanie natychmiastowe adresowanie bezpośrednie adresowanie pośrednie Informacja o sposobie adresowania argumentów jest zawarta w kodzie rozkazu.

kod Tryby adresowania – adresowanie rejestrowe R2 pamięć np. MOV A,R2 µP R1 R2 R3 A

kod Tryby adresowania – adresowanie natychmiastowe n pamięć np. MOV A,#n µP R1 R2 R3 A

kod Tryby adresowania – adresowanie bezpośrednie adres pamięć np. MOV A,adres n µP R1 R2 R3 A

kod Tryby adresowania – adresowanie pośrednie R1 pamięć np. MOV n µP R1 R2 R3 A

Tryby adresowania Oprócz czterech podstawowych trybów adresowania w mikroprocesorach spotyka się jeszcze inne tryby adresowania będące modyfikacją lub kombinacją trybów podstawowych: adresowanie pośrednie ze zwiększeniem/zmniejszeniem zawartości rejestru adresowanie pośrednie z przesunięciem adresowanie pośrednie z indeksem i przesunięciem Niektóre z tych trybów adresowania, pomimo że występują w danym mikroprocesorze, mogą nie być jawnie wymieniane jako dostępne do adresowania danych.

kod Tryby adresowania – adresowanie pośrednie ze zwiększeniem R1 pamięć np. MOV n występuje np. w procesorze Motorola 68000: MOVE (A1)+,D0 µP R1 R2 R3 A

kod Tryby adresowania – adresowanie pośrednie z przesunięciem µP R1 R2 R3 R1 pamięć A np. MOV n występuje np. w procesorze Motorola 68000: MOVE d(A1),D0 d +

kod Tryby adresowania – adresowanie pośrednie z indeksem i przesunięciem µP R1 R2 R3 R1 pamięć A np. MOV n występuje np. w procesorze Motorola 68000: MOVE d(A1,D3),D0 d + IX

Stos Stos jest strukturą danych charakteryzującą się tym, że informacje umieszczone na nim można odczytywać wyłącznie w kolejności odwrotnej do kolejności zapisywania. Innymi słowy jako pierwszy ze stosu zostanie odczytany ten element, który został umieszczony na nim jako ostatni. struktura typu LIFO (Last In First Out) Stos służy do chwilowego (tymczasowego) przechowywania informacji

Stos Stos w systemie mikroprocesorowym może być realizowany układowo, ale częściej realizuje się go wykorzystując pewien obszar przestrzeni adresowej pamięci. W takiej realizacji ze stosem związany jest wskaźnik stosu, czyli rejestr mikroprocesora, który wskazuje adres pamięci, pod którym znajduje się wierzchołek stosu (ostatnio umieszczona na nim wartość).

SP 7 5 Stos – umieszczanie informacji na stosie początek przed umieszczeniem informacji na stosie SP po umieszczaniu informacji na stosie SP 7 5 w trakcie umieszczania informacji na stosie 8

Stos –zdejmowanie informacji ze stosu SP po zdjęciu informacji ze stosu SP przed zdjęciem informacji ze stosu SP w trakcie zdejmwania informacji ze stosu 8

Stos Na stosie z reguły przechowywane są następujące informacje: adresy powrotów z podprogramów (procedur, funkcji), zmienne lokalne podprogramów, argumenty wywołań podprogramów i wyniki działania funkcji (rzadziej). Bez stosu nie byłoby możliwe korzystanie z podprogramów, co znacznie utrudniłoby tworzenie, uruchamianie i modyfikowanie programów. Ponadto brak stosu uniemożliwiłby wprowadzenie mechanizmu szybkiego reagowania na zdarzenia zewnętrzne czyli tzw. mechanizmu przerwań.

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 1004h 1008h 4000h SP 1000h PC IR {

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 1004h 1008h 4000h SP 1002h PC IR {

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 4000h SP 1004h 1008h 1004h PC CALL 00h20h IR { 10h 04h

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 3FFEh SP 1004h 1008h 1004h PC IR { 10h 04h CALL 00h20h 2000h

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 3FFEh SP 1004h 1008h 2002h PC IR { 10h 04h

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 3FFEh SP 1004h 1008h 2003h PC RET IR { 10h 04h 1004h

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 4000h SP 1004h 1008h 1004h PC IR { 10h 04h

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 1004h 1008h 4000h SP 1005h PC IR { 10h 04h

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 4000h10h SP 1004h 1008h PC CALL 00h20h IR { 04h 10h 08h

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 3FFEh SP 1004h 1008h PC IR { 10h 08h CALL 00h20h 2000h

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 3FFEh SP 1004h 1008h 2002h PC IR { 10h 08h

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 3FFEh SP 1004h 1008h 2003h PC RET IR { 10h 08h 1008h

1000h CALL Stos – korzystanie z podprogramów 00h 20h 2000h RET CALL 00h 20h 4000h SP 1004h 1008h PC IR { 10h 08h

1000h CALL Stos – wywołania zagnieżdżone 00h 20h 3000h RET CALL 00h 30h 4000h SP 1004h 2000h 1001h PC IR { 10h 08h RET

4000h 1000h CALL Stos – wywołania zagnieżdżone 00h 20h 3000h RET CALL 00h 30h SP 1004h 2000h 1004h PC CALL 00h20h IR { RET 3FFEh 10h 04h 2000h

1000h CALL Stos – wywołania zagnieżdżone 00h 20h 3000h RET CALL 00h 30h 3FFEh SP 1004h 2000h 2001h PC IR { 10h 04h RET

3FFEh 3FFCh 1000h CALL Stos – wywołania zagnieżdżone 00h 20h 3000h RET CALL 00h 20h SP 1004h 2000h 2004h PC CALL 00h30h IR { 10h 08h RET 10h 04h 20h 04h 3000h

1000h CALL Stos – wywołania zagnieżdżone 00h 20h 3000h RET CALL 00h 20h SP 1004h 2000h 3001h PC IR { 10h 08h RET 10h 04h 20h 04h 3FFCh

1000h CALL Stos – wywołania zagnieżdżone 00h 20h 3000h RET CALL 00h 20h 3FFCh SP 1004h 2000h 3002h PC RET IR { 10h 08h RET 10h 04h 20h 04h 2004h

1000h CALL Stos – wywołania zagnieżdżone 00h 20h 3000h RET CALL 00h 20h 3FFEh SP 1004h 2000h 2004h PC IR { 10h 08h RET 10h 04h 20h 04h

1000h CALL Stos – wywołania zagnieżdżone 00h 20h 3000h RET CALL 00h 20h 3FFEh SP 1004h 2000h 2005h PC RET IR { 10h 08h RET 10h 04h 20h 04h 1004h

1000h CALL Stos – wywołania zagnieżdżone 00h 20h 3000h RET CALL 00h 20h 4000h SP 1004h 2000h 1004h PC IR { RET 10h 04h 20h 04h

1000h CALL Stos – przepełnienie stosu 00h 20h 3000h RET CALL 00h 20h 1004h 2000h RET 10h 04h 20h 04h ! Powiększający się stos może nałożyć się na obszar, w którym przechowywane są rozkazy lub dane. Może to spowodować: błędne działanie programu na skutek zamazania danych lub kodów rozkazów przez informacje umieszczane na stosie, błędne działanie programu na skutek zamazania informacji umieszczanych na stosie, przez dane programu.

1000h CALL Stos – zmienne lokalne 00h 20h 3FFEh SP 1004h 10h 04h Podprogram, po jego wywołaniu, może zmodyfikować zawartość wskaźnika stosu tak, aby zarezerwować na stosie miejsce na przechowywanie zmiennych lokalnych. 3FFFh

1000h CALL Stos – zmienne lokalne 00h 20h 3FFAh SP 1004h var4 10h 04h Podprogram, po jego wywołaniu, może zmodyfikować zawartość wskaźnika stosu tak, aby zarezerwować na stosie miejsce na przechowywanie zmiennych lokalnych. Do tak zarezerwowanego miejsca na stosie program może się odwoływać dzięki znajomości położenia wierzchołka stosu i względnego przesunięcia każdej ze zmiennych w stosunku do wierzchołka. 3FFFh var3 var2 var1 SP+0 SP+1 SP+2 SP+3

1000h CALL Stos – zmienne lokalne 00h 20h 3FFEh SP 1004h 10h 04h Podprogram, po jego wywołaniu, może zmodyfikować zawartość wskaźnika stosu tak, aby zarezerwować na stosie miejsce na przechowywanie zmiennych lokalnych. Do tak zarezerwowanego miejsca na stosie program może się odwoływać dzięki znajomości położenia wierzchołka stosu i względnego przesunięcia każdej ze zmiennych w stosunku do wierzchołka. 3FFFh Przed zakończeniem swojego działania (instrukcją RET) podprogram musi przywrócić pierwotną zawartość wskaźnika stosu.

1000h CALL Stos – przekazywanie argumentów 00h 20h 3FFEharg1 SP 1004h arg2 arg3 Stos może też służyć do przekazywania argumentów podprogramów. W tym celu przed wywołaniem podprogramu, program wywołujący musi na stosie umieścić argumenty podprogramu. 3FFFh

1000h CALL Stos – przekazywanie argumentów 00h 20h 3FFBh SP 1004h arg3 Stos może też służyć do przekazywania argumentów podprogramów. W tym celu przed wywołaniem podprogramu, program wywołujący musi na stosie umieścić argumenty podprogramu. Do argumentów podprogram może się odwoływać dzięki znajomości położenia wierzchołka stosu i względnego przesunięcia każdego z argumentów w stosunku do wierzchołka. 3FFFh arg1 arg2 10h 04h SP+2 SP+3 SP+4

1000h CALL Stos – przekazywanie argumentów 00h 20h 4000h SP 1004h arg3 Stos może też służyć do przekazywania argumentów podprogramów. W tym celu przed wywołaniem podprogramu, program wywołujący musi na stosie umieścić argumenty podprogramu. Do argumentów podprogram może się odwoływać dzięki znajomości położenia wierzchołka stosu i względnego przesunięcia każdego z argumentów w stosunku do wierzchołka. 3FFFh Po zakończeniu podprogramu, program wywołujący musi usunąć umieszczone wcześniej na stosie argumenty. arg1 arg2

1000h CALL Stos – przekazywanie argumentów 00h 20h 3FFEh SP 1004h arg3 Istnieją również rozwiązania, w których przyjmuje się, że to podprogram powinien usunąć argumenty ze stosu. Jest to jednak w prostych mikroprocesorach zadanie trudniejsze, gdyż wymaga skopiowania adresu powrotu w miejsce początkowych argumentów. Żeby ułatwić realizację takiej konwencji, w niektórych procesorach istnieją specjalne instrukcje powrotu z podprogramu z usunięciem zadanej liczby słów/bajtów ze stosu. 3FFFh arg1 arg2 10h 04h 10h 04h