2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24

Podobne dokumenty
Architektura Systemów Komputerowych

Wprowadzenie do architektury komputerów. Model programowy procesora i jego struktura Procesory CISC i RISC

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Architektura komputerów

Programowanie Niskopoziomowe

Architektura komputerów

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

PROGRAMOWANIE NISKOPOZIOMOWE

Architektura komputerów

PROGRAMOWANIE NISKOPOZIOMOWE. Struktury w C. Przykład struktury PN.06. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

organizacja procesora 8086

Programowanie Niskopoziomowe

PROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Adresowanie. W trybie natychmiastowym pole adresowe zawiera bezpośrednio operand czyli daną dla rozkazu.

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

Programowanie niskopoziomowe

Materiały do wykładu. 4. Mikroprocesor. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler

Sprzęt i architektura komputerów

Organizacja typowego mikroprocesora

Pytania. W obecnie wykorzystywanych komputerach osobistych jest stosowana architektura: jednoszynowa. pamięciowo-centryczna.

Architektura komputerów. Asembler procesorów rodziny x86

Projektowanie. Projektowanie mikroprocesorów

Rozszerzalne kody operacji (przykład)

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Sprzęt i architektura komputerów

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Architektura systemów komputerowych. Lista instrukcji procesora

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

MIKROKONTROLERY I MIKROPROCESORY

Metody Realizacji Języków Programowania

Procesory rodziny x86. Dariusz Chaberski

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86

Materiały do wykładu. 7.Architekturax86. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

Struktura i działanie jednostki centralnej

PROGRAMOWANIE NISKOPOZIOMOWE

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.02 Rok akad. 2011/ / 35

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

architektura komputerów w 1 1

Ćwiczenie nr 6. Programowanie mieszane

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

ARCHITEKTURA PROCESORA,

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Jerzy Nawrocki, Wprowadzenie do informatyki

Konieczne odwzorowanie (mapping) obiektów: nazwa (+indeks) adres lokacja

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Język programowania: Lista instrukcji (IL Instruction List)

Architektura komputerów

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Architektura systemów komputerowych

Programowanie Niskopoziomowe

Programowanie w asemblerze Środowiska 64-bitowe

PRZEWODNIK PO PRZEDMIOCIE

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/ / 27

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze.

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Klasyczny cykl pracy procesora sekwencyjnego. współczesne architektury. c Dr inż.

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

002 Opcode Strony projektu:

Technika mikroprocesorowa I Wykład 2

Cel wykładu. Przedstawienie działania exploitów u podstaw na przykładzie stack overflow.

Logiczny model komputera i działanie procesora. Część 1.

Lista instrukcji mikroprocesora Programowanie w assemblerze

Architektura typu Single-Cycle

Programowanie niskopoziomowe

2. Architektura mikrokontrolerów PIC16F8x... 13

Kurs Zaawansowany S7. Spis treści. Dzień 1

Architektura systemów komputerowych. Konstrukcja i zasada działania mikroprocesora

Budowa Mikrokomputera

Architektura komputerów

Programowanie komputera

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Programowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler

Programowanie w asemblerze Wprowadzenie

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

Budowa i zasada działania komputera. dr Artur Bartoszewski

Lista Rozkazów: Język komputera

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Architektura Systemów Komputerowych

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C1

BUDOWA I DZIAŁANIE MIKROPROCESORA

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

WPROWADZENIE Mikrosterownik mikrokontrolery

Adam Kotynia, Łukasz Kowalczyk

Transkrypt:

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe komputerów ASK MP.02 c Dr inż. Ignacy Pardyka 1 UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach 2 Literatura Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 1 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 2 / 24 Definicja użytkowego modelu programowego Składniki modelu programowego zestaw zasobów logicznych komputera dostępnych dla programisty języka asemblera twórcy kompilatora nie ma bezpośredniego związku z budową wewnętrzną procesora model programowy architektura różne rodziny komputerów mogą być oparte o wspólny model programowy zestaw rejestrów liczba rejestrów funkcjonalność zestaw trybów adresowania specyfikacja argumentów operacji model operacji warunkowych sposób realizacji konstrukcji warunkowych lista instrukcji zestaw operacji, jakie może wykonać procesor c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 3 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 4 / 24

Funkcje rejestrów akumulator A = A op src może być wiele rejestrów pełniących tę funkcję rejestr adresowy bazowy indeksowy wskaźnik stosu wskaźnik ramki stosu licznik pętli odliczanie iteracji brak rejestrów minimalny zestaw rejestrów mały zestaw rejestrów specjalizowanych mały zestaw rejestrów uniwersalnych duży zestaw rejestrów uniwersalnych zestaw rejestrów buforujących ramkę stosu stosowy zestaw rejestrów c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 5 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 6 / 24 Architektury bezrejestrowe Architektury z minimalnym zestawem rejestrów zawierają 1..3 rejestrów, w tym PC operacje na danych typu pamięć pamięć obecnie prawie niespotykane architektura typu MOVE argumenty w instrukcji lub w pamięci rejestry w pamięci głównej rozwiązanie np. w kontrolerach MAXQ PC licznik rozkazów SP wskaźnik stosu akumulator (lub dwa) rejestr adresowy (lub dwa) argumenty: jeden w rejestrze, a drugi w pamięci wada: częste odwołania do pamięci zastosowanie: mikrokontrolery 8-bitowe, np. 68HC08 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 7 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 8 / 24

Architektury z małym zestawem rejestrów specjalizowanych Architektury z małym zestawem rejestrów uniwersalnych 6..8 rejestrów pełniących sztywno określone funkcje rejestry służą wyłącznie do przechowywania argumentów operacji i wyników pośrednich niektóre rejestry domyślnie zawierają argumenty specyficznych instrukcji zastosowanie: np. x86 w trybie 16 bitowym AX akumulator DX rozszerzenie akumulatora dla mnożenia i dzielenia CX licznik iteracji BX główny rejestr adresowy SP wskaźnik stosu BP wskaźnik ramki SI, DI pomocnicze rejestry adresowe IP licznik instrukcji FLAGS rejestr znaczników 6..8 rejestrów uniwersalnych zastosowanie: np. x86 w trybie 32-bitowym: EAX, EDX, ECX, EBX, ESP, EBP, ESI, EDI wszystkie rejestry mogą służyć jako: akumulatory rejestry adresowe rejestry indeksowe (poza ESP) 3..4 rejestrów do przechowania parametrów procedur lub zmiennych lokalnych c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 9 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 10 / 24 Architektury z dużym zestawem rejestrów uniwersalnych Bardzo duży zestaw rejestrów uniwersalnych 16..32 rejestrów uniwersalnych zastosowanie: np. MIPS, IBM Power, AMD64 rejestry do przechowania kilku parametrów procedur lub zmiennych lokalnych istotna redukcja liczby odwołań do pamięci 32..128 rejestrów uniwersalnych przechowują całą ramkę stosu (bez zmiennych strukturalnych) zastosowanie np. SPARC, Am29k, IA-64 (Itanium) szybkie wykonywanie procedur c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 11 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 12 / 24

Stosowy zestaw rejestrów 3..8 rejestrów tworzących stos często brak nazw rejestrów operacje wykonywane na wierzchołku stosu rejestrów bezargumentowe lub 1-argumentowe argumenty pobierane z wierzchołka stosu wynik odkładany na stos przykłady: transputery jednostka zmiennoprzecinkowa x87 upraszcza konstrukcję kompilatora, jednak jednostka wykonawcza trudna do implementacji sposób specyfikacji argumentu operacji sposób obliczania adresu danej w pamięci także z wykorzystaniem rejestrów tryby odnoszące się do pamięci: natychmiastowy: operand w polu instrukcji rejestrowy bezpośredni: operand w rejestrze tryby rejestrowe pośrednie operand w pamięci, a jego adres (lub składnik) w rejestrze rejestrowy prosty (r.p.): adres w rejestrze r.p. z przemieszczeniem: adres = zawartość rejestru + stała z instrukcji dwurejestrowy pośredni: adres jest sumą zawartości dwóch rejestrów c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 13 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 14 / 24 tryb absolutny (bezpośredni) dana w pamięci adres w instrukcji stosowany do adresowania danych statycznych może być zastąpiony przez r.p. z przemieszczeniem tryb z bazą w PC r.p. z rejestrem bazowym PC wygodny do adresowania tablic adresów kodu, np. implementacja konstrukcji switch zastosowanie: np. M68k, AMD64, MSP430 tryb indeksowy adres = efektywny adres pamięci + zawartość rejestru skala skala: 1, 2, 4, 8, 16 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 15 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 16 / 24

Minimalny zestaw trybów adresowania tryb z automodyfikacją bazy r.p. z modyfikacją rejestru bazowego o długość danej automodyfikacja przed lub po operacji preinkrementacja, postinkrementacja, predekrementacja, postdekrementacja niejawnie wykorzystywany przez operacje stosowe: PUSH, POP tryb pamięciowy pośredni dana w pamięci składnik adresu w pamięci stosowany w klasycznych architekturach CISC natychmiastowy rejestrowy bezpośredni rejestrowy pośredni (np. r.p z przemieszczeniem) niezbędny np. do wskazywania zmiennych w ramce stosu c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 17 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 18 / 24 Model operacji warunkowych Model operacji warunkowych ze znacznikami określa sposób realizacji przez procesor operacji warunkowych model ze znacznikami model bez znaczników model z predykatami znaczniki: 1-bitowe rejestry atrybutów ostatnio wykonanej operacji zwykle grupowane w wielobitowym rejestrze znaczników typowe znaczniki: Z: znacznik zera Z = 1, gdy wynik = 0 N/M: kopia MSB wyniku operacji C/CY: przeniesienie z MSB wyniku O/V/OV: nadmiar (w kodzie U2) AC/HC: przeniesienie pomocnicze (dla BCD) P: parzystość P = 1, gdy parzystość w najmłodszym bajcie zasady ustawiania zdefiniowane w dokumentacji architektury procesora c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 19 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 20 / 24

Instrukcje warunkowe Model operacji warunkowych bez znaczników w instrukcji zawarty warunek wykonania rozkazu warunkowe: skoki, przesłania warunek może być ustawiany explicite: SET cc symbole oznaczające warunki (mnemo) w instrukcjach x86: O, NO OF C, B, NAE, NC, NB, AE CF Z, E, NZ, NE ZF BE, NA, NBE, A CF ZF S, NS SF P, PE, NP, PO PF L, NGE, NL, GE SF OF LE, NG, NL, G (SF OF) ZF A above, B below, G greater, L less pojedyncza instrukcja ewaluuje relację i wykonuje operację, jeśli relacja jest spełniona np. skocz jeśli zawartości rejestrów równe charakterystyczny dla procesorów RISC, np. MIPS c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 21 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 22 / 24 Literatura Model z predykatami Literatura predykaty uogólnione znaczniki mogą przechowywać wartość logiczną dowolnej wcześniej obliczonej relacji możliwość równoczesnego przechowywania wartości wielu relacji instrukcje, w większości, warunkowe zastosowanie: np. IA-64 (Itanium) A. S. Tanenbaum, Strukturalna organizacja systemów komputerowych, Helion, 2006. J. Biernat, Architektura komputerów, OWPW, 2005. R. Hyde, Profesjonalne programowanie, Helion, 2005. R. Hyde, Asembler. Sztuka programowania, Helion, 2004. G. Mazur, Programowanie niskopoziomowe, http://wazniak.mimuw.edu.pl. P.A. Carter, PC Assembly Language, http://www.drpaulcarter.com/pcasm/. D.W. Lewis, Między asemblerem a językiem C. Podstawy oprogramowania wbudowanego, RM, 2004. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 23 / 24 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/2012 24 / 24