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

Podobne dokumenty
organizacja procesora 8086

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

Programowanie niskopoziomowe

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

Sprzęt i architektura komputerów

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Sprzęt i architektura komputerów

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Architektura komputerów

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

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

Procesory rodziny x86. Dariusz Chaberski

Architektura komputerów. Asembler procesorów rodziny x86

Programowanie Niskopoziomowe

Architektura Systemów Komputerowych

BUDOWA I DZIAŁANIE MIKROPROCESORA

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

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

Organizacja typowego mikroprocesora

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

Architektura komputerów

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Adam Kotynia, Łukasz Kowalczyk

CPU architektura i rejestry

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

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

Mikroprocesor Intel 8088 (8086)

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Magistrala systemowa (System Bus)

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

1. Asembler i wstawki asemblerowe w C

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Struktura i działanie jednostki centralnej

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

Architektura Systemów Komputerowych

, " _/'--- " ~ n\l f.4e ' v. ,,v P-J.. ~ v v lu J. ... j -:;.",II. ,""", ",,> I->~" re. dr. f It41I r> ~ '<Q., M-c 'le...,,e. b,n '" u /.

MIKROPROCESORY architektura i programowanie

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

1. Operacje logiczne A B A OR B

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

Wybrane zagadnienia elektroniki współczesnej

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

Programowanie w asemblerze Wprowadzenie

UTK jednostki wykonawczej EU (Ex ecution Unit), jednostki steruj c ej CU,

Programowanie komputera

Programowanie w asemblerze Środowiska 64-bitowe

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Programowanie Niskopoziomowe

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

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

PROGRAMOWANIE NISKOPOZIOMOWE

Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.

Zarządzanie pamięcią w systemie operacyjnym

architektura komputerów w 1 1

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Programowanie mikrokontrolera 8051

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Systemy wbudowane. Przykłady kodu Assembler

Mikrokontroler ATmega32. Język symboliczny

Sterowanie pracą programu

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Podstawy Techniki Mikroprocesorowej

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Metody obsługi zdarzeń

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

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

Przykładowe pytania DSP 1

Rozszerzalne kody operacji (przykład)

Lista instrukcji mikroprocesora Programowanie w assemblerze

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Jerzy Nawrocki, Wprowadzenie do informatyki

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. Jednostka ALU Przestrzeń adresowa Tryby adresowania

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Architektura komputerów

architektura komputerów w 1 1

Arytmetyka stałopozycyjna

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

Prezentacja systemu RTLinux

Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia

Mikroprocesor Operacje wejścia / wyjścia

Budowa Mikrokomputera

Architektura systemu komputerowego

Załącznik do ćwiczenia w środowisku MASM32 Przesyłanie danych i zarządzanie danymi

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Technika mikroprocesorowa I Wykład 2

Architektura typu Single-Cycle

Operacje arytmetyczne

Przerwania, polling, timery - wykład 9

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

Politechnika Warszawska

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Transkrypt:

Rejestry procesora Procesor podczas wykonywania instrukcji posługuje się w dużej części pamięcią RAM. Pobiera z niej kolejne instrukcje do wykonania i dane, jeżeli instrukcja operuje na jakiś zmiennych. Poza pamięcią operacyjną procesor równie często podczas wykonywania instrukcji odwołuje się do swoich wewnętrznych rejestrów. Operowanie na wewnętrznych rejestrach jest znacznie szybsze niż odwoływanie się do pamięci operacyjnej. Pisząc programy w asemblerze trzeba więc tak planować kod, aby zmienne, które często są używane znajdowały się w rejestrach. Rejestr jest elektronicznym układem pamięciowym, który zwykle ma niewielką pojemność kilkunastu bitów. Służy praktycznie, jak każda pamięć w komputerze, do przechowywania wartości liczbowych. W niektórych przypadkach są to zwykłe liczby będące parametrami funkcji matematycznych, a czasami są to rejestry, za pomocą których możemy sterować pracą procesora zmieniając stany ich pojedynczych bitów. Pierwszą i najważniejszą grupą rejestrów są rejestry ogólnego przeznaczenia GPR (General Purpose Registers). W standardowych procesorach zgodnych z architekturą x86 jest ich 4. Nazwa ilość bitów Opis AX 16 (accumulator) rejestr akumulatora BX 16 (base) rejestr bazowy CX 16 (count) rejestr licznika DX 16 (data) rejestr danych Nazwy rejestrów są dość łatwe do zapamiętania ponieważ pierwsza litera pochodzi od angielskiego słowa oznaczającego ich funkcje, a dodatkowo dziwnym zbiegiem okoliczności są to kolejne litery alfabetu. Wszystkie rejestry GPR są rejestrami szesnastobitowymi, ale można się niezależnie odwoływać do każdej z ich 8 bitowych połówek. Każdy z rejestrów GPR dzieli się na dwa rejestry opisujące jego starszą High i młodszą Low część co przedstawia poniższa tabela.

Nazwa starsza część młodsza część AX AH AL BX BH BL CX CH CL DX DH DL Rejestr AX stosuje się przeważnie do większości obliczeń. Jest to standardowy rejestr w którym są umieszczane wyniki niektórych operacji arytmetycznych. Rejestr DX również często stosuje się do przechowywania wyników niektórych operacji (przykładowo mnożenie), jeżeli wynik nie mieści się w zakresie rejestru AX. Rejestr CX stosowany jako licznik w pętlach programowych i w instrukcjach powtórzeniowych. Rejestr BX stosowany bardzo często do indeksowania pamięci czyli przechowuje adresy. Dzięki podzieleniu rejestrów na połówki realizowanie niektórych algorytmów jest znacznie łatwiejsze. Jeżeli wpiszemy przykładowo do rejestru AX wartość 45C1h, to w rejestrze starszym AH zapisana zostanie wartość 45h, a w młodszym C1h. Możliwe jest używanie rejestrów 8 bitowych jako niezależnych rejestrów lub używanie całego rejestru do przechowywania wartości 16 bitowych.

W procesorze znajdują się dodatkowo rejestry segmentowe. Nazwa ilość bitów opis CS 16 segment kodu DS 16 segment danych ES 16 segment dodatkowy SS 16 segment stosu Wszystkie one są 16 bitowe i nie można ich dzielić na połowy. Rejestrów tych używa się przy adresowaniu pamięci. Każdy z rejestrów segmentowych jest załadowany wartością, która określa pewien obszar pamięci. Po odpowiednim ich użyciu możemy pobierać i zapisywać do tych obszarów dane. Rejestry wskaźnikowe: Nazwa ilość bitów opis SI 16 wskaźnik źródła DI 16 wskaźnik celu BP 16 wskaźnik bazy SP 16 wskaźnik stosu

IP 16 wskaźnik instrukcji Rejestry wskaźnikowe w połączeniu z rejestrami segmentowymi służą do określania adresów w pamięci. Dlaczego do adresowania pamięci używany jest zestaw dwóch rejestrów opiszę w innym miejscu. SI (Source Index), DI (Destination Index), para rejestrów używanych przede wszystkim do instrukcji procesora, które w sposób automatyczny operują na danych. Dodatkowo używany jest wtedy również rejestr licznika CX. Rejestr SI używany jest wtedy jako adres źródłowego ciągu danych, DI jako adres wynikowego ciągu danych, a CX określa rozmiar. Rejestry SP (Stack Pointer), BP (Base Pointer) używane są najczęściej do struktury pamięci nazywanej stosem. Rejestr IP (Instruction Pointer) wraz z CS wskazuje adres następnej instrukcji, jaka zostanie wykonana przez procesor. Teraz chciałbym jeszcze wprowadzić jeden rejestr, bez którego nie można by było się obejść budując pętlę programową. Jest to rejestr flag (Flag Register) oznaczany jako Flags. Rejestr flag jest 16 bitowym rejestrem, w którym każdy bit oznacza zaistnienie określonej sytuacji. Tak więc każdy jego bit trzeba rozpatrywać osobno. Numer bitu 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Nazwa - - - - OF DF IF TF SF ZF - AF - PF - CF CF (Carry Flag ) - Flaga ustawiona jeżeli w poprzedniej operacji nastąpiło przeniesienie. Czyli wynik operacji nie mieści się w rozmiarze zmiennej. PF (Parity Flag) - Flaga parzystości. Ustawiona jeżeli ilość bitów o wartości 1 w mniej znaczącym bajcie (low) wyniku ostatniej operacji jest parzysta. AF (Auxillary Flag) - Flaga wykorzystywana głównie przy operacjach na liczbach w formacie BCD. Ustawiona gdy w ostatniej operacji nastąpiło przeniesienie z bitu 3 na bit 4 lub pożyczka z bitu 4 na bit 3. ZF (Zero Flag) - Flaga zera. Jeżeli wynik ostatniej operacji wynosił zero flaga zostaje ustawiona. W przeciwnym przypadku jest wyzerowana.

SF (Sign Flag) - Flaga znaku. Przyjmuje wartość najbardziej znaczącego bitu z wyniku ostatniej operacji. TF (Trap Flag) - Ustawienie bitu oznacza tryb pracy krokowej procesora co oznacza, że po każdej wykonanej instrukcji procesor wykonuje określoną procedurę. Wyzerowana flaga oznacza normalny tryb pracy procesora. IF (Interrupt Flag) - Ustawienie flagi oznacza, iż program może być przerywany przez zewnętrzne przerwania i procesor przechodzi wtedy do procedur ich obsługi (jest to normalny tryb pracy CPU). Wyzerowanie tej flagi oznacza zablokowanie obsługi przerwań zewnętrznych. DF (Direction Flag) - Flaga określająca kierunek działania niektórych automatycznych instrukcji. Ustawiona flaga oznacza, że wybrany został kierunek o rosnących adresach. OF (Overflow Flag) - Ustawiony bit oznacza, że w ostatniej operacji nastąpiło przeniesienie na bit znaku lub nastąpiła pożyczka z tego bitu.