2. Model programowy Pamięć operacyjna Porty wejściowe i wyjściowe Rejestry... 6

Wielkość: px
Rozpocząć pokaz od strony:

Download "2. Model programowy...5. 2.1. Pamięć operacyjna... 5 2.2. Porty wejściowe i wyjściowe... 6 2.3. Rejestry... 6"

Transkrypt

1 Spis treści Spis treści Wstęp Model programowy Pamięć operacyjna Porty wejściowe i wyjściowe Rejestry Język asemblera Rozkazy Pseudorozkazy Dyrektywy Architektura Kodowanie rozkazów Przykłady asemblacji i deasemblacji System przerwań Struktura Struktura jednoszynowa Mikrooperacje Sterowanie Realizacja sterowania Programy Obliczanie sumy dwóch liczb 32-bitowych Upakowanie dwucyfrowej liczby BCD Przepisanie bloku słów w pamięci Podprogram mnoŝenia przez stałą MnoŜenie liczb dodatnich mniejszych od Inny program mnoŝenia UŜycie dyrektyw Zamiana liczby BCD na dwójkową Emulator Funkcje emulatora Edycja i asemblacja programu... 59

2 7.3. Uruchamianie programu i symulacja Uwagi praktyczne Symulacja Komunikacja z programem debug Polecenia programu debug Modelowanie architektury 2K+ za pomocą x Przykład programu Opis formalny architektury Reguły formalizmu ISP Formalny opis architektury 2K Literatura... 91

3 Wstęp Poznanie, choćby fragmentaryczne, szczegółów konkretnej maszyny daje pojęcie o istocie działania kaŝdego komputera, gdyŝ kaŝdy realizuje podobne i - co do zasady - niezbyt skomplikowane operacje opisane w klasycznym modelu von Neumanna sprzed ponad sześćdziesięciu lat. Komputer 2K+ jest modelem prezentującym charakterystyczne cechy architektury CISC (Complex Instruction Set Computer), jaką mają np. procesory rodziny x86, stosowane w komputerach osobistych PC nieprzerwanie od lat 80. Te cechy to m.in. operacje typu rejestr-pamięć wykonywane na zawartości pamięci, wiele sposobów adresowania argumentu, niewielka liczba rejestrów uniwersalnych, zmienna długość słowa rozkazowego. Jest to model dydaktyczny, więc starano się implementować moŝliwie krótką, ale nie trywialną listę rozkazów, a z drugiej strony unikać zbędnych osobliwości występujących w kaŝdym rzeczywistym komputerze. Pewna (ale nie zupełna!) zgodność architektury 2K+ z architekturą procesorów x86, pracujących w 16-bitowym tzw. trybie rzeczywistym (real mode), pozwala na stosunkowo łatwe jej modelowanie z uŝyciem narzędzi dostępnych pod systemem operacyjnym MS DOS (debugger uruchamiany z wiersza polecenia Windows - zob. rozdz. 8). Dla komputera 2K+ zdefiniowano listę rozkazów i system przerwań (rozdz. 4) oraz język prostego asemblera Kass (rozdz. 3) o składni wzorowanej częściowo na asemblerze x86, a częściowo na słynnym swego czasu minikomputerze PDP-11. MoŜliwości operacyjne rozkazów i styl programowania w asemblerze ilustrują krótkie przykłady programów podane w rozdz. 6. Architekturę 2K+ opisano teŝ formalnie w zmodyfikowanej notacji ISP (rozdz. 9). Stosunkowa prostota 2K+ pozwala na pełny opis wstępnego projektu struktury (organizacji logicznej) na poziomie rejestrowym (register-transfer level) i projektu sterowania tą strukturą. Wykaz wszystkich sekwencji mikrooperacji zamieszczono w rozdz. 5. Bardzo atrakcyjne narzędzie do badania architektury modelowego komputera jak i do ćwiczeń w programowaniu w języku asemblera Kass stanowi emulator, będący treścią rozdz. 7. Przedstawienie tego programu, będącego dziełem studenckim, moŝe dodatkowo stanowić zachętę do samodzielnej działalności projektowej. Opisany tutaj model komputera był pierwotnie wprowadzony w ksiąŝce "Krótki kurs architektury i organizacji komputerów" (poz. 7. spisu literatury), która stanowi zwięzły wykład zasad działania komputerów i podstawowych cech ich budowy. Jej treść wyczerpu-

4 4 1. Wstęp je zakres tematyki przewidziany w przedmiocie architektura komputerów wykładanym na wyŝszych uczelniach technicznych. Niniejszą pracę moŝna traktować jako uzupełnienie omawianej pozycji, gdyŝ dostarcza ona obfitego materiału do ćwiczeń i moŝe inspirować tematy prac studenckich na róŝnych poziomach zaawansowania. Takimi tematami mogą być np. rozbudowa listy rozkazów, zmiana sposobu ich kodowania, alternatywny projekt struktury, realizacja asemblera skrośnego czy symulatora. Z tego powodu opisany tu model powinien być przydatny zarówno dla studentów elektroniki, telekomunikacji i informatyki jak i prowadzących zajęcia na tych kierunkach. Wrocław, maj 2010 r.

5 Model programowy Na model programowy komputera składają się jego zasoby pamięciowe, ich dostępność, organizacja logiczna i zastosowanie, przy czym chodzi tu tylko o te rejestry i znaczniki, które występują explicite w liście rozkazów i w związku z tym są dostępne programowo. 2K+ jest komputerem 16-bitowym z rozdzieloną przestrzenią pamięci i portów wejścia-wyjścia, tzn. są osobne rozkazy dotyczące miejsc w pamięci i osobne dotyczące tzw. portów (najczęściej rejestrów w jednostkach sterujących urządzeniami zewnętrznymi). Zgodnie z koncepcją architektury CISC, rozkazy dopuszczają działania na słowach zapisanych w pamięci i na zawartości rejestrów programowych, ale ograniczenie polega na tym, Ŝe rozkazy zawierają najwyŝej jeden adres pamięci (są operacje pamięć - rejestr i rejestr - rejestr, ale nie ma operacji pamięć - pamięć ) Pamięć operacyjna Pamięć główna ma 2 16 = 64k bajtów, wymaga więc 16-bitowego adresu efektywnego z zakresu 0000h - FFFFh. Transfery do i z pamięci odbywają się zawsze całymi słowami 2-bajtowymi, przy czym adres słowa moŝe być dowolny (nie ma wyrównania adresów do parzystych). Słowa dwubajtowe są zapisywane wg zasady Big Endian, co znaczy, Ŝe adres słowa wskazuje na bajt bardziej znaczący, bajt mniej znaczący ma adres o 1 większy (rys. 2.1). Przyjęto numerację bitów w słowie od zera, zaczynając od bitu bardziej znaczącego.

6 6 2. Model programowy x-1 Aaa x x+1 x x+1 xr+2 Bbb Bbb Ccc Ccc Ddd Rys Rozmieszczenie bajtów słowa o adresie x w pamięci 2.2. Porty wejściowe i wyjściowe Przestrzeń wejścia-wyjścia, obsługiwaną wyłącznie rozkazami IN i OUT, stanowi 256 jednobajtowych portów wejściowych i 256 portów wyjściowych. PoniewaŜ 256 = 2 8, więc adres portu (jego numer) jest 8-bitowy. Porty wejściowe i wyjściowe o tym samym adresie nie muszą układowo odpowiadać temu samemu miejscu - argumenty rozkazów IN i OUT, mimo tych samych wartości liczbowych, dotyczą innych rejestrów Rejestry Procesor dysponuje czterema 16-bitowymi rejestrami uniwersalnymi R0, R1, R2 i R3 uŝywanymi zarówno do adresowania pamięci jak i do przechowywania argumentów. Poza tym są trzy rejestry systemowe: licznik rozkazów IP, wskaźnik stosu SP i rejestr stanu PSW. N Z V C T 0 0 IE Rys Słowo stanu PSW Rejestr stanu zawiera cztery znaczniki wyniku operacji: N (bit znakowy), Z (wynik zerowy), V (nadmiar - ustawiany tylko w działaniach dodawania lub odejmowania i wyznaczany według reguł kodu U2), C (przeniesienie) oraz dwa znaczniki sterujące przerwaniami: T (praca krokowa) i IE (maska przerwań).

7 2. Model programowy R0 1 1 R1 2 R Rejestry uniwersalne Porty wejściowe Licznik rozkazów IP R3 0 Wskaźnik stosu SP 1.. N Z V C T IE (PSW) Znaczniki Pamięć główna Porty wyjściowe Rys Zasoby pamięciowe 2K+ Znaczniki są wzajemnie niezaleŝne i tworzą strukturę PSW (rys. 2.2) tylko przy zapisie do pamięci (rozkazem PUPS); w czasie odczytu (rozkazem POPS) poszczególne bity PSW są przesyłane do odpowiednich znaczników. Wszystkie zasoby pamięciowe 2K+ przedstawiono schematycznie na rys. 2.3, na którym nie zaznaczono jedynie dwóch 1-bitowych znaczników RUN i WAIT. Znacznik RUN steruje głównym stanem komputera stop/praca : jeŝeli RUN = 1 wykonywane są kolejne cykle rozkazowe - komputer działa ; RUN = 0 oznacza stan zatrzymania. Przejście do stanu RUN = 1 moŝe nastąpić tylko przez ręczne włączenie (start) komputera. Przejście do stanu RUN = 0 (wyłączenie komputera) następuje programowo, jako efekt wykonania rozkazu Halt. Znacznik WAIT odpowiada za stan program/oczekiwanie : jeŝeli WAIT = 0 wykonywany jest program (kolejne cykle rozkazowe); jeŝeli natomiast WAIT = 1, wówczas cykle rozkazowe nie są wykonywane, ale są przyjmowane przerwania. Przyjęcie jakiegokolwiek przerwania powoduje automatyczne przejście do stanu WAIT = 0, czyli wznowienie wykonywania programu. Po uruchomieniu komputera znacznik WAIT przyjmuje zawsze wartość 0, przejście do stanu WAIT = 1 następuje tylko na skutek wykonania rozkazu Wait. Działanie znaczników RUN i WAIT moŝna prześledzić w opisie formalnym architektury (rozdz. 9) w sekcji Inicjowanie i Cykl rozkazowy.

8

9 Język asemblera Język asemblera 2K+, nazwany Kass, zawiera rozkazy, pseudorozkazy i dyrektywy umoŝliwiając definiowanie stałych oraz pisanie programów i ich alokację w pamięci komputera. Jest to asembler prosty, tzn. nie ma moŝliwości definiowania makrorozkazów Rozkazy Kass udostępnia 43 rozkazy przesłań, wejścia-wyjścia, działań arytmetycznych i logicznych, przesunięć, rozkazy sterujące i zmieniające stan procesora. Składnię wszystkich rozkazów opisano w tab Tabele zawierają postać asemblerową rozkazu, jego nazwę i zwięzły zapis funkcji; precyzyjną definicję podaje opis formalny w notacji ISP (rozdz. 9). Ostatnia kolumna w kaŝdej tabeli wymienia te znaczniki, które są ustawiane przez dany rozkaz. W tabelach przyjęto oznaczenia: r - rejestr (R0, R1, R2 lub R3); src - rejestr, słowo w pamięci lub stała; dst - rejestr lub słowo w pamięci; prt - adres portu we-wy (0-255); adr - adres pamięci (pełny); adr8 - adres pamięci (w zakresie -128, +127); adr10 - adres pamięci (w zakresie -512, +511); M[a] - słowo w pamięci o adresie a; stos - słowo w pamięci o adresie wskazywanym przez SP; przed zapisaniem na stos SP jest zmniejszany o 2, po odczytaniu stosu SP jest zwiększane o 2. Rozkazy przesłań (tab. 3.1), z wyjątkiem POPS, nie zmieniają ustawienia znaczników. Przesłania pomiędzy rejestrami mogą być wykonywane rozkazem ładowania LD Ri,Rj lub rozkazem pamiętania w wersji ST Ri,Rj; tak więc, np. efekt działania rozkazu ld

10 10 3. Język asemblera r1,r3 oraz st r1,r3 jest taki sam. Zapisanie rejestru do pamięci moŝliwe jest tylko rozkazem ST; nie moŝna tym rozkazem wpisać do pamięci stałej - w takiej sytuacji trzeba uŝyć sekwencji: LD ST Ri, #const adr, Ri Przesłania między pamięcią a rejestrami zawsze dotyczą pełnych, 2-bajtowych słów i odbywają się według zasady big endian, co oznacza, Ŝe np. jeŝeli w rejestrze R2 jest słowo w postaci 3FC7, to rozkaz ST 73A5h,R2 umieści pod adresem 73A5 bajt 3F, a pod adresem 73A6 - bajt C7. Podobnie, jeŝeli w pamięci od adresu 4326h są zapisane bajty: 22, CC, 55, 77, to rozkaz LD R3,4327h wpisze do rejestru R3 słowo CC55h. Uwaga: w architekturze x86 (procesory Intel) stosowana jest zasada little endian dająca odwrotne do opisanego uporządkowanie bajtów w pamięci. Tab Rozkazy przesłań LD r,src Ładowanie rejestru r src ST dst,r Zapamiętanie rejestru dst r PUSH r Przesłanie rejestru na stos stos r POP r Pobranie rejestru ze stosu r stos PUPS Przesłanie PSW na stos stos PSW POPS Pobranie PSW ze stosu PSW stos LDSP r Ładowanie wskaźnika stosu SP r Rozkaz LDSP pozwala ustalić wartość wskaźnika stosu, ładując go z dowolnego rejestru uniwersalnego, podobnie jak w powyŝszym przykładzie naleŝy uŝyć jednego z czterech rejestrów jako pośrednika przekazującego wartość: LD Ri, #const LDSP Ri Rozkaz POPS jest jedynym rozkazem umoŝliwiającym programową zmianę znaczników, gdyŝ pobierając słowo z aktualnego wierzchołka stosu ustawia się nowe wartości znaczników: N (bit <0> słowa), Z (bit <1>), V (bit <2>), C (bit <3>), T (bit <4>) i IE (bit <7>), pozostałe bity słowa nie mają znaczenia. Np. chcąc ustawić N=1, Z=0, V=1 i C=1 trzeba utworzyć słowo b = B000h, posłać je na stos, a na koniec wpisać jako nowe PSW: LD R0,#0B000h PUSH R0 POPS

11 3. Język asemblera 11 Rozkazy wejścia-wyjścia (tab. 3.2) równieŝ polegają na przesyłaniu zawartości rejestrów, ale ze względu na to, Ŝe porty są 8-bitowe, ich działanie zostało zdefiniowane tak, jak pokazuje rys W czasie pobierania bajta z portu wejściowego rozkazem IN, zmienione zostają tylko mniej znaczące bity rejestru <8:15>; część bardziej znacząca <0:7> nie ulega zmianie. Rozkazy IN i OUT nie zmieniają ustawienia znaczników. Port wejściowy (8b) >> IPT Rejestr procesora OPT << Port wyjściowy (8b) Rys Działanie rozkazów IN i OUT W trakcie wykonywania operacji OUT zawartość rejestru nie ulega zmianie. Tab Rozkazy wejścia-wyjścia IN r,prt Odczytanie portu wejściowego (IPT) R<8:15> IPT[prt] OUT prt,r Zapisanie do portu wyjściowego (OPT) OPT[prt] R<0:7> Rozkazy arytmetyczne wykonują działania dodawania i odejmowania na słowach 16-bitowych traktowanych jako liczby całkowite w kodzie U2 z zakresu 32768, ; znaczniki są ustawiane stosownie do wyniku działania. Rozkazy ADC i SBB uwzględniają wartość przeniesienia (poŝyczki) ustawioną w poprzednim rozkazie. Jednoargumentowy rozkaz NEG wykonuje uzupełnienie dwójkowe kodu liczby będącej argumentem. Tab Rozkazy arytmetyczne ADD r,src Dodawanie r r + src NZVC SUB r,src Odejmowanie r r src NZVC ADC r,src Dodawanie z przeniesieniem r r + src + C NZVC SBB r,src Odejmowanie z poŝyczką r r src C NZVC NEG r Zmiana znaku liczby r 0 r NZVC Są tylko dwa rozkazy logiczne (tab. 3.4) działające na poszczególnych bitach argumentów: iloczyn logiczny (AND) i uzupełnienie logiczne (jedynkowe, NOT). Rozkazy te ustawiają tylko znaczniki N i Z.

12 12 3. Język asemblera Tab Rozkazy logiczne AND r,src Iloczyn logiczny (bitowy) r r and src NZ CPL r Uzupełnienie logiczne (bitowe) r not r NZ Działanie rozkazu AND uŝywanego często do wycinania fragmentów słowa, i róŝnice w działaniu rozkazów NEG i CPL pokazano w przykładzie na rys Działanie Zawartość dwójkowa R0 Postać szesnastkowa R DAE4 AND R0,#0FF0H AE0 NEG R C CPL R B Rys Przykład działania rozkazów AND, NEG i CPL Przesunięcia (tab. 3.5) dotyczą tylko zawartości wskazanego rejestru i odbywają się o jedną pozycję w lewo lub w prawo. Po przesunięciu, znacznik C przyjmuje wartość bitu wysuniętego poza rejestr. Przy przesunięciach naturalnych na zwolnioną pozycję wstawiane jest 0. Przy przesunięciach cyklicznych (rotacjach) na zwolnioną pozycję w rejestrze wchodzi bit wysunięty. Przy przesunięciu arytmetycznym w prawo bit znakowy (skrajny lewy) jest powielany. Rozkaz SWAP zamienia miejscami bajty w słowie. SHR r SHL r ROR r ROL r SWAP r ASHR r Przesunięcie naturalne w prawo Przesunięcie naturalne w lewo Przesunięcie cykliczne w prawo Przesunięcie cykliczne w lewo Zamiana bajtów Przesunięcie arytmetyczne w prawo Tab Rozkazy przesunięć r<0> 0; r<1:15> r<0:14>; C r<15> C r<0>; r<0:14> r<1:15>; r<15> 0; r<0> r<15>; C r<15>; r<1:15> r<0:14> C r<0>; r<15> r<0>; r<0:14> r<1:15>; r<0:7> r<8:15>; r<8:15> r<0:7>; r<0> r<0>; r<1:15> r<0:14>; C r<15> C C C C C

13 3. Język asemblera 13 Przykłady działania rozkazów przesunięć pokazano na rys Działanie Zawartość dwójkowa R0 C Postać szesnastkowa R ? DAE4 SHL R B5C8 ROL R B5C9 ASHR R ED72 Rys Przykład działania rozkazów przesunięć Rozkazy sterujące przebieg programu zmieniają zawartość licznika rozkazów IP (tab. 3.6) powodując przejście do wskazanego rozkazu, czyli skok w programie. W asemblerze Kass jest jeden skok bezwarunkowy JMP i cztery skoki warunkowe BZ, BC, BM, BO. Skok warunkowy bada znaczniki N, Z, V lub C i gdy odpowiedni znacznik jest ustawiony na 1 następuje zmiana IP, czyli skok jest efektywny; w przeciwnym przypadku nie ma skoku (tak jak przy rozkazie nic nie rób ) i jest wykonywany następny rozkaz zapisany w programie, czyli skok jest nieefektywny. Skok wyliczany CNT inkrementuje wskazany rejestr i następnie, jeŝeli ten rejestr jest wyzerowany, przenosi sterowanie do adresu adr. Skok taki nadaje się do organizowania pętli programowych, w takich przypadkach rejestr powinien być inicjalizowany liczbą ujemną, zwiększaną po kaŝdym wykonaniu aŝ do osiągnięcia zera. Cztery rozkazy pułapek programowych TRAPi (i=0, 1, 2 lub 3) działają jak przerwanie zewnętrzne o numerze i; sterowanie jest przenoszone do adresu określonego w tablicy wektorów umieszczonej w początkowym obszarze adresów. Efekt rozkazu TRAPi jest taki jak skoku pośredniego - poprzez słowo w pamięci pod adresem 2*i. Rozkazy takie są zwykle stosowane do komunikacji z systemem operacyjnym, wywołując pewne istotne funkcje tego systemu. Rozkaz CMP sam nie powoduje zmiany sekwencji rozkazów, natomiast jest bardzo wygodny do organizacji rozgałęzień w programie. Porównuje on argumenty przez ich odjęcie bez zapisywania wyniku, natomiast ustawia znaczniki N, Z, V i C, badane przez następujące potem rozkazy warunkowe.

14 14 3. Język asemblera Tab Rozkazy sterujące JMP adr Skok bezwarunkowy IP adr BZ adr8 Skok gdy zero (Z=1) => IP adr BC adr8 Skok gdy przeniesienie (C=1) => IP adr BM adr8 Skok gdy minus (N=1) => IP adr BO adr8 Skok gdy nadmiar (V=1) => IP adr CALL adr Wywołanie podprogramu stos IP; next IP adr RET Powrót z podprogramu IP stos RETI Powrót z przerwania IP, PSW stos NZVC CNT r,adr8 Skok wyliczany r r+1; next (r=0) => IP adr NZC TRAPi Pułapka stos PSW, IP; next IP M[2*i] CMP r,src Porównanie r src NZVC Powroty z podprogramu (RET) i programu obsługi przerwania (RETI) odtwarzają odpowiednie rejestry przechowywane na stosie w tym licznik rozkazów, czyli zmieniają sekwencję rozkazów (skok). Niewielka grupa prostych w działaniu rozkazów zmienia znaczniki, co - w kilku przypadkach - skutkuje istotnymi zmianami stan systemu. Takim rozkazem jest HALT, który zatrzymuje wykonywanie cyklu rozkazowego i uruchomienie procesora wymaga interwencji operatora. WAIT przeprowadza procesor w stan oczekiwania - rozkazy nie są wykonywane, ale są przyjmowane przerwania. Rozkazy EI i DI sterują znacznikiem IE (Interrupt Enable) zezwalającym na przyjmowanie sygnałów przerwań (IE = 1) lub maskującym przerwania (IE = 0). Osobliwością jest rozkaz pusty NOP (ang. No operation), który nie powoduje Ŝadnej akcji; bywa on uŝywany np. w programach uruchomieniowych. Tab Rozkazy zmiany stanu EI Otwarcie przerwań IE 1 DI Zamknięcie przerwań IE 0 CPC Uzupełnienie C C not C C CPZ Uzupełnienie Z Z not Z Z NOP Nic nie rób HALT Zatrzymanie cyklu RUN 0 WAIT Oczekiwanie przerwania WAIT 1 Stałe liczbowe mogą być podane w postaci dziesiętnej, dwójkowej, szesnastkowej albo w postaci nazwy symbolicznej; tym stałym przypisuje się wartości całkowite z zakresu (0, 65535). W zapisie dwójkowym liczby muszą być zakończone znakiem b lub B,

15 3. Język asemblera 15 w zapisie szesnastkowym liczby muszą być zakończone znakiem h lub H, w przypadku braku oznaczenia przyjmuje się domyślnie, Ŝe liczby są w systemie dziesiętnym. Ze względu na konieczność odróŝnienia stałych szesnastkowych od nazw, asembler wymaga aby kaŝda stała, bez względu na system liczenia w jakim jest zapisana zaczynała się od cyfry dziesiętnej (0... 9). Z tego powodu jeŝeli stała szesnastkowa ma pierwszą cyfrę A, B, C, D, E lub F, to naleŝy ją poprzedzić cyfrą 0; np. liczbę A279h trzeba zapisywać jako 0A279h. Etykiety i nazwy mogą mieć najwyŝej 8 znaków i muszą się zaczynać się od litery; po etykiecie musi być dwukropek (:), małe i duŝe litery nie są rozróŝniane. Argumenty rozkazów są albo podane bezpośrednio (tzw. adresacja natychmiastowa), albo są umieszczone w pamięci i wówczas podawany jest ich adres. Argument bezpośredni - zapisany jako liczba w systemie dziesiętnym, dwójkowym lub szesnastkowym albo w postaci symbolicznej (jako nazwa) - w zapisie asemblerowym musi być poprzedzony znakiem "hash" (#). JeŜeli argument jest w pamięci, to w rozkazie podawany jest jego adres - w postaci liczbowej lub, najczęściej, w postaci symbolicznej - jako etykieta. MoŜliwe jest teŝ adresowanie pośrednie: adres argumentu znajduje się w jednym z rejestrów R0... R3, a w rozkazie podaje się jedynie symbol tego rejestru poprzedzony znakiem "at" (@). W polu adresu są dopuszczalne tylko dwa działania na adresach: dodawanie (+) i odejmowanie ( ); przykłady uŝycia róŝnych sposobów adresowania argumentów zawarto w tab Adresacja natychmiastowa (argument bezpośredni) Tab Przykłady adresowania argumentów Adresacja bezpośrednia Adresacja pośrednia LD R2, #24A7H LD R1, BUBU ADD ADD R0, #396 ADD R2, WYNIK+3 LD AND R3, #WS5K BC TAM 3.2. Pseudorozkazy W asemblerze Kass są równieŝ dostępne tzw. pseudorozkazy (rozkazy syntetyczne), które ze względu na czytelną składnię ułatwiają pisanie programów, a w czasie asemblacji są tłumaczone na rozkazy języka maszynowego (tab.3.9). Psudorozkazy nie mają swoich kodów (specyficznych słów rozkazowych), stanowią jedynie sposób skróconego zapisu programu w języku asemblera.

16 16 3. Język asemblera Tab Pseudorozkazy asemblera Kass Postać asemblerowa Funkcja Sekwencja rozkazów MOV rd, rs Kopiowanie rejestru LD rd, rs INC r Zwiększenie o 1 ADD r, #1 DEC r Zmniejszenie o 1 SUB r, #1 INC2 r Zwiększenie o 2 ADD r, #2 DEC2 r Zmniejszenie o 2 SUB r, #2 CLR r Zerowanie rejestru LD r, #0 LDN r, #D Ładowanie stałej ze zmianą znaku ( Ładuj ujemnie ) BNZ adr10 Skok przy Z=0 ( nie zero ) BNC adr10 Skok przy C=0 ( brak przeniesienia ) LD NEG CPZ BZ CPC BC r,#d r adr10 adr Dyrektywy Dyrektywy asemblera sterują przebiegiem asemblacji, rozmieszczają kod w pamięci i nadają wartości początkowe zmiennym; są one interpretowane w czasie translacji, a nie w czasie wykonywania programu przez procesor. W języku Kass jest sześć dyrektyw, których składnię i znaczenie opisano w tab. 3.10; nawiasy prostokątne oznaczają elementy opcjonalne.

17 3. Język asemblera 17 Składnia Tab Dyrektywy asemblera Kass Opis nazwa.equ stała Nadanie nazwy stałej [etykieta:].org adres [etykieta:].db lista stałych [etykieta:].dw lista stałych [etykieta:].blk stała.end etykieta Ustalenie adresu początkowego następującej dalej sekcji programu Nadanie wartości kolejnym bajtom Nadanie wartości kolejnym słowom Zarezerwowanie bloku bajtów Koniec tekstu programu i wskazanie etykiety startowej Przyjęto, Ŝe mnemoniki dyrektyw dla wyróŝnienia w tekście programu i ułatwienia asemblacji, zaczynają się znakiem kropki (.). Po mnemoniku następują wymagane parametry. Stałe naleŝące do listy muszą być oddzielone przecinkami a ich wartości muszą być mniejsze od 256 w dyrektywie DB (define byte) i w dyrektywie DW (define word). Etykiety występujące opcjonalnie przed dyrektywami stają się symbolicznymi nazwami adresów odpowiednich pól. Etykieta w polu parametrów dyrektywy END wskazuje na adres pierwszego rozkazu, jaki będzie wykonany po uruchomieniu programu. W dyrektywie.db jako argument moŝe wystąpić łańcuch znaków ASCII i wówczas umieszczany jest on w apostrofach ('); np. dyrektywa kom_5:.db 'Koniec zakresu!',0,0 umieści w pamięci, od adresu odpowiadającego etykiecie kom_5, 15 bajtów będących kodami ASCII odpowiednich znaków: 4B, 6F, 6E, 69, 65, 63, 20, 7A, 61, 6B, 72, 65, 73, 75, 21, oraz dwa bajty zerowe 00, 00. Definicja nazwy dyrektywą.equ (equal) musi poprzedzać pierwsze uŝycie tej nazwy; np. jeŝeli fragment programu ma postać: wskp.equ 7 adr_we.equ 35h... add r1,#wskp... in r0,adr_we... to rozkaz add r1,#wskp działa identycznie jak add r1,#7 a rozkaz in r0,adr_we jak in r0,35h.

18 18 3. Język asemblera Dyrektywa.ORG (origin) pozwala na alokację kodu programu w pamięci, musi więc być uŝywana przez programistę przy asemblacji programów w przypadku braku systemu operacyjnego. Np. sekwencja.org 3200h tutu:.dw 2ac6h, 258 lala:.db 33h,33, ab powoduje umieszczenie w pamięci od adresu 3200 ośmiu bajtów: 2A, C6, 01, 02, 33, 21, 61, 62 oraz nadanie etykiecie TUTU wartości 3200h, a etykiecie LALA wartości 3204 (rys. 3.4). Adres (hex) Zawartość (hex) Komentarz A TUTU = adres = 3200h; pierwsze słowo 2AC6h zajmuje 2 bajty 2A, C C drugie słowo 258 = 0102h zajmuje 2 bajty 01, LALA = adres = 3204h; pierwszy bajt 33h drugi bajt 33 = 21h trzeci bajt a = 61h (kod ASCII) czwarty bajt b = 62h (kod ASCII) Rys Przykład działania dyrektyw.org,.dw i.db Dyrektywa.BLK (block) jedynie rezerwuje określoną liczbę kolejnych bajtów, ale nie nadaje im Ŝadnych wartości początkowych (mogą być przypadkowe). Np. sekwencja bibi:.dw 0,0 caca:.blk 4 dada:.db.org 5500h Abba przygotuje fragment pamięci jak na rys. 3.5.

19 3. Język asemblera 19 Nawa adresu (etykieta) Adres (hex) Zawartość (hex) BIBI CACA 5504?? 5505?? 5506?? 5507?? DADA A B 61 Rys Przykład działania dyrektywy.blk Dyrektywa.END występuje na końcu tekstu programu i oznacza, Ŝe jeŝeli dalej następuje jakiś fragment - nawet poprawny składniowo - to nie jest on tłumaczony. Dyrektywa.END nie moŝe być poprzedzona Ŝadną etykietą (nie moŝna się do tej dyrektywy odwoływać, gdyŝ nie oznacza ona Ŝadnego adresu pamięci). Etykieta umieszczona jako argument tej dyrektywy jest konieczna do uruchomienia przetłumaczonego (zasemblowanego) programu, gdyŝ wskazuje ona rozkaz, od którego naleŝy rozpocząć wykonywanie programu (zob. przykł. 6.7 w rozdz. 6). W omawianym dalej emulatorze (rozdz. 7) brak etykiety startowej powoduje ustawienie licznika rozkazów (start programu) na adres 0000h.

20

21 Architektura Podstawowym atrybutem architektury kaŝdego komputera (Instruction-Set Architecture) jest lista rozkazów opisana z dokładnością do jej reprezentacji binarnej. PoniewaŜ funkcje wszystkich rozkazów 2K+ są opisane w rozdz. 3, poświęconym asemblerowi i w rozdz. 9, zawierającym szczegółowy opis formalny, tutaj podane zostaną tylko zasady kodowania rozkazów, budowa słowa rozkazowego i organizacja systemu przerwań Kodowanie rozkazów 4 4 (a) f op (b) f op2 rd (c) f op2 rd ioa/dsp (d) f cnd dsp (e) f m=00 rd dsp (f) f m=11 rd i res rs (g) f m=01 rd adr (h) f m=10 rd imm Rys Formaty rozkazów 2K+

22 22 4. Architektura Rozkazy 2K+ są kodowane w słowie rozkazowym, które moŝe mieć jeden z ośmiu formatów i moŝe zajmować 1bajt (formaty a i b), 2 bajty (formaty c, d, e i f) lub 3 bajty (formaty g i h). Na rys. 4.1 pokazano wszystkie formaty i zaznaczono nazwy poszczególnych pól stosowane w dalszym opisie; podano teŝ liczoną w bitach wielkość poszczególnych pól. Pięciobitowe pole res w formacie (f) nie jest dekodowane i moŝe mieć dowolną zawartość. Format słowa rozkazowego jest dostosowany do funkcji kodowanych w danym rozkazie, a szczególnie od liczby i rodzaju argumentów operacji. Osobne formaty przyjęto dla rozkazów: bezadresowych (format a); z argumentem w rejestrze (format b); skoków warunkowych (format d); wejścia-wyjścia (format c); z adresem bezpośrednim (format g); z adresem względnym (format e); z argumentem bezpośrednim (format h); z adresem pośrednim w rejestrze (format f). Podstawowy kod operacyjny jest zapisany w 4-bitowym polu f (bity 0..3 kaŝdego rozkazu); określa on nie tylko typ realizowanej operacji, ale teŝ implikuje format słowa rozkazowego. Dla większości rozkazów rozszerzenie tego kodu jest w polach op4, op2 i cnd. Dwubitowe pola rd i rs słuŝą do kodowania numeru rejestru, biorącego udział w operacji (rs - rejestr źródłowy, rd - rejestr docelowy). Pole cnd występuje tylko w rozkazach skoków warunkowych i koduje jeden z czterech znaczników badanych w danym rozkazie wg reguły: 00 - znacznik Z (rozkaz BZ), 01 - znacznik C (rozkaz BC), 10 - znacznik N (rozkaz BM) i 11 - znacznik V (rozkaz BO). W rozkazach tych adres docelowy skoku jest obliczany względem aktualnego stanu licznika rozkazów. W słowie rozkazowym na zakodowanie adresu względnego (tzw. przesunięcia, ang. displacement) przeznaczono jedynie 10 bitów w polu dsp10, co daje zasięg skoków warunkowych od do bajtów, gdyŝ dsp10 jest traktowane jako liczba w kodzie U2: adres = IP + dsp10 Dzięki takiemu kodowaniu (w formacie (d)) rozkazy skoków warunkowych mieszczą się w słowie 2-bajtowym. 2-bajtowy format (c) mają teŝ rozkazy wejścia i wyjścia (IN i OUT), w których kod operacyjny zajmuje 6 bitów (pola f i op2), 2 bity kodują rejestr (pole rd) a 8 bitów pola ioa przeznaczono na adres portu. Taki sam podział słowa jest w rozkazie skoku wyliczanego CNT, z tym, Ŝe 8-bitowe pole dsp8 słuŝy jako adres względny tego skoku, co daje zasięg od do +127 bajtów od bieŝącego rozkazu (dokładnie: od następnego rozkazu, gdyŝ w czasie wykonywania rozkazu licznik rozkazów IP jest juŝ zaktualizowany i wskazuje rozkaz następny).

23 4. Architektura 23 Tab Kodowanie rozkazów w 2K+ Bity słowa rozkazowego Kod Format Bity słowa rozkazowego Kod Format NOP (a) rd PUSH (b) 01 HALT (a) 01 rd POP (b) 10 WAIT (a) 10 rd LDSP (b) 11 RET (a) RETI (a) 0100 m rd LD (e)(f)(g)(h) 01 EI (a) 0101 m rd ST (e)(f)(g) 10 DI (a) 0110 m rd ADD (e)(f)(g)(h) 11 CPC (a) 0111 m rd ADC (e)(f)(g)(h) CPZ (a) BZ (d) 01 PUPS (a) 01 BC (d) 10 POPS (a) 10 BM (d) BO (d) TRAP0 (a) 1001 m rd SUB (e)(f)(g)(h) 01 TRAP1 (a) 1010 m rd SBB (e)(f)(g)(h) 10 TRAP2 (a) 1011 m rd CMP (e)(f)(g)(h) 11 TRAP3 (a) 1100 m rd AND (e)(f)(g)(h) rd NEG (b) 1101 m rd JMP (e)(f)(g) 01 rd CPL (b) 1110 m rd CALL (e)(f)(g) 10 rd SWAP (b) rd ASHR (b) 01 IN (c) rd SHR (b) 10 OUT (c) 01 rd SHL (b) 11 rd CNT (c) 10 rd ROR (b) 11 rd ROL (b)

24 24 4. Architektura Najbardziej złoŝony charakter ma kodowanie dziesięciu tzw. rozkazów adresowych, to jest tych, które mogą wskazywać argument w pamięci operacyjnej; są to rozkazy LD, ST, ADD, ADC, SUB, SBB, CMP, AND, JMP i CALL (f = 4..7 i 9..E). W tych rozkazach sposób wyznaczania adresu jest zakodowany w 2-bitowym polu m i w zaleŝności od zawartości tego pola przyjmowany jest format (e), (f), (g) lub (h): m = 00; adres efektywny = IP + dsp8 m = 01; adres efektywny = adr16 m = 10; argument jest zawarty w rozkazie (argument bezpośredni imm) m = 11; adres zaleŝny od bitu i: gdy i = 1, wówczas adres argumentu jest w pamięci M[rs] (adresacja pośrednia poprzez rejestr rs); gdy i = 0, wówczas argumentem jest bezpośrednio zawartość rejestru rs. Sposób adresacji z argumentem bezpośrednim (m = 10, format (h)) nie ma zastosowania do rozkazów ST, JMP i CALL; w tych rozkazach zawsze musi być określony adres pamięci. Z tego samego powodu nie moŝe pojawić się format (f) z bitem i = 0. W tab pokazano kody wszystkich rozkazów 2K+; jak widać jedyne rezerwy dla ewentualnej rozbudowy listy rozkazów stanowią niewykorzystane kody ins<0:7> = , ins<0:7> = xx oraz ins<0:7> = xx Przykłady asemblacji i deasemblacji Znając kodowanie rozkazów (tab. 4.1) i strukturę słów rozkazowych (rys. 4.1) moŝna utworzyć obraz binarny programu napisanego w języku asemblera. Tę operację tłumaczenia z języka asemblera na język maszynowy, czyli kod binarny, który moŝe juŝ być interpretowany sprzętowo, wykonuje program zwany asemblerem. W praktyce proces translacji bywa wielostopniowy: asembler (Assembler) tworzy postać obiektową modułów programu, następnie program łączący (Linker) scala wszystkie moduły programu, np. równieŝ moduły biblioteczne i dopiero program ładujący (Loader) umieszcza kod programu w pamięci operacyjnej komputera. Proces asemblacji polega na analizie zapisu kolejnych rozkazów w programie i składaniu (stąd nazwa) elementów kodu tego rozkazu. Dla rozkazów bezadresowych jest to bardzo proste, np. rozkaz CPC ma 1-bajtowy format (a) i wszystkie bity są określone w tabeli kodów b (07h). Podobnie jest w przypadku rozkazów z jednym argumentem w rejestrze, np. SWAP R3 ma format (b), w którym 6 bitów kodu operacji to , a dwa pozostałe bity wskazują numer uŝytego rejestru (11); ostatecznie kod tego rozkazu jest b (1Bh). Rozkazy wejścia-wyjścia składają się z trzech elementów: 6-bitowego kodu operacyjnego (pola f i op2), 2-bitowego numeru rejestru i 8-bitowego numeru portu; np. rozkaz IN R1,53h ma kod operacyjny , nr rejestru 01 i adres portu ; cały rozkaz jest więc kodowany na 2 bajtach jako b (F5 53h).

25 4. Architektura 25 W rozkazach adresowych z adresem względnym (rozkazy w formacie (e), wszystkie skoki warunkowe i skok wyliczany) kodowanie rozkazu wymaga znajomości adresu, pod którym dany rozkaz jest umieszczony. JeŜeli, np. rozkaz BC ALEF jest w pamięci pod adresem 3A9Ch, a wartość etykiety ALEF jest 39B7h, to dla obliczenia adresu względnego trzeba odjąć od adresu efektywnego wartość IP, wskazującego następny rozkaz, czyli 3A9E = 3A9C + 2 (rozkaz BC jest 2-bajtowy): dsp10 = adres IP = 39B7 3A9E = FF19 Uzyskany wynik (w kodzie U2) musi być zapisany na 10 bitach, czyli dsp10 = = , bo b = b Ostatecznie kod BC ALEF będzie miał postać binarną , czyli szesnastkowo. Przy adresacji względnej moŝe się okazać, Ŝe wyliczone przesunięcie (displacement) jest większe niŝ zakres liczb zapisywanych na 8 (dsp8) lub 10 (dsp10) bitach. W takim przypadku rozkazy skoków warunkowych nie mogą być zakodowane i jest pokazywany błąd kompilacji, natomiast w przypadku rozkazów LD, ST, ADD, ADC, SUB, SBB, CMP, AND, JMP lub CALL asembler automatycznie stosuje mniej oszczędny format (g) z 16-bitowym adresem bezwzględnym. Np. rozkaz SUB R3,BOBOS umieszczony pod adresem B6AFh z argumentem pod etykietą BOBOS = AC55h będzie kodowany na 3 bajtach w formacie (g), dla którego pole m = 01: b = 97 AC 55h Rozkaz z argumentem bezpośrednim ma zawsze format (h); np. AND r1,#43c7h ma kod f = 1100 m = 10, rd = 01 oraz imm = 43C7h = , ostatecznie kod tego rozkazu jest b = C9 43 C7h W formacie (f) kodowane są rozkazy z dwoma argumentami w rejestrach lub z argumentem adresowanym poprzez rejestr (adresacja pośrednia). Np. rozkaz LD R2,@R3 ma pole f = 0100, m = 11, rd = 10, rs = 11 oraz i = 1, pozostałym 5 bitom przypisywana jest wartość 0: b = 4E 83h Podobnie wyglądający, ale istotnie róŝniący się działaniem rozkaz LD R2,R3 ma kod róŝniący się bitem i = 0: b = 4E 03h Niekiedy potrzebne jest uzyskanie z kodu programu jego zapisu symbolicznego, zbli- Ŝonego do postaci asemblerowej; taka moŝliwość jest dostępna np. w programach uruchomieniowych tzw. debuggerach i nazywa się deasemblacją (lub disasemblacją). W tym przypadku postępowanie jest odwrotne niŝ przy kodowaniu i w pewnym sensie symuluje działanie układu sterującego w procesorze, który teŝ musi rozpoznać operację do wyko-

26 26 4. Architektura nania i argumenty bądź adresy. Zwykle deasemblacja zapisuje symbolicznie tylko mnemoniki rozkazów, nazwy rejestrów i sposoby adresowania; same adresy (jak teŝ stałe) są zapisywane w postaci szesnastkowej. Deasemblacja zaczyna się analizy pierwszych 4 bitów słowa rozkazowego, gdyŝ one określają typ rozkazu i jego długość. Np. sekwencja bajtów 08 2E 9B 5A 27 traktowana jako fragment kodu programu zaczyna sie od bajta 08h, czyli , więc jest to rozkaz w 1-bajtowym formacie (a); kolejne 4 bity pokazują, Ŝe jest to rozkaz CPZ. Następny rozkaz ma pierwszy bajt 2Eh, czyli , co równieŝ wskazuje na rozkaz 1-bajtowy, ale w formacie (b), dokładnie: ROL R2. Kolejny rozkaz to 9Bh, czyli Kod 1001 jest kodem operacyjnym rozkazu SUB, który moŝe być w formacie (e), (f), (g) lub (h). Następne 2 bity (pole m = 10) określają, Ŝe to 3-bajtowy format (h) i ostatnie 2 bajty zawierają argument bezpośredni; jest to więc rozkaz SUB R3,#5A27. Ostatecznie ciąg 08 2E 9B 5A 27 jest kodem programu CPZ ROL SUB R2 R3,#5A27 W podanych przykładach kod moŝna zdeasemblować nie znając jego połoŝenia w pamięci; nie jest to moŝliwe, jeŝeli w rozkazach występują adresy względne. Np. jeŝeli pod adresem 4AB7h jest umieszczony kod 62 3A 5C..., to dekodując kod operacyjny (6h) 0110 okazuje się, Ŝe jest to rozkaz ADD, a kolejne 2 bity wskazują na tryb adresacji m = 00 (rozkaz 2-bajtowy z adresacją względem licznika rozkazów). 8-bitowe przesunięcie zapisane w drugim bajcie ma wartość równą 3Ah (liczba dodatnia w kodzie U2) i trzeba ją dodać do zaktualizowanego licznika rozkazów IP = 4AB7 + 2 = 4AB9h; adres docelowy wynosi więc adres = IP + dsp8 = 4AB A = 4AF3 MoŜna teraz złoŝyć cały rozkaz w postaci jako ADD R2,4AF3. Ostatni przykład pokazuje, Ŝe postać zdeasemblowanego programu zaleŝy od adresu przyjętego za początek pierwszego rozkazu. Na rys. 4.2 pokazano przykład deasemblacji pewnego kodu - najpierw zaczynając od adresu 201Ah, a następnie tego samego kodu zaczynając od adresu 201Bh. W drugim przypadku pierwsze dwa rozkazy SHR R0 i NOP są zdeasemblowanymi fragmentami rozkazu LD R0,#2000. Postaci kodu pokazane na rys. 4.2 pochodzą z emulatora omówionego w rozdz. 7.

27 4. Architektura System przerwań Rys Przykłady deasemblacji w emulatorze 2K+ W 2K+ jest wektorowy system przerwań obsługujący 16 przerwań zewnętrznych i wyjątków. Procesor otrzymuje sygnał zgłoszenia int wraz z 4-bitowym numerem (identyfikatorem) in<0:3>. JeŜeli bit IE w słowie stanu ma wartość 1, wówczas przerwanie jest przyjmowane, w przeciwnym przypadku zgłoszenie jest ignorowane. Przyjęcie zgłoszenia polega na zapisaniu na stosie kolejno dwóch słów - PSW i IP, a następnie zablokowaniu przerwań zewnętrznych (IE 0) i wyjątku pracy krokowej (T 0). Przy tak zmienionym słowie stanu, nowa zawartość licznika rozkazów jest ładowana z tablicy wektorów przerwań umieszczonej w obszarze pierwszych 32 adresów pamięci głównej. KaŜda 2-bajtowa pozycja tablicy wektorów przerwań (tab. 4.2) zawiera adres pierwszego rozkazu programu obsługi odpowiedniego przerwania. Numer przerwania jest odwzorowany w adres tablicy przez przesunięcie o jedną pozycję w lewo: IP M[2*in]. Np. zgłoszenie przerwania nr 7 (dwójkowo 0111) wywoła program obsługi zaczynający się od adresu umieszczonego w tablicy wektorów przerwań pod adresem 14 (dwójkowo 1110, szesnastkowo E). Zgłoszenia 0..3 są zarezerwowane dla pułapek programowych TRAPi. Wykonanie rozkazu TRAPi moŝna traktować jako symulację przerwania o numerze i. W rzeczywistych systemach komputerowych tego typu rozkazy są wygodnym sposobem komunikacji programu uŝytkownika z systemem operacyjnym; taką rolę spełniają np. tzw. funkcje BIOS wywoływane rozkazami INTi w procesorach o architekturze i86.

28 28 4. Architektura Zgłoszenie in = 4 przypisano do obsługi wyjątku T. Ustawienie bitu T = 1 w słowie stanu powoduje przerwanie po wykonaniu kaŝdego rozkazu, co umoŝliwia śledzenie (trace) programu krok po kroku. "Praca krokowa" bywa stosowana w systemach uruchomieniowych, tzw. debuggerach, do wyszukiwania błędów w programach. Zgłoszenie in = 5 obsługuje wyjątek M (błąd adresowania). Wyjątek M jest zgłaszany przez układ sterujący po zdekodowaniu m=10 w rozkazach ST (f=0101), JMP (f=1101) lub CALL (f=1110); w tych trzech rozkazach adresacja natychmiastowa, kodowana w 2-bitowym polu m jako 10, jest niedopuszczalna. Pozostałe dziesięć zgłoszeń od in = 6 do in = 15 pozostawiono dla sygnałów przerwań sprzętowych (zewnętrznych). Obsługa tych przerwań zaleŝy od przypisanych im konkretnych urządzeń i zdarzeń w tych urządzeniach i jest częścią systemu operacyjnego. Tab Tablica wektorów przerwań Adres in Program obsługi Rodzaj 0000h 0000 TRAP 0 Rozkaz 0002h 0001 TRAP 1 Rozkaz 0004h 0010 TRAP 2 Rozkaz 0006h 0011 TRAP 3 Rozkaz 0008h 0100 Praca krokowa (T) Wyjątek 00Ah 0101 Błąd dresu (M) Wyjątek 000Ch 0110 int 6 Przerwanie sprzętowe Eh 1111 int 15 Przerwanie sprzętowe

29 Struktura 5.1. Struktura jednoszynowa Na rys. 5.2 pokazano jedną z moŝliwych implementacji architektury 2K+ w postaci tzw. struktury jednoszynowej. Ten typ struktury polega na dołączeniu wszystkich rejestrów i innych bloków funkcjonalnych procesora do jednej, dwukierunkowej szyny danych (toru przesyłowego, magistrali). Szyna ma 16 linii bitowych tak, aby mogła przesyłać jednocześnie całe 16-bitowe słowo. KaŜdy blok funkcjonalny moŝe być nadajnikiem informacji podstawiając słowo na magistralę i kaŝdy moŝe być odbiornikiem informacji z magistrali. Układ sterujący powinien zapewnić, aby zawsze był aktywny tylko jeden nadajnik, natomiast ta sama informacja moŝe być jednocześnie odbierana przez więcej niŝ jeden odbiornik. Przesłania między blokami odbywają się zawsze za pośrednictwem szyny przez aktywację odpowiednich sygnałów bramkujących, które sterują mikrooperacjami zapisu na szynę i sygnałów odczytu z szyny. Np. przesłanie z BLA do BLC (rys. 5.1) nastąpi, gdy będą aktywne sygnały fbla i tblc, natomiast przesłanie z BLC jednocześnie do BLA i BLB wymaga aktywacji sygnałów fblc, tbla i tblb. Rysunek 5.1. Zasada komunikacji poprzez szynę Bramki fblc, tbla i tblb są aktywne ( otwarte ), co skutkuje przesłaniem słowa z BLC do BLA i BLB. Schemat z rys. 5.2 pokazuje strukturę logiczną na poziomie rejestrowym (register transfer level), na którym pokazane są wszystkie rejestry i bloki funkcjonalne bez szczegó-

30 30 5. Struktura łów realizacji logicznej tych bloków. Nie pokazano teŝ struktury układu sterującego, zakładając, Ŝe musi on realizować sekwencje sygnałów konieczne do wykonania odpowiednich przesłań wymaganych w cyklu kaŝdego rozkazu (zob. pkt. 5.3). wrm rdm tmb wait ss int M Adresator Układ sterowania inc1ip inc2ip sygnały sterujące mikrooperacje IE IR IP AR MB T sie zie fmb tar tip fip fadr tir tsp fsp SP ta2 inc2sp dec2s tr fr R0 R1 R2 R3 wadr radr tain add... shr fain AIN ta1 ALU N Z V C szyna <0:15> faout AOUT <8:15> out Porty we-wy in Rys Struktura 2K+ <0:7> IR<7:15>

31 5. Struktura 31 NajwaŜniejsze bloki funkcjonalne komputera 2K+ to: - pamięć operacyjna (M); - pamięć lokalna (zestaw rejestrów uniwersalnych R0...R3); - porty wejścia-wyjścia; - jednostka arytmetyczno-logiczna (ALU); - układ sterowania. Pamięć operacyjna (rys. 5.3) ma 64 kbajty (2 16 bajtów) wymaga więc adresu 16-bitowego, który musi być z zewnątrz (z szyny) podstawiony do rejestru AR. W pamięci są realizowane dwie mikrooperacje: - aktywny sygnał wrm powoduje zapis słowa z rejestru MB do pamięci pod adres wskazany w AR; - aktywny sygnał rdm powoduje odczyt zaadresowanego słowa z pamięci do rejestru MB. I zapis, i odczyt dotyczą zawsze 16-bitowego słowa (dwóch kolejnych bajtów) według zasady big-endian. Np. jeŝeli w rejestrze MB jest słowo o postaci szesnastkowej ABCDh, a w rejestrze AR liczba p, to mikrooperacja wrm spowoduje zapisanie ABh w bajcie o adresie p oraz CDh w bajcie o adresie p+1. wrm rdm M AR MB Rys Struktura pamięci operacyjnej AR - rejestr adresu, MB - rejestr danych. Pamięć lokalną w 2K+ tworzą cztery 16-bitowe rejestry R0, R1, R2 i R3 (rys. 5.4). Są one dołączone do szyny przez multiplekser wejściowy, sterowany 2-bitowym sygnałem wadr i demultiplekser wyjściowy sterowany 2-bitowym sygnałem radr. Taka konstrukcja umoŝliwia zarówno przy zapisie jak i przy odczycie wybranie tylko jednego z czterech rejestrów. Np. ustawienie wadr=2 i tr powoduje wpisanie słowa z szyny do rejestru R2, radr=0 i fr podstawia zawartość R0 na szynę, przy czym R0 nie jest zerowany.

32 32 5. Struktura tr fr R0 R1 R2 R3 wadr radr Rys Struktura pamięci lokalnej Wejścia wybierające: wadr - numer rejestru, do którego następuje zapis słowa z szyny; radr - numer rejestru, którego zawartość jest podstawiana na szynę, tr, fr - sygnały wykonawcze zapisu i odczytu. Porty wejścia-wyjścia są identyfikowane jako 512 adresów (256 adresów dla mikrooperacji in oraz 256 adresów dla mikrooperacji out); 8-bitowe rejestry, których te adresy dotyczą mogą być fizycznie zlokalizowane poza procesorem, np. w układach sterujących urządzeń zewnętrznych. Porty wyjściowe są dołączone przez demultiplekser aktywowany sygnałem out, do ośmiu bardziej znaczących linii magistrali <0:7>; porty wejściowe mogą podstawiać swoją zawartość na osiem mniej znaczących linii magistrali <8:15> przez multiplekser sterowany mikrooperacją in. Wejścia adresowe multiplekserów są sterowane z pozycji <7:15> rejestru rozkazów IR, gdyŝ w czasie wykonywania zarówno rozkazu IN r,prt jak i OUT prt,r 8-bitowy adres portu jest umieszczony na tych pozycjach. Uwaga: mikrooperacje in i out mają swój sens mnemotechniczny w odniesieniu do rozkazów, a nie w stosunku do portów we-wy. out Porty we-wy in <0:7> 0 1 <8:15> T 255 IR<7:15> Rys Struktura portów we-wy Wejścia adresowe multiplekserów są sterowane z pozycji <7:15> rejestru rozkazów IR.

33 5. Struktura 33 Jednostka arytmetyczno-logiczna (arithmetic-logic unit, ALU) wykonuje wszystkie operacje arytmetyczne, logiczne i przesunięcia zdefiniowane w liście rozkazów 2K+. W operacjach dwuargumentowych jeden argument pobierany jest bezpośrednio z magistrali (mikrooperacja ta2), a drugi z rejestru buforowego AIN (mikrooperacja ta1); wynik operacji jest zapisywany w rejestrze AOUT, z którego moŝe być przesłany na magistralę. Po kaŝdej operacji zapisywane są cztery 1-bitowe znaczniki (wynik ujemny - N, wynik zerowy - Z, przeniesienie - C, nadmiar przy dodawaniu lub odejmowaniu - V). add... shr AIN ta1 ta2 ALU N Z V C AOUT Rys Struktura jednostki arytmetyczno-logicznej Do rejestru buforowego AIN moŝna wpisywać słowo z magistrali, z rejestru AOUT moŝna przekazywać słowo na magistralę. Rodzaj operacji wykonywanej w ALU jest określony przez ten sygnał sterujący mikrooperacjami, który jest aktywny w danym takcie: add, adc, sub, sbb, and, not, shr, shl, ror, rol, shra, inc lub swap. Operacja ta dokonuje się na argumentach (argumencie), udostępnianych w tym takcie przez mikrooperacje ta1 i ta2. Układ sterowania generuje wszystkie sygnały sterujące mikrooperacjami, konieczne do wykonania rozkazu aktualnie umieszczonego w rejestrze rozkazów IR. Sekwencje mikrooperacji są synchronizowane tzw. zegarem, czyli generatorem wyznaczającym takty pracy procesora. RównieŜ etap wstępny cyklu rozkazowego, czyli pobranie kolejnego rozkazu z pamięci do IR, a takŝe obsługa sytuacji wyjątkowych, czyli przełączanie programów po przyjęciu przerwania, są obsługiwane przez odpowiednie sekwencje mikrooperacji wysyłane z układu sterowania. Ogólnie, działanie układu sterowania zaleŝy od: - kodu rozkazu umieszczonego aktualnie w IR; - stanu znaczników N, Z, V i C; - stanu znaczników IE (maska przerwań) i T (praca krokowa); - sygnału zgłoszenia przerwania int; - sygnału ss (ręczny przełącznik start/stop lub rozkaz HALT);

34 34 5. Struktura - sygnału wait powodującego wstrzymanie cyklu rozkazowego w oczekiwaniu na zgłoszenie int. Adresator spełnia pomocniczą rolę przy wyznaczaniu adresu argumentu w adresacji względnej przekształcając 8- lub 10-bitowe przesunięcie (displacement) na 16-bitowy adres efektywny. Sposób obliczania tego adresu zaleŝy od kodu operacyjnego aktualnego rozkazu (pola f zapisanego na pozycjach <0:3> rejestru IR): - gdy f = 1000, na wyjściu adresatora pojawia się (IP + dsp10); - gdy f 1000, na wyjściu adresatora pojawia się (IP + dsp8) Mikrooperacje Sygnały sterujące wykonaniem mikrooperacji są binarne; przyjęto, Ŝe sygnał jest aktywny (powoduje wykonanie danej mikrooperacji), gdy jego wartość jest równa 1. W dalszym opisie wyjątkiem są oznaczenia wadr i radr, które są wejściami adresowymi multiplekserów Mikrooperacje komunikacji z magistralą fadr fip fsp fmb fain faout fpsw tir tip tsp tar tmb tain ta1 ta2 tpsw przesłanie 16-bitowego adresu z wyjścia Adresatora na szynę przesłanie 16-bitowego adresu z licznika rozkazów IP na szynę przesłanie 16-bitowego adresu z wskaźnika stosu SP na szynę przesłanie 16-bitowego słowa z bufora pamięci MB na szynę przesłanie 16-bitowego słowa z rejestru pomocniczego AIN na szynę przesłanie 16-bitowego słowa z rejestru wyjściowego ALU na szynę przesłanie 16-bitowego słowa PSW (zawiera N,Z,V,C, IE, T) na szynę wpisanie 16-bitowego słowa z szyny do rejestru rozkazów IR wpisanie 16-bitowego słowa z szyny do licznika rozkazów IP wpisanie 16-bitowego słowa z szyny do wskaźnika stosu SP wpisanie 16-bitowego adresu z szyny do rejestru adresowego pamięci AR wpisanie 16-bitowego słowa z szyny do rejestru buforowego pamięci MB wpisanie 16-bitowego słowa z szyny do rejestru buforowego AIN podstawienie 16-bitowego słowa z rejestru buforowego AIN na 1. wejście ALU podstawienie 16-bitowego słowa z szyny na 2. wejście ALU wpisanie odpowiednich bitów z szyny do znaczników N (bit 0), Z (bit 1), V (bit 2), C (bit 3), IE (bit 7), T (bit 4) według struktury słowa PSW

35 5. Struktura Mikrooperacje sterujące ALU add adc sub sbb and not shr shl ror rol shra inc swap dodawanie argumentów z we 1 i we 2; wynik w AOUT dodawanie argumentów z we 1 i we 2 z uwzględnieniem C; wynik w AOUT odejmowanie argumentów z we 1 i we 2; wynik w AOUT odejmowanie argumentów z we 1 i we 2 z uwzględnieniem C; wynik w AOUT iloczyn logiczny (AND) argumentów z we 1 i we 2; wynik w AOUT uzupełnienie logiczne argumentu z we 2; wynik w AOUT przesunięcie w prawo argumentu z we 2; wynik w AOUT przesunięcie w lewo argumentu z we 2; wynik w AOUT przesunięcie cykliczne w prawo argumentu z we 2; wynik w AOUT przesunięcie cykliczne w lewo argumentu z we 2; wynik w AOUT przesunięcie arytmetyczne w prawo argumentu z we 2; wynik w AOUT zwiększenie o 1 argumentu z we 2; wynik w AOUT zamiana bajtów argumentu z we 2; wynik w AOUT Mikrooperacje działań na IP i SP inc1ip inc2ip inc2sp dec2sp zwiększenie o 1 zawartości rejestru IP zwiększenie o 2 zawartości rejestru IP zwiększenie o 2 zawartości rejestru SP zmniejszenie o 2 zawartości rejestru SP Mikrooperacje sterujące pamięcią wrm rdm zapis słowa do pamięci odczyt słowa z pamięci Mikrooperacje sterujące blokiem rejestrów tr fr zapis słowa z magistrali do rejestru wskazanego prze wadr przesłanie na magistralę słowa z rejestru wskazanego przez radr Mikrooperacje działań na znacznikach sie ustawienie znacznika IE na 1 zie zerowanie znacznika IE cz uzupełnienie logiczne znacznika Z cc uzupełnienie logiczne znacznika C

36 36 5. Struktura Mikrooperacje działań wejścia-wyjścia in out przekazanie do wybranego portu bajta z linii <0:7> szyny podstawienie bajta z wybranego portu na linie <8:15> szyny 5.3. Sterowanie Praca komputera jest synchronizowana wspólnym generatorem taktującym (zegarem), wyznaczającym najmniejszą jednostkę czasu - takt. Układ sterowania dostarcza w kaŝdym takcie sygnały sterujące do wybranych punktów struktury logicznej, powodując realizację jednej lub (częściej) kilku mikrooperacji, sekwencja takich działań powoduje wykonanie wszystkich akcji koniecznych dla skompletowania cyklu rozkazowego. PoniŜej podano wykaz takich sekwencji dla podstawowych etapów cyklu rozkazowego, w szczególności dla etapu wykonania wszystkich rozkazów z listy rozkazów 2K+. Sekwencje podają tylko kolejność czynności, a nie uwzględniają rzeczywistych czasów trwania poszczególnych kroków, gdyŝ to zaleŝy od fizycznej realizacji układów, np. szybkości działania pamięci operacyjnej. W cyklu rozkazowym moŝna wyróŝnić trzy podstawowe etapy: - pobranie rozkazu z pamięci do rejestru rozkazów, - dekodowanie pobranego rozkazu i przygotowanie argumentów (lub w niektórych przypadkach - adresów), - wykonanie operacji określonej przez rozkaz. Przed pobraniem następnego rozkazu, czyli rozpoczęciem kolejnego cyklu, sprawdzane jest ewentualne zgłoszenie przerwania i - w przypadku zgłoszenia - następuje - przyjęcie zgłoszenia i powołanie programu obsługi Pobranie rozkazu Do rejestru IR przesyłane są dwa początkowe bajty rozkazu (w rozkazach jednobajtowych drugi bajt nie jest dalej analizowany) co wystarcza do dekodowania funkcji (pole f) i sposobu adresowania (pole m) w rozkazach adresowych. PoniewaŜ w pierwszym kroku występuje sygnał odczytu pamięci (rdm), a w drugim odczytana informacja ma być przekazana na magistralę (fmb), to czas między nimi musi wynikać z szybkości działania pamięci (jej czasu dostępu). 1. krok: fip, tar, rdm - zaadresowanie pamięci według IP 2. krok: fmb, tir, inc1ip - przesłanie rozkazu (16 bitów) do hir oraz zwiększenie IP o 1

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje

Bardziej szczegółowo

Architektura komputerów. Asembler procesorów rodziny x86

Architektura komputerów. Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych

Bardziej szczegółowo

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

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

Bardziej szczegółowo

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci,

Bardziej szczegółowo

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

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Komputer jest urządzeniem, którego działanie opiera się na wykonywaniu przez procesor instrukcji pobieranych z pamięci operacyjnej

Bardziej szczegółowo

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla Asembler A51 1. Symbole Nazwy symboliczne Symbol jest nazwą, która może być użyta do reprezentowania wartości stałej numerycznej, wyrażenia, ciągu znaków (tekstu), adresu lub nazwy rejestru. Nazwy symboliczne

Bardziej szczegółowo

Organizacja typowego mikroprocesora

Organizacja typowego mikroprocesora Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

Technika mikroprocesorowa I Wykład 2

Technika mikroprocesorowa I Wykład 2 Technika mikroprocesorowa I Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci, -odczyt-zapis urządzenia we-wy,

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

Mikrokontroler ATmega32. Język symboliczny Mikrokontroler ATmega32 Język symboliczny 1 Język symboliczny (asembler) jest językiem niskiego poziomu - pozwala pisać programy złożone z instrukcji procesora. Kody instrukcji są reprezentowane nazwami

Bardziej szczegółowo

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski Układ wykonawczy, instrukcje i adresowanie Dariusz Chaberski System mikroprocesorowy mikroprocesor C A D A D pamięć programu C BIOS dekoder adresów A C 1 C 2 C 3 A D pamięć danych C pamięć operacyjna karta

Bardziej szczegółowo

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

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe ASSEMBLER Teodora Dimitrova-Grekow http://aragorn.pb.bialystok.pl/~teodora/ Program ogólny Rok akademicki 2011/12 Systemy liczbowe, budowa komputera, procesory X86, organizacja

Bardziej szczegółowo

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

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie: Wykład 3 3-1 Reprezentacja liczb całkowitych ze znakiem Do przedstawienia liczb całkowitych ze znakiem stosowane są następujące kody: - ZM (znak-moduł) - U1 (uzupełnienie do 1) - U2 (uzupełnienie do 2)

Bardziej szczegółowo

Język FBD w systemie Concept

Język FBD w systemie Concept Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

1. Operacje logiczne A B A OR B

1. Operacje logiczne A B A OR B 1. Operacje logiczne OR Operacje logiczne są operacjami działającymi na poszczególnych bitach, dzięki czemu można je całkowicie opisać przedstawiając jak oddziałują ze sobą dwa bity. Takie operacje logiczne

Bardziej szczegółowo

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej Struktura stanowiska laboratoryjnego Na rysunku 1.1 pokazano strukturę stanowiska laboratoryjnego Z80 z interfejsem częstościomierza- czasomierz PFL 21/22. Rys.1.1. Struktura stanowiska. Interfejs częstościomierza

Bardziej szczegółowo

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

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów Marcin Stępniak Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów 1. Informacje Poniższe laboratoria zawierają podsumowanie najważniejszych informacji na temat

Bardziej szczegółowo

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

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów Operacje na stosie Stos jest obszarem pamięci o dostępie LIFO (Last Input First Output). Adresowany jest niejawnie przez rejestr segmentowy SS oraz wskaźnik wierzchołka stosu SP. Używany jest do przechowywania

Bardziej szczegółowo

ARCHITEKTURA PROCESORA,

ARCHITEKTURA PROCESORA, ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy

Bardziej szczegółowo

organizacja procesora 8086

organizacja procesora 8086 Systemy komputerowe Procesor 8086 - tendencji w organizacji procesora organizacja procesora 8086 " # $ " % strali " & ' ' ' ( )" % *"towego + ", -" danych. Magistrala adresowa jest 20.bitowa, co pozwala

Bardziej szczegółowo

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

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4 Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest

Bardziej szczegółowo

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

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna Architektura komputerów. Literatura: 1. Piotr Metzger, Anatomia PC, wyd. IX, Helion 2004 2. Scott Mueller, Rozbudowa i naprawa PC, wyd. XVIII, Helion 2009 3. Tomasz Kowalski, Urządzenia techniki komputerowej,

Bardziej szczegółowo

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

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe

Bardziej szczegółowo

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

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,

Bardziej szczegółowo

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

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek Wstęp do informatyki Architektura komputera Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki System komputerowy systemowa (System Bus) Pamięć operacyjna ROM,

Bardziej szczegółowo

Architektura typu Single-Cycle

Architektura typu Single-Cycle Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć

Bardziej szczegółowo

Projektowanie. Projektowanie mikroprocesorów

Projektowanie. Projektowanie mikroprocesorów WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna

Bardziej szczegółowo

Kodowanie informacji. Kody liczbowe

Kodowanie informacji. Kody liczbowe Wykład 2 2-1 Kodowanie informacji PoniewaŜ komputer jest urządzeniem zbudowanym z układów cyfrowych, informacja przetwarzana przez niego musi być reprezentowana przy pomocy dwóch stanów - wysokiego i niskiego,

Bardziej szczegółowo

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5.

Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5. Pracownia elektryczna i elektroniczna. Elektronika cyfrowa. Ćwiczenie nr 5. Klasa III Opracuj projekt realizacji prac związanych z badaniem działania cyfrowych bloków arytmetycznych realizujących operacje

Bardziej szczegółowo

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne... Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...4 Podział układów logicznych...6 Cyfrowe układy funkcjonalne...8 Rejestry...8

Bardziej szczegółowo

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

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania Architektura Systemów Komputerowych Jednostka ALU Przestrzeń adresowa Tryby adresowania 1 Jednostka arytmetyczno- logiczna ALU ALU ang: Arythmetic Logic Unit Argument A Argument B A B Ci Bit przeniesienia

Bardziej szczegółowo

Magistrala systemowa (System Bus)

Magistrala systemowa (System Bus) Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki systemowa (System Bus) Pamięć operacyjna ROM, RAM Jednostka centralna Układy we/wy In/Out Wstęp do Informatyki

Bardziej szczegółowo

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek Pojęcie liczebności Wstęp do informatyki Podstawy arytmetyki komputerowej Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Naturalna zdolność człowieka do postrzegania

Bardziej szczegółowo

Lista rozkazów mikrokontrolera 8051

Lista rozkazów mikrokontrolera 8051 Lista rozkazów mikrokontrolera 8051 Spis treści: Architektura mikrokontrolera Rozkazy Architektura mikrokontrolera Mikrokontroler 8051 posiada trzy typy pamięci: układ zawiera pamięć wewnętrzną (On-Chip

Bardziej szczegółowo

Budowa i zasada działania komputera. dr Artur Bartoszewski

Budowa i zasada działania komputera. dr Artur Bartoszewski Budowa i zasada działania komputera 1 dr Artur Bartoszewski Jednostka arytmetyczno-logiczna 2 Pojęcie systemu mikroprocesorowego Układ cyfrowy: Układy cyfrowe służą do przetwarzania informacji. Do układu

Bardziej szczegółowo

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

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt Architektura komputera Architektura von Neumanna: Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt Zawartośd tej pamięci jest adresowana przez wskazanie miejsca, bez względu

Bardziej szczegółowo

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

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika: PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej

Bardziej szczegółowo

Programowalne układy logiczne

Programowalne układy logiczne Programowalne układy logiczne Mikroprocesor Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 6 grudnia 2014 Zbudujmy własny mikroprocesor Bardzo prosty: 16-bitowy, 16 rejestrów

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów

Bardziej szczegółowo

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

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor. Zadaniem centralnej jednostki przetwarzającej CPU (ang. Central Processing Unit), oprócz przetwarzania informacji jest sterowanie pracą pozostałych układów systemu. W skład CPU wchodzą mikroprocesor oraz

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

Układy kombinacyjne. cz.2

Układy kombinacyjne. cz.2 Układy kombinacyjne cz.2 Układy kombinacyjne 2/26 Kombinacyjne bloki funkcjonalne Kombinacyjne bloki funkcjonalne - dekodery 3/26 Dekodery Są to układy zamieniające wybrany kod binarny (najczęściej NB)

Bardziej szczegółowo

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe Ryszard J. Barczyński, 2009 2013 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego

Bardziej szczegółowo

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek Wstęp do informatyki Podstawy arytmetyki komputerowej Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Pojęcie liczebności Naturalna zdolność człowieka do postrzegania

Bardziej szczegółowo

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

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24 Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.

Bardziej szczegółowo

Podstawy Informatyki Języki programowania c.d.

Podstawy Informatyki Języki programowania c.d. Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy 2 Makroasembler - założenia Przykład

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 8: Procedury Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Linkowanie z bibliotekami zewnętrznymi Operacje na stosie

Bardziej szczegółowo

Sprzęt i architektura komputerów

Sprzęt i architektura komputerów Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I

Bardziej szczegółowo

Projekt prostego procesora

Projekt prostego procesora Projekt prostego procesora Opracowany przez Rafała Walkowiaka dla zajęć z PTC 2012/2013 w oparciu o Laboratory Exercise 9 Altera Corporation Rysunek 1 przedstawia schemat układu cyfrowego stanowiącego

Bardziej szczegółowo

UKŁADY MIKROPROGRAMOWALNE

UKŁADY MIKROPROGRAMOWALNE UKŁAD MIKROPROGRAMOWALNE Układy sterujące mogą pracować samodzielnie, jednakże w przypadku bardziej złożonych układów (zwanych zespołami funkcjonalnymi) układ sterujący jest tylko jednym z układów drugim

Bardziej szczegółowo

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

Język programowania: Lista instrukcji (IL Instruction List) Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski 08.12.2009 Norma IEC 1131 Języki tekstowe Języki graficzne

Bardziej szczegółowo

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]

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] Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową

Bardziej szczegółowo

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia. ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb

Bardziej szczegółowo

Lista instrukcji mikroprocesora 8086. Programowanie w assemblerze

Lista instrukcji mikroprocesora 8086. Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora

Bardziej szczegółowo

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury Cel ćwiczenia: Głównym celem ćwiczenia jest nauczenie się obsługi klawiatury. Klawiatura jest jednym z urządzeń wejściowych i prawie zawsze występuje

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Lista Rozkazów: Język komputera

Lista Rozkazów: Język komputera Lista Rozkazów: Język komputera Większość slajdów do tego wykładu to tłumaczenia i przeróbki oficjalnych sladjów do podręcznika Pattersona i Hennessy ego Lista rozkazów Zestaw rozkazów wykonywanych przez

Bardziej szczegółowo

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki. Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów

Bardziej szczegółowo

architektura komputerów w 1 1

architektura komputerów w 1 1 8051 Port P2 Port P3 Transm. szeregowa Timery T0, T1 Układ przerwań Rejestr DPTR Licznik rozkazów Pamięć programu Port P0 Port P1 PSW ALU Rejestr B SFR akumulator 8051 STRUKTURA architektura komputerów

Bardziej szczegółowo

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

A Machine Architecture that is Really Intuitive and Easy.  Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym MARIE A Machine Architecture that is Really Intuitive and Easy http://computerscience.jbpub.com/ecoa Słowo 16b Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym od 8000h (- 32,768 = -2^15) do 7FFFh

Bardziej szczegółowo

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

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika 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.

Bardziej szczegółowo

Architektura Systemów Komputerowych

Architektura Systemów Komputerowych Jarosław Kuchta Architektura Systemów Komputerowych ćwiczenie 3 Arytmetyka całkowita instrukcja laboratoryjna Wprowadzenie Celem ćwiczenia jest zapoznanie się z budową i sposobem działania jednostki arytmetyczno-logicznej

Bardziej szczegółowo

Techniki mikroprocesorowe i systemy wbudowane

Techniki mikroprocesorowe i systemy wbudowane Techniki mikroprocesorowe i systemy wbudowane Wykład 1 Procesory rodziny AVR ATmega. Wstęp Wojciech Kordecki wojciech.kordecki@pwsz-legnica.eu Państwowa Wyższa Szkoła Zawodowa im. Witelona w Legnicy Wydział

Bardziej szczegółowo

Jerzy Nawrocki, Wprowadzenie do informatyki

Jerzy Nawrocki, Wprowadzenie do informatyki Magistrala systemowa Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Asembler i koncepcja von Neumanna Wprowadzenie do programowania na

Bardziej szczegółowo

Budowa komputera Komputer computer computare

Budowa komputera Komputer computer computare 11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału

Bardziej szczegółowo

ARYTMETYKA KOMPUTERA

ARYTMETYKA KOMPUTERA 006 URZĄDZENIA TECHNIKI KOMPUTEROWEJ ARYTMETYKA KOMPUTERA Systemy liczbowe o róŝnych podstawach 1 UTK System dziesiętny Cyfry: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Liczba 764.5 oznacza 7 * 10 2 + 6 * 10 1 + 4

Bardziej szczegółowo

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i mikrokontrolery Przerwania laboratorium: 04 autor: mgr inż. Michał Lankosz dr hab. Zbisław Tabor,

Bardziej szczegółowo

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A Symulator Escape Konfiguracja ogólna Enable MUL and DIV Complete Set of Comp.Oper Sign Extension of B/H/W Memory Oper on B/H/W Program Program Dane Dane Załaduj konfigurację symulatora (File -> OpenFile)

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 5 Jednostka Centralna Zadania realizowane przez procesor Pobieranie rozkazów Interpretowanie rozkazów Pobieranie danych Przetwarzanie danych Zapisanie danych Główne zespoły

Bardziej szczegółowo

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone

Bardziej szczegółowo

Ćwiczenie 3. Konwersja liczb binarnych

Ćwiczenie 3. Konwersja liczb binarnych 1 Laboratorium Architektury Komputerów Ćwiczenie 3 Konwersja liczb binarnych Komputery wykonują operacje przetwarzania danych na wartościach binarnych, podczas gdy współczesna cywilizacja posługuje się

Bardziej szczegółowo

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia

Bardziej szczegółowo

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN

AHDL - Język opisu projektu. Podstawowe struktury języka. Komentarz rozpoczyna znak i kończy znak %. SUBDESIGN AHDL - Język opisu projektu. Podstawowe struktury języka Przykładowy opis rewersyjnego licznika modulo 64. TITLE "Licznik rewersyjny modulo 64 z zerowaniem i zapisem"; %------------------------------------------------------------

Bardziej szczegółowo

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe MIKROKONTROLER RODZINY MCS 5 Cykl rozkazowy mikrokontrolera rodziny MCS 5 Mikroprocesory rodziny MCS 5 zawierają wewnętrzny generator sygnałów zegarowych ustalający czas trwania cyklu zegarowego Częstotliwość

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

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

Kurs Zaawansowany S7. Spis treści. Dzień 1 Spis treści Dzień 1 I Konfiguracja sprzętowa i parametryzacja stacji SIMATIC S7 (wersja 1211) I-3 Dlaczego powinna zostać stworzona konfiguracja sprzętowa? I-4 Zadanie Konfiguracja sprzętowa I-5 Konfiguracja

Bardziej szczegółowo

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych Ćwiczenie nr 3 Wyświetlanie i wczytywanie danych 3.1 Wstęp Współczesne komputery przetwarzają dane zakodowane za pomocą ciągów zerojedynkowych. W szczególności przetwarzane liczby kodowane są w systemie

Bardziej szczegółowo

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

dr inż. Rafał Klaus Zajęcia finansowane z projektu Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle POKL Architektura komputerów wprowadzenie materiał do wykładu 3/3 dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych

Bardziej szczegółowo

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

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski Układ sterowania, magistrale i organizacja pamięci Dariusz Chaberski Jednostka centralna szyna sygnałow sterowania sygnały sterujące układ sterowania sygnały stanu wewnętrzna szyna danych układ wykonawczy

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 4 Jan Kazimirski 1 Reprezentacja danych 2 Plan wykładu Systemy liczbowe Zapis dwójkowy liczb całkowitych Działania arytmetyczne Liczby rzeczywiste Znaki i łańcuchy znaków

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 4 Tryby adresowania i formaty Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem stosowy Argument natychmiastowy Op Rozkaz

Bardziej szczegółowo

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

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka PAMIĘCI Część 1 Przygotował: Ryszard Kijanka WSTĘP Pamięci półprzewodnikowe są jednym z kluczowych elementów systemów cyfrowych. Służą do przechowywania informacji w postaci cyfrowej. Liczba informacji,

Bardziej szczegółowo

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Metodyki i Techniki Programowania 1 1 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA Metodyki i Techniki Programowania 1 1 ZAJ CIA 3. 1. MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA IDE zintegrowane środowisko programistyczne, zawierające kompilator, edytor tekstu i linker,

Bardziej szczegółowo

Laboratorium przedmiotu Technika Cyfrowa

Laboratorium przedmiotu Technika Cyfrowa Laboratorium przedmiotu Technika Cyfrowa ćw.3 i 4: Asynchroniczne i synchroniczne automaty sekwencyjne 1. Implementacja asynchronicznych i synchronicznych maszyn stanu w języku VERILOG: Maszyny stanu w

Bardziej szczegółowo

Architektura systemów komputerowych

Architektura systemów komputerowych Studia stacjonarne inżynierskie, kierunek INFORMATYKA Architektura systemów komputerowych Architektura systemów komputerowych dr Artur Bartoszewski Procesor część I 1. ALU 2. Cykl rozkazowy 3. Schemat

Bardziej szczegółowo

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

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1 Tryb chroniony cz. 1 Moduł zarządzania pamięcią w trybie chronionym (z ang. PM - Protected Mode) procesorów IA-32 udostępnia: - segmentację, - stronicowanie. Segmentacja mechanizm umożliwiający odizolowanie

Bardziej szczegółowo

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

2. PORTY WEJŚCIA/WYJŚCIA (I/O) 2. PORTY WEJŚCIA/WYJŚCIA (I/O) 2.1 WPROWADZENIE Porty I/O mogą pracować w kilku trybach: - przesyłanie cyfrowych danych wejściowych i wyjściowych a także dla wybrane wyprowadzenia: - generacja przerwania

Bardziej szczegółowo

Sprzęt i architektura komputerów

Sprzęt i architektura komputerów Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I

Bardziej szczegółowo

Przykładowe pytania DSP 1

Przykładowe pytania DSP 1 Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,

Bardziej szczegółowo

Wstęp...9. 1. Architektura... 13

Wstęp...9. 1. Architektura... 13 Spis treści 3 Wstęp...9 1. Architektura... 13 1.1. Schemat blokowy...14 1.2. Pamięć programu...15 1.3. Cykl maszynowy...16 1.4. Licznik rozkazów...17 1.5. Stos...18 1.6. Modyfikowanie i odtwarzanie zawartości

Bardziej szczegółowo