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

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

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

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

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

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

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

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

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

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

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

Ć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

Ć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

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

. 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.1. Pozycyjne systemy liczbowe

1.1. Pozycyjne systemy liczbowe 1.1. Pozycyjne systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego

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

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Informatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu

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

Struktura systemu mikroprocesorowego Z80 z interfejsem monitora graficznego.

Struktura systemu mikroprocesorowego Z80 z interfejsem monitora graficznego. 1 Struktura systemu mikroprocesorowego Z80 z interfejsem monitora graficznego. Strukturę systemu mikroprocesorowego Z80 współpracującego z interfejsem monitora graficznego zbudowanego w oparciu o układ

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000

APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000 APLIKACJA COMMAND POSITIONING Z WYKORZYSTANIEM KOMUNIKACJI SIECIOWEJ Z PROTOKOŁEM USS W PRZETWORNICACH MDS/FDS 5000 1. Wstęp...3 2. Pierwsze uruchomienie....3 3. Wybór aplikacji i komunikacji...4 4. Sterowanie...6

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

Architektura komputerów

Architektura komputerów Wykład jest przygotowany dla IV semestru kierunku Elektronika i Telekomunikacja. Studia I stopnia Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,

Bardziej szczegółowo

Programowanie mikrokontrolera 8051

Programowanie mikrokontrolera 8051 Programowanie mikrokontrolera 8051 Podane poniżej informacje mogą pomóc w nauce programowania mikrokontrolerów z rodziny 8051. Opisane są tu pewne specyficzne cechy tych procesorów a także podane przykłady

Bardziej szczegółowo

Metody numeryczne Laboratorium 2

Metody numeryczne Laboratorium 2 Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania

Bardziej szczegółowo

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN MODBUS RTU wersja M1.14 protokół komunikacyjny do wyświetlaczy SEM 04.2010 Str. 1/5 MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN W wyświetlaczach LDN protokół MODBUS RTU wykorzystywany

Bardziej szczegółowo

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010 ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010 Do zapisu liczby ze znakiem mamy tylko 8 bitów, pierwszy od lewej bit to bit znakowy, a pozostałem 7 to bity na liczbę. bit znakowy 1 0 1 1

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład I: Kodowanie liczb w systemach binarnych 1 Część 1 Dlaczego system binarny? 2 I. Dlaczego system binarny? Pojęcie bitu Bit jednostka informacji

Bardziej szczegółowo

Metody obsługi zdarzeń

Metody obsługi zdarzeń SWB - Przerwania, polling, timery - wykład 10 asz 1 Metody obsługi zdarzeń Przerwanie (ang. Interrupt) - zmiana sterowania, niezależnie od aktualnie wykonywanego programu, spowodowana pojawieniem się sygnału

Bardziej szczegółowo

Naturalny kod binarny (NKB)

Naturalny kod binarny (NKB) SWB - Arytmetyka binarna - wykład 6 asz 1 Naturalny kod binarny (NKB) pozycja 7 6 5 4 3 2 1 0 wartość 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 wartość 128 64 32 16 8 4 2 1 bity b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 System

Bardziej szczegółowo

Pierwsze kroki z easy Soft CoDeSys. 2009 Eaton Corporation. All rights reserved.

Pierwsze kroki z easy Soft CoDeSys. 2009 Eaton Corporation. All rights reserved. Pierwsze kroki z easy Soft CoDeSys Tworzenie prostego programu Rozpoczęcie pracy 2 Tworzenie prostego programu Wybór aparatu 3 Tworzenie prostego programu Wybór języka programowania Do wyboru jest sześć

Bardziej szczegółowo

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb. 2. Arytmetyka komputera. Systemy zapisu liczb: dziesietny, dwójkowy (binarny), ósemkowy, szesnatskowy. Podstawowe operacje arytmetyczne na liczbach binarnych. Zapis liczby binarnej ze znakiem. Reprezentacja

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Podstawy programowania w BASCOM BASIC AVR

Podstawy programowania w BASCOM BASIC AVR Podstawy programowania w BASCOM BASIC AVR Tworzenie programu 1. Uruchamiamy aplikację BASCOM AVR. 2. Tworzymy plik programu lub otwieramy i ewentualnie edytujemy istniejący. 3. Sprawdzamy, czy ustawienia

Bardziej szczegółowo

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000 SYSTEMY LICZBOWE I. PODZIAŁ SYSTEMÓW LICZBOWYCH: systemy liczbowe: pozycyjne (wartośd cyfry zależy od tego jaką pozycję zajmuje ona w liczbie): niepozycyjne (addytywne) (wartośd liczby jest sumą wartości

Bardziej szczegółowo

Przerwania w architekturze mikrokontrolera X51

Przerwania w architekturze mikrokontrolera X51 Przerwania w architekturze mikrokontrolera X51 (przykład przerwanie zegarowe) Ryszard J. Barczyński, 2009 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych

Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych Funkcje standardowej biblioteki wejść-wyjść do wyświetlania i pobierania danych Przykłady wykorzystanie funkcji printf i scanf do wyświetlania danych na wyświetlaczu LCD oraz komunikacji sterownika mikroprocesorowego

Bardziej szczegółowo

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014 Temat 1. Algebra Boole a i bramki 1). Podać przykład dowolnego prawa lub tożsamości, które jest spełnione w algebrze Boole

Bardziej szczegółowo

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,

Bardziej szczegółowo

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

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11 Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1 Spis treúci Przedmowa... 9 Wstęp... 11 1. Komputer PC od zewnątrz... 13 1.1. Elementy zestawu komputerowego... 13 1.2.

Bardziej szczegółowo

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe System mikroprocesorowy 1. Przedstaw schemat blokowy systemu mikroprocesorowego.

Bardziej szczegółowo

Kurs SIMATIC S7-300/400 i TIA Portal - Podstawowy. Spis treści. Dzień 1. I System SIEMENS SIMATIC S7 - wprowadzenie (wersja 1503)

Kurs SIMATIC S7-300/400 i TIA Portal - Podstawowy. Spis treści. Dzień 1. I System SIEMENS SIMATIC S7 - wprowadzenie (wersja 1503) Spis treści Dzień 1 I System SIEMENS SIMATIC S7 - wprowadzenie (wersja 1503) 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

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych Reprezentacja danych w systemach komputerowych Kod (łac. codex - spis), ciąg składników sygnału (kombinacji sygnałów elementarnych, np. kropek i kresek, impulsów prądu, symboli) oraz reguła ich przyporządkowania

Bardziej szczegółowo

Zamienniki towarów 1/5. Program Handel Premium

Zamienniki towarów 1/5. Program Handel Premium 1/5 Zamienniki towarów Program Handel Premium Wersja 2010 programu Wersja modułu 1.0 Cena (netto) Tel. Licencja 1 firma Wersja demo Tak Opis modułu Raport umoŝliwia przypisanie wybranym towarom zamienników,

Bardziej szczegółowo

1 Moduł Modbus ASCII/RTU 3

1 Moduł Modbus ASCII/RTU 3 Spis treści 1 Moduł Modbus ASCII/RTU 3 1.1 Konfigurowanie Modułu Modbus ASCII/RTU............. 3 1.1.1 Lista elementów Modułu Modbus ASCII/RTU......... 3 1.1.2 Konfiguracja Modułu Modbus ASCII/RTU...........

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Sterowniki programowalne

Sterowniki programowalne Wykład w ramach przedmiotu Sterowniki programowalne Sterowniki programowalne GE Fanuc serii 90-30 Zasady działania systemu (część II) Na podstawie dokumentacji GE Fanuc przygotował dr inż. Jarosław Tarnawski

Bardziej szczegółowo

Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki

Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki Norma IEC-61131-3 definiuje typy języków: graficzne: schematów drabinkowych LD, schematów

Bardziej szczegółowo

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10. Projekt z przedmiotu Systemy akwizycji i przesyłania informacji Temat pracy: Licznik binarny zliczający do 10. Andrzej Kuś Aleksander Matusz Prowadzący: dr inż. Adam Stadler Układy cyfrowe przetwarzają

Bardziej szczegółowo

Elektronika (konspekt)

Elektronika (konspekt) Elektronika (konspekt) Franciszek Gołek (golek@ifd.uni.wroc.pl) www.pe.ifd.uni.wroc.pl Wykład 12 Podstawy elektroniki cyfrowej (kody i układy logiczne kombinacyjne) Dwa znaki wystarczają aby w układach

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

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

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 Standardy reprezentacji wartości całkowitoliczbowych

Bardziej szczegółowo

Programowanie sterowników PLC wprowadzenie

Programowanie sterowników PLC wprowadzenie Programowanie sterowników PLC wprowadzenie Zakład Teorii Maszyn i Automatyki Katedra Podstaw Techniki Felin p.110 http://ztmia.ar.lublin.pl/sips waldemar.samociuk@up.lublin,pl Sterowniki programowalne

Bardziej szczegółowo

16MB - 2GB 2MB - 128MB

16MB - 2GB 2MB - 128MB FAT Wprowadzenie Historia FAT jest jednym z najstarszych spośród obecnie jeszcze używanych systemów plików. Pierwsza wersja (FAT12) powstała w 1980 roku. Wraz z wzrostem rozmiaru dysków i nowymi wymaganiami

Bardziej szczegółowo

Ćwiczenie nr 6. Programowanie mieszane

Ćwiczenie nr 6. Programowanie mieszane Ćwiczenie nr 6 Programowanie mieszane 6.1 Wstęp Współczesne języki programowania posiadają bardzo rozbudowane elementy językowe, co pozwala w większości przypadków na zdefiniowanie całego kodu programu

Bardziej szczegółowo

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią w systemie operacyjnym Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej

Bardziej szczegółowo

INSTRUKCJA INWENTARYZACJI

INSTRUKCJA INWENTARYZACJI INSTRUKCJA INWENTARYZACJI Inwentaryzacją nazywamy czynności zmierzające do sporządzenia szczegółowego spisu z natury stanów magazynowych towaru na określony dzień. Inwentaryzacja polega na ustaleniu za

Bardziej szczegółowo

Wstęp. do języka C na procesor 8051. (kompilator RC51)

Wstęp. do języka C na procesor 8051. (kompilator RC51) Wstęp do języka C na procesor 8051 (kompilator RC51) Kompilator języka C Kompilator RC51 jest kompilatorem języka C w standardzie ANSI Ograniczeń w stosunku do ANSI jest niewiele głównie rzadkie operacje

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

Bardziej szczegółowo

Algorytmika i Programowanie VBA 1 - podstawy

Algorytmika i Programowanie VBA 1 - podstawy Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy

Bardziej szczegółowo

ASEMBLER MCS-51 Podstawowe informacje

ASEMBLER MCS-51 Podstawowe informacje Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Zakład Cybernetyki i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA ASEMBLER MCS-51 Podstawowe informacje Opracował: mgr inŝ. Andrzej

Bardziej szczegółowo

Pracownia Komputerowa wyk ad IV

Pracownia Komputerowa wyk ad IV Pracownia Komputerowa wykad IV dr Magdalena Posiadaa-Zezula Magdalena.Posiadala@fuw.edu.pl http://www.fuw.edu.pl/~mposiada Magdalena.Posiadala@fuw.edu.pl 1 Reprezentacje liczb i znaków Liczby: Reprezentacja

Bardziej szczegółowo

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2) Laboratorium nr 8 Temat: Podstawy języka zapytań SQL (część 2) PLAN LABORATORIUM: 1. Sortowanie. 2. Warunek WHERE 3. Eliminacja powtórzeń - DISTINCT. 4. WyraŜenia: BETWEEN...AND, IN, LIKE, IS NULL. 5.

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro 1. Cel ćwiczenia Celem ćwiczenia jest zaprojektowanie sterowania układem pozycjonowania z wykorzystaniem sterownika VersaMax Micro oraz silnika krokowego. Do algorytmu pozycjonowania wykorzystać licznik

Bardziej szczegółowo

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Pomoc dla użytkowników systemu asix 6. www.asix.com.pl. Strategia buforowa

Pomoc dla użytkowników systemu asix 6. www.asix.com.pl. Strategia buforowa Pomoc dla użytkowników systemu asix 6 www.asix.com.pl Strategia buforowa Dok. Nr PLP6024 Wersja: 29-01-2010 ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp. z o. o., Gliwice. Inne występujące w tekście

Bardziej szczegółowo

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej Systemy wbudowane Witold Kozłowski Zakład Fizyki i Technologii Struktur Nanometrowych 90-236 Łódź, Pomorska 149/153 https://std2.phys.uni.lodz.pl/mikroprocesory/

Bardziej szczegółowo

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy) Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013

Bardziej szczegółowo

Procesory rodziny x86. Dariusz Chaberski

Procesory rodziny x86. Dariusz Chaberski Procesory rodziny x86 Dariusz Chaberski 8086 produkowany od 1978 magistrala adresowa - 20 bitów (1 MB) magistrala danych - 16 bitów wielkość instrukcji - od 1 do 6 bajtów częstotliwośc pracy od 5 MHz (IBM

Bardziej szczegółowo

Mikrokontrolery AVR ATmega

Mikrokontrolery AVR ATmega Mikrokontrolery AVR ATmega Literatura: 8-bit Microcontroller AVR with 32KBytes In-System Programmable Flash ATmega32 [www.atmel.com] 8-bit AVR Instruction Set [www.atmel.com] Baranowski Rafał, Mikrokontrolery

Bardziej szczegółowo

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Modułowy programowalny przekaźnik czasowy firmy Aniro. Modułowy programowalny przekaźnik czasowy firmy Aniro. Rynek sterowników programowalnych Sterowniki programowalne PLC od wielu lat są podstawowymi systemami stosowanymi w praktyce przemysłowej i stały

Bardziej szczegółowo

Języki skryptowe w programie Plans

Języki skryptowe w programie Plans Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów

Bardziej szczegółowo