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 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

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

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

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

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

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

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 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

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

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

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 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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Systemów Komputerowych 2

Architektura Systemów Komputerowych 2 Architektura Systemów Komputerowych 2 Pytania egzaminacyjne z części pisemnej mgr inż. Leszek Ciopiński Wykład I 1. Historia i ewolucja architektur komputerowych 1.1. Czy komputer Z3 jest zgodny z maszyną

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

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

Ć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

Ć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

. 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

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

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

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne Ryszard J. Barczyński, 2016 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego

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

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

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

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

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

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

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 wer. 7

Architektura komputerów wer. 7 Architektura komputerów wer. 7 Wojciech Myszka 2013-10-29 19:47:07 +0100 Karty perforowane Kalkulator IBM 601, 1931 IBM 601 kalkulator Maszyna czytała dwie liczby z karty, mnożyła je przez siebie i wynik

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

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

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

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

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2 - 1 - MS EXCEL CZ.2 FUNKCJE Program Excel zawiera ok. 200 funkcji, będących predefiniowanymi formułami, słuŝącymi do wykonywania określonych obliczeń. KaŜda funkcja składa się z nazwy funkcji, która określa

Bardziej szczegółowo

Struktura programu w asemblerze mikrokontrolera 8051

Struktura programu w asemblerze mikrokontrolera 8051 Struktura programu w asemblerze mikrokontrolera 8051 Program w asemblerze, dający ten sam kod wynikowy, może być napisany na wiele sposobów. Źle napisany program po pewnym czasie (a być może już w czasie

Bardziej szczegółowo

Zapis liczb binarnych ze znakiem

Zapis liczb binarnych ze znakiem Zapis liczb binarnych ze znakiem W tej prezentacji: Zapis Znak-Moduł (ZM) Zapis uzupełnień do 1 (U1) Zapis uzupełnień do 2 (U2) Zapis Znak-Moduł (ZM) Koncepcyjnie zapis znak - moduł (w skrócie ZM - ang.

Bardziej szczegółowo

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

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

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) Miejsce, rola i zadania systemu operacyjnego

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

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

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH ZATWIERDZAM Dziekan Wydziału Nauk Społecznych i Technik Komputerowych S Y L A B U S 1 Tytuł (stopień) naukowy oraz imię i nazwisko

Bardziej szczegółowo

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

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne 1. Bit Pozycja rejestru lub komórki pamięci służąca do przedstawiania (pamiętania) cyfry w systemie (liczbowym)

Bardziej szczegółowo

Arytmetyka stałopozycyjna

Arytmetyka stałopozycyjna Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 3. Arytmetyka stałopozycyjna Cel dydaktyczny: Nabycie umiejętności wykonywania podstawowych operacji arytmetycznych na liczbach stałopozycyjnych.

Bardziej szczegółowo

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

Kurs Podstawowy S7. Spis treści. Dzień 1 Spis treści Dzień 1 I System SIMATIC S7 - wprowadzenie (wersja 1401) I-3 Rodzina sterowników programowalnych SIMATIC S7 firmy SIEMENS I-4 Dostępne moduły i ich funkcje I-5 Jednostki centralne I-6 Podstawowe

Bardziej szczegółowo

2. Architektura mikrokontrolerów PIC16F8x... 13

2. Architektura mikrokontrolerów PIC16F8x... 13 Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator

Bardziej szczegółowo

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011 SYLLABUS na rok akademicki 010/011 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr 1(rok)/1(sem) Specjalność Bez specjalności Kod katedry/zakładu

Bardziej szczegółowo

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny

Bardziej szczegółowo

Zasady wykonywania programu drabinkowego w sterowniku

Zasady wykonywania programu drabinkowego w sterowniku Zasady wykonywania programu drabinkowego w sterowniku Programowanie sterownika Modicon Micro 612xx w środowisku uruchomieniowym Modsoft odbywa się przy pomocy języka drabinkowego wspomaganego blokami funkcyjnymi.

Bardziej szczegółowo

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zapis znak - moduł (ZM) Zapis liczb w systemie Znak - moduł Znak liczby o n bitach zależy od najstarszego bitu b n 1 (tzn. cyfry o najwyższej pozycji): b

Bardziej szczegółowo

Języki i paradygmaty programowania

Języki i paradygmaty programowania Języki i paradygmaty programowania Instytut Teleinformatyki ITI PK Kraków marzec 2012 Spis rzeczy 1 Operatory w C/C++ Operatory Operatory w C/C++ operator - rodzaj funkcji wbudowanej w język; różnica notacja

Bardziej szczegółowo

LABORATORIUM Systemy teletransmisji i transmisja danych

LABORATORIUM Systemy teletransmisji i transmisja danych LABORATORIUM Systemy teletransmisji i transmisja danych INSTRUKCJA NR:3 TEMAT: Podstawy adresowania IP w protokole TCP/IP 1 Cel ćwiczenia: WyŜsza Szkoła Technik Komputerowych i Telekomunikacji Zapoznanie

Bardziej szczegółowo

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

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy 1 Wprowadzenie do informatyki i użytkowania komputerów Kodowanie informacji System komputerowy Kodowanie informacji 2 Co to jest? bit, bajt, kod ASCII. Jak działa system komputerowy? Co to jest? pamięć

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji

Bardziej szczegółowo

Instrukcja programowania IRSC OPEN

Instrukcja programowania IRSC OPEN Instrukcja programowania IRSC OPEN Zennio IRSC OPEN (ZN1CL-IRSC) I. UWAGI WSTĘPNE Urządzenie IRSC OPEN umoŝliwia wykorzystanie w systemie KNX komend róŝnych pilotów zdalnego sterowania do obsługi urządzeń

Bardziej szczegółowo

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1. Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1 PAMIĘCI SZEREGOWE EEPROM Ćwiczenie 3 Opracował: dr inŝ.

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 5 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) c.d. 2 Architektura CPU Jednostka arytmetyczno-logiczna (ALU) Rejestry Układ sterujący przebiegiem programu

Bardziej szczegółowo

1259 (10) = 1 * * * * 100 = 1 * * * *1

1259 (10) = 1 * * * * 100 = 1 * * * *1 Zamiana liczba zapisanych w dowolnym systemie na system dziesiętny: W systemie pozycyjnym o podstawie 10 wartości kolejnych cyfr odpowiadają kolejnym potęgom liczby 10 licząc od strony prawej i numerując

Bardziej szczegółowo

SYSTEM MIKROPROCESOROWY

SYSTEM MIKROPROCESOROWY SYSTEM MIKROPROCESOROWY CPU ROM RAM I/O AB DB CB Rys 4.1. System mikroprocesorowy MIKROPROCESOR RDZEŃ MIKROPROCESORA PODSTAWOWE ZESPOŁY FUNKCJONALNE MIKROPROCESORA Mikroprocesor zawiera następujące, podstawowe

Bardziej szczegółowo

Podstawy Informatyki

Podstawy Informatyki Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 5 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 5 1 / 23 LICZBY RZECZYWISTE - Algorytm Hornera

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 8 Jan Kazimirski 1 Assembler x86 2 Podstawowe instrukcje x86 Instrukcje transferu danych Arytmetyka binarna i dziesiętna Instrukcje logiczne Instrukcje sterujące wykonaniem

Bardziej szczegółowo

Systemy liczenia. 333= 3*100+3*10+3*1

Systemy liczenia. 333= 3*100+3*10+3*1 Systemy liczenia. System dziesiętny jest systemem pozycyjnym, co oznacza, Ŝe wartość liczby zaleŝy od pozycji na której się ona znajduje np. w liczbie 333 kaŝda cyfra oznacza inną wartość bowiem: 333=

Bardziej szczegółowo

Mikroinformatyka. Wielozadaniowość

Mikroinformatyka. Wielozadaniowość Mikroinformatyka Wielozadaniowość Zadanie Tryb chroniony przynajmniej jedno zadanie (task). Segment stanu zadania TSS (Task State Segment). Przestrzeń zadania (Execution Space). - segment kodu, - segment

Bardziej szczegółowo

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące

Architektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące Architektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Plan wykładu Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka

Bardziej szczegółowo

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008 Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer. 1.4 Wojciech Myszka 16 pa«zdziernika 2008 CISC I Complex Instruction Set Computers nazwa architektury mikroprocesorów

Bardziej szczegółowo

LEKCJA TEMAT: Współczesne procesory.

LEKCJA TEMAT: Współczesne procesory. LEKCJA TEMAT: Współczesne procesory. 1. Wymagania dla ucznia: zna pojęcia: procesor, CPU, ALU, potrafi podać typowe rozkazy; potrafi omówić uproszczony i rozszerzony schemat mikroprocesora; potraf omówić

Bardziej szczegółowo

1. Pobrać plik masm.zip (Macro Assembler 6.15 & Segmented Executable Linker 5.60) (http://www.cs.put.poznan.pl/mantczak/teaching/itc/masm.zip).

1. Pobrać plik masm.zip (Macro Assembler 6.15 & Segmented Executable Linker 5.60) (http://www.cs.put.poznan.pl/mantczak/teaching/itc/masm.zip). J.Nawrocki, M. Antczak, G. Palik, A. Widelska Plik źródłowy: 07cw4-asm.doc; Data: 2007-09-26 6:00 Ćwiczenie nr 4 Język asemblera Środowisko uruchomieniowe 1. Pobrać plik masm.zip (Macro Assembler 6.15

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych: Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym

Bardziej szczegółowo

MIKROKONTROLERY I MIKROPROCESORY

MIKROKONTROLERY I MIKROPROCESORY PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo