Architektura Systemów Komputerowych

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

Download "Architektura Systemów Komputerowych"

Transkrypt

1 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 (ALU) w architekturze IA32. Jednostka arytmetyczno-logiczna Podstawowym elementem budowy kaŝdego procesora jest jednostka arytmetycznologiczna (ALU Arithmetical and Logical Unit). Jednostka ta wykonuje rozkazy arytmetyczne, rozkazy logiczne, rozkazy porównań na liczbach całkowitych. Schemat pracy ALU ilustruje następujący rysunek: DST SRC FLAGS TMP Jednostka arytmetyczno-logiczna ma dwa wejścia wielobitowe (w architekturze IA32 32-bitowe). Na wejścia te są podawane wartości dwóch operandów rozkazu. Pierwszym z tych operandów (DST) jest zawsze rejestr ogólnego przeznaczenia, rejestr indeksowy lub rejestr wskaźnikowy. Drugim z operandów (SRC) jest rejestr ogólnego przeznaczenia, rejestr indeksowy, rejestr wskaźnikowy, komórka pamięci (podwójne słowo). MoŜe być on teŝ ustawiany na wartość stałą zapisaną w rozkazie. Wynik operacji arytmetycznej lub logicznej jest zapisywany w rejestrze tymczasowym (TMP) o tej samej długości, co operandy wejściowe. Po ustaleniu wyniku operacji jest on przepisywany z rejestru tymczasowego (TMP) do rejestru określonego jako pierwszy operand (DST) 1. W czasie wykonania rozkazu jednostka arytmetycznologiczna ustawia dodatkowo rejestr flag zgodnie z wartością wyniku i warunkami występującymi w czasie wykonania rozkazu. Rozkazy sterujące procesora mogą 1 W pierwszych procesorach Intela operandem DST mógł być tylko wybrany rejestr procesora, tzw. akumulator. Nazwa ta jest w architekturze IA32 przypisywana zgodnie z tradycją rejestrowi EAX (AX, AL), chociaŝ rejestr ten utracił juŝ swoją tradycyjną, wyróŝnioną rolę. 1

2 wykorzystywać znaczniki zapisane w rejestrze flag do sterowania dalszym wykonaniem programu. Rozkazy arytmetyczne operacje dodawania i odejmowania Procesor architektury IA32 realizuje cztery podstawowe operacje arytmetyczne: dodawania (rozkazy ADD, ADC), odejmowania (rozkazy SUB, SBB) mnoŝenia (rozkazy MUL, IMUL) dzielenia (rozkazy DIV, IDIV) Rozkazy dodawania i odejmowania operują na całkowitych liczbach 32-bitowych. Liczby te mogą być traktowane jako liczby bez znaku lub liczby ze znakiem (w kodowaniu U2). Sposób wykonywania operacji w obu przypadkach jest taki sam. Schemat wykonania operacji dodawania bazuje na sekwencji operacji dodawania dwóch bitów z ewentualnym dodaniem przeniesienia z poprzedniej pozycji i ewentualnym wygenerowaniem przeniesienia na następną pozycję: DST[i] SRC[i] C i+1 + C i TMP[i] Stany wejść i wyjść podstawowej komórki dodającej mogą być następujące: C i+1 TMP[i] DST[i] SRC[i] C i Dwa rozkazy dodawania ADD i ADC róŝnią się tym, Ŝe w rozkazie ADD przeniesienie początkowe (C 0 ) jest ustawiane na 0, a w ADC przeniesienie początkowe jest ustawiane na wartość znacznika CF z rejestru flag. Przeniesienia z pozycji ostatniej (C 32 ) oraz przedostatniej (C 31 ) są wpisywane odpowiednio do znaczników CF (Carry Flag) i OF (Overflow Flag). Znacznik CF moŝe być wykorzystany dla dodawania liczb większych niŝ 32-bitowe w kilku krokach. Wówczas pierwszy rozkaz dodawania powinien być ADD, a drugi (i ew. kolejne ADC. Przykład: 2

3 Qword1 DQ? Qword2 DQ? MOV EAX, DWORD PTR Qword1 MOV EBX, DWORD PTR Qword2 ADD EAX, EBX MOV DWORD PTR Qword1, EAX MOV EAX, DWORD PTR Qword1+4 MOV EBX, DWORD PTR Qword2+4 ADC EAX, EBX MOV DWORD PTR Qword1+4, EAX Znacznik OF moŝe być wykorzystany do sprawdzenia, czy w czasie operacji na liczbach całkowitych ze znakiem (!) nie wystąpił nadmiar. Operacja odejmowania jest wykonywana analogicznie do operacji dodawania, z tą róŝnicą, Ŝe bit przeniesienia z pojedynczej komórki odejmującej jest traktowany jako poŝyczka z następnej pozycji. Stany komórki odejmującej mogą być następujące: C i+1 TMP[i] DST[i] SRC[i] C i Rozkazy odejmowania SUB i SBB róŝnią się tym, Ŝe w rozkazie SUB poŝyczka początkowa (C 0 ) jest ustawiana na 0, a w SBB poŝyczka początkowa jest ustawiana na wartość znacznika CF z rejestru flag, co umoŝliwia kaskadowe odejmowanie liczb większych niŝ 32-bitowe. W rozkazach dodawania i odejmowania oprócz flag CF i OF ustawiane są teŝ pozostałe flagi rejestru FLAGS w sposób następujący: PF (Parity Flag) ustawiana na 1 jeśli 8 najmłodszych bitów wyniku ma parzystą liczbę jedynek, w przeciwnym wypadku ustawiana na 0. AF (Auxiliary carry Flag) ustawiana na przeniesienie z pozycji trzeciej (C 4 ) wykorzystywana przy rozkazach arytmetyki BCD. ZF (Zero Flag) ustawiana na 1 jeśli wynik jest równy 0, w przeciwnym wypadku ustawiana na 0. SF (Sign Flag) ustawiana na 1 jeśli bit znaku wyniku jest równy 1, w przeciwnym wypadku ustawiana na 0. Operacje mno enia W operacji mnoŝenia liczb całkowitych wynik mnoŝenia jest dwa razy dłuŝszy niŝ długość operandów. W architekturze IA32 istnieją trzy wersje rozkazu mnoŝenia MUL: mnoŝenie AL przez drugi operand (rejestr 8-bitowy lub bajt pamięci), wynik w AX (AH część starsza, AL część młodsza wyniku) 3

4 mnoŝenie AX przez drugi operand (rejestr 16-bitowy lub słowo pamięci), wynik w DX:AX (DX część starsza, AX część młodsza wyniku) mnoŝenie EAX przez drugi operand (rejestr 32-bitowy lub podwójne słowo pamięci), wynik w EDX:EAX (EDX część starsza, EAX część młodsza wyniku) Jeśli starsza część wyniku jest róŝna od zera, to do znaczników OF i CF wpisywane są jedynki, jeśli jest równy zero, to wpisywane są zera. Stan pozostałych znaczników jest nieokreślony. Istnieje rozkaz MUL dla mnoŝenia bez znaku oraz IMUL dla mnoŝenia ze znakiem. Rozkaz IMUL potrafi wymnoŝyć dowolny rejestr 8-, 16- lub 32-bitowy przez inny rejestr tej samej długości, tej samej długości komórkę pamięci lub wartość stałą. Wynik jest tej samej długości, co pierwszy operand. Rozkazy dzielenia Dzielenie jest operacją odwrotną do mnoŝenia. Operand pierwszy (dzielna) jest podwójnej długości. Oprócz wyniku dzielenia (który jest całkowity), podawana jest teŝ reszta z dzielenia. W architekturze IA32 istnieją trzy wersje rozkazu dzielenia: dzielenie AX przez drugi operand (rejestr 8-bitowy lub bajt pamięci), wynik w AL, reszta z dzielenia w AH dzielenie DX:AX przez drugi operand (rejestr 16-bitowy lub słowo pamięci), wynik w AX, reszta z dzielenia w DX dzielenie EDX:EAX przez drugi operand (rejestr 32-bitowy lub podwójne słowo pamięci), wynik w EAX, reszta z dzielenia w EDX Po dzieleniu stan wszystkich ww. znaczników jest nieokreślony. Jeśli dzielnik jest równy zero lub wynik dzielenia nie mieści się w odpowiednim rejestrze (AL, AX albo EAX), to generowany jest wyjątek. Istnieje rozkaz DIV dla dzielenia bez znaku i IDIV dla dzielenia ze znakiem Operacje logiczne Jednostka arytmetyczno-logiczna wykonuje trzy operacje logiczne na bitach operandów (w IA32 operandów 32-bitowych): operację AND operację OR operację XOR Operacje te są wykonywane na wszystkich bitach jednocześnie przeniesienie nie występuje. Stany pojedynczej komórki mogą być następujące: TMP[i] TMP[i] TMP[i] DST[i] SRC[i] (XOR) (OR) (AND)

5 PoniewaŜ nie występuje przeniesienie, więc: znaczniki OF i CF są ustawiane na 0, stan znacznika AF jest nieokreślony. Pozostałe znaczniki są ustawiane tak, jak dla operacji dodawania i odejmowania. Operacje negacji logicznej i arytmetycznej Są to operacje działające tylko na jednym operandzie. Rozkaz negacji logicznej (NOT) zamienia wszystkie bity operandu DST na przeciwne. Rozkaz negacji arytmetycznej (NEG) wpisuje do operandu DST wartość przeciwną. Rozkaz NOT moŝe być zrealizowany przez ALU jak rozkaz XOR z drugim operandem (SRC) ustawionym wewnętrznie na same jedynki. Rozkaz NEG moŝe być zrealizowany jako odejmowanie operandu DST od zera, albo przez zanegowanie wszystkich bitów i dodanie jedynki z przeniesienia C 0. Operacje porówna W architekturze IA32 występują dwa rodzaje porównań: porównanie arytmetyczne (CMP) i porównanie logiczne (TEST). Porównanie arytmetyczne (CMP) jest wykonywane tak samo jak operacja odejmowania (SUB), z tym jednym wyjątkiem, Ŝe wynik z rejestru tymczasowego TMP nie jest przepisywany do rejestru DST. Porównywanie logiczne (TEST) jest wykonywane samo jak operacja AND, z tym samym wyjątkiem. Operacje przesuni Operacje przesunięcia w lewo przypisują do kaŝdego bitu i rejestru TMP bit i-1 rejestru DST, a następnie przepisują cały rejestr TMP do rejestru DST. Analogicznie operacje przesunięcia w prawo przypisują do kaŝdego bitu i rejestru TMP bit i+1 rejestru DST. WyróŜnia się cztery rodzaje rozkazów przesunięcia w lewo/ w prawo: przesunięcie zwykłe (rozkazy SHL i SHR) na pierwszą pozycję (dla rozkazu SHL najmłodszą, dla rozkazu SHR najstarszą) wprowadzane jest zero, wartość ostatniego bitu jest wpisywana do znacznika CF; rotację (rozkazy ROL i ROR) na pierwszą pozycję wprowadzana jest wartość ostatniego bitu, wartość ta teŝ jest wpisywana do znacznika CF. rotację przez przeniesienie (rozkazy RCL i RCR) na pierwszą pozycję wprowadzana jest wartość znacznika CF, wartość ostatniego bitu jest wpisywana do znacznika CF; przesunięcie arytmetyczne (rozkazy SAL i SAR) uwzględnia bit znaku; dla przesunięcia w lewo na pierwszą pozycję (do najmłodszego bitu) wprowadzane jest zero, wartość przedostatniego bitu jest wpisywana do znacznika CF, bit znaku pozostaje bez zmian; dla przesunięcia w prawo wartość bitu znaku jest wpisywana na przedostatnią pozycję, wartość najmłodszego bitu jest wpisywana do znacznika CF. Istnieją wersje przesunięcia o 1 i o większą liczbę pozycji (zapisaną w rejestrze CL, albo podaną jako stała). Przy przesunięciu o 1 znacznik OF określa, czy nastąpiła zmiana znaku. Pozostałe flagi: 5

6 dla rozkazów rotacji: SF, ZF, AF, PF są nie zmieniane dla rozkazów przesunięć: SF, ZF, PF są ustawiane tak, jak dla rozkazów dodawania i odejmowania, AF jest nie zmieniany. Inne operacje ustawiania i testowania bitów Lista rozkazów procesora IA32 zawiera rozkazy ustawiające znacznik CF na 0, na 1 albo na logiczną wartość przeciwną (odpowiednio CLC, STC i CMC). Zawiera równieŝ rozkazy ustawiające wybrany bit rejestru lub komórki pamięci na 0, na 1 albo na logiczną wartość przeciwną (odpowiednio BTR, BTS i BTC). Rozkaz testujący wybrany bit rejestru lub komórki pamięci (BT) wpisuje wartość tego bitu do znacznika CF. Zadania dla studentów Zad.1. Dodawanie i odejmowanie liczb 32-bitowych 1. Wprowadź poniŝszy program:.686 extern _ExitProcess@4: near public _main _DATA SEGMENT dword public 'DATA' use32 Dword1 DD 1 Dword2 DD 2 Result DD 0 _DATA ENDS _TEXT SEGMENT dword public 'CODE' use32 ASSUME cs:_text, ds:_data _main: MOV EAX, Dword1 MOV EBX, Dword2 ADD EAX, EBX MOV Result, EAX ; zakończenie wykonywania programu push 0 call _ExitProcess@4 _TEXT END ENDS 2. Wykonaj program krok po kroku. W oknie rejestrów obserwuj zmianę wartości rejestrów i znaczników. 3. Wykonaj to samo zadanie modyfikując deklarację zmiennej Dword1. UŜyj po kolei wartości: a. 1000, b , c , d , e , f , 6

7 g Podaj wartości dziesiętne i szesnastkowe wyniku oraz znaczniki CF i OF. 4. Zmień deklarację zmiennej Dword2 na 2. Wykonaj działania dla zmiennej Dword1 po kolei równej: a. 3, b. 2, c. 1, Podaj wartości dziesiętne i szesnastkowe wyniku oraz znaczniki CF i OF. 5. Zmień deklarację zmiennej Dword2 na 2 i rozkaz ADD na SUB. Wykonaj działania dla zmiennej Dword1 po kolei równej: a. 3, b. 2, c. 1, Podaj wartości dziesiętne i szesnastkowe wyniku oraz znaczniki CF i OF. Zaznacz róŝnice względem zadania z p.4. Zad.2. Dodawanie i odejmowanie liczb 64-bitowych 1. Wprowadź poniŝszy program:.686 extern _ExitProcess@4: near public _main _DATA SEGMENT dword public 'DATA' use32 Qword1 DQ 1 Qword2 DQ 2 Result DQ 0 _DATA ENDS _TEXT SEGMENT dword public 'CODE' use32 ASSUME cs:_text, ds:_data _main: MOV EAX, DWORD PTR Qword1 MOV EBX, DWORD PTR Qword2 ADD EAX, EBX MOV DWORD PTR Qword1, EAX MOV EAX, DWORD PTR Result+4 MOV EBX, DWORD PTR Qword2+4 ADC EAX, EBX MOV DWORD PTR Result+4, EAX ; zakończenie wykonywania programu push 0 call _ExitProcess@4 _TEXT END ENDS 2. Wykonaj program krok po kroku. W oknie rejestrów obserwuj zmianę wartości rejestrów i znaczników. Obserwuj zmianę zawartości pamięci. 7

8 3. Wykonaj to samo zadanie modyfikując deklarację zmiennej Qword1. UŜyj po kolei wartości: a , b , c , d , e Podaj wartości dziesiętne i szesnastkowe wyniku z okna pamięci. 4. Zmień teraz rozkaz ADC na ADD. Wykonaj zadanie dla takich samych danych jak w poprzednim punkcie. Porównaj wyniki z uzyskanymi w poprzednim punkcie: a , b , c , d , e W powyŝszym programie zmień rozkaz ADD na SUB i ADC na SBB. Wartości Qword1 i Qword2 ustaw tak, jak w programie z p.1. Podaj wynik z pamięci w postaci dziesiętnej i szesnastkowej. 6. Zmień teraz rozkaz SBB na SUB. Wykonaj zadanie dla takich samych danych jak w poprzednim punkcie. Porównaj wynik z uzyskanym w poprzednim punkcie. Zad. 3. Mno enie liczb 1. Wprowadź program mnoŝący dwie umieszczone w pamięci liczby 32-bitowe i umieszczający wynik 64-bitowy w pamięci:.686 extern _ExitProcess@4: near public _main _DATA SEGMENT dword public 'DATA' use32 Factor1 DD 2 Factor2 DD 20 Result DQ 0 _DATA ENDS _TEXT SEGMENT dword public 'CODE' use32 ASSUME cs:_text, ds:_data _main: MOV EAX, Factor1 MOV EBX, Factor2 MUL EBX MOV DWORD PTR Result, EAX MOV DWORD PTR Result+4, EDX ; zakończenie wykonywania programu push 0 call _ExitProcess@4 8

9 _TEXT END ENDS 2. Wykonaj ten sam program dla liczb 2000 i Podaj dziesiętną i szesnastkową wartość wyniku oraz wartości wskaźników CF i OF. Czy wynik mieści się na 32-bitach? 3. Wykonaj ten sam program dla liczb i Podaj dziesiętną i szesnastkową wartość wyniku oraz wartości wskaźników CF i OF. Czy wynik mieści się na 32-bitach? 4. Wykonaj ten sam program dla liczb 2000 i , 2000 i oraz 2000 i UŜyj mnoŝenia bez znaku (MUL) i ze znakiem (IMUL). Podaj dziesiętną i szesnastkową wartość wyniku oraz zawartość znaczników CF i OF. 5. Wykonaj ten sam program dla liczb i , i oraz i UŜyj mnoŝenia bez znaku (MUL) i ze znakiem (IMUL). Za kaŝdym razem podaj dziesiętną i szesnastkową wartość wyniku oraz zawartość znaczników CF i OF. Zad.4. Dzielenie liczb 1. Wprowadź program dzielący dwie umieszczone w pamięci liczby 32-bitowe i umieszczający wynik (32-bitowy) oraz resztę z dzielenia w pamięci:.686 extern _ExitProcess@4: near public _main _DATA SEGMENT dword public 'DATA' use32 Divisor1 DD 21 Divisor2 DD 2 Result DD 0 Remainder DD 0 _DATA ENDS _TEXT SEGMENT dword public 'CODE' use32 ASSUME cs:_text, ds:_data _main: MOV EAX, Divisor1 MOV EDX, 0 MOV EBX, Divisor2 DIV EBX MOV Result, EAX MOV Remainder, EDX ; zakończenie wykonywania programu push 0 call _ExitProcess@4 _TEXT END ENDS 2. Wykonaj ten sam program dla liczb i Podaj dziesiętną i szesnastkową wartość wyniku i reszty z dzielenia. Wyjaśnij, do czego konieczny jest rozkaz MOV EDX, 0 w powyŝszym programie. 9

10 3. Zmodyfikuj podany program tak, aby moŝliwe było wykonanie dzielenia dla liczb i Podaj dziesiętną i szesnastkową wartość wyniku i reszty z dzielenia. 4. Wykonaj ten program dla liczb i 20. Jakie wyniki otrzymujesz? 5. Wykonaj ten sam program dla liczb i 2000, i 2000 oraz i UŜyj dzielenia bez znaku (DIV) i ze znakiem (IDIV). Za kaŝdym razem podaj dziesiętną i szesnastkową wartość wyniku i reszty z dzielenia Zad. 5. Operacje logiczne i porównania 1. Napisz samodzielnie program zerujący rejestr EAX bez wykorzystywania rozkazu MOV. Wskazówka: uŝyj rozkazu XOR. Podaj główny rozkaz tego programu. 2. Napisz samodzielnie program porównujący, czy liczba 32-bitowa w rejestrze EAX ma wartość zero. UŜyj rozkazu: a. OR b. CMP c. TEST. Podaj operandy tych rozkazów 3. Napisz samodzielnie program wpisujący do rejestru EBX wartość przeciwną do EAX bez uŝycia rozkazów NEG i SUB. Zad. 6. Operacje przesuni 1. Napisz samodzielnie program przesuwający o 5 pozycji w prawo, a następnie o 5 pozycji w lewo liczbę 48 umieszczoną w rejestrze EAX. Czy otrzymałeś na koniec programu liczbę 48? 2. Zmodyfikuj program tak, aby uzyskać na koniec wyjściową liczbę 32-bitową niezaleŝnie od jej wartości. Wskazówka uŝyj dodatkowego rejestru i rozkazu rotacji. 3. Uprość program z poprzedniego punktu wykorzystując rozkaz SHLD i SHRD. 4. Porównaj działanie rozkazów SHL i SAL oraz SHR i SAR na liczbach 1 i 2 przy przesunięciu o 1 pozycję. Podaj wyniki w postaci szesnastkowej i dziesiętnej. Zad. 7. Operacje na bitach (dodatkowe) 1. Jakie trzy rozkazy moŝna alternatywnie wykorzystać do sprawdzenia, czy wartość 32 bitowa w rejestrze EAX jest ujemna (ma bit znaku równy 1)? Jakie są róŝnice między wykonaniem tych rozkazów w zakresie znaczników. 10

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 10: Arytmetyka całkowitoliczbowa Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wprowadzenie Instrukcje przesunięcia bitowego

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

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje: INSTRUKCJE Instrukcje przeniesienia: mov, lea, les, push, pop, pushf, popf Instrukcje konwersji: cbw, cwd, xlat Arytmetyczne instrukcje: add, inc sub, dec, cmp, neg, mul, imul, div, idiv Logiczne instrukcje:

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

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

Ć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

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

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

Bardziej szczegółowo

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite. Plan wykładu rchitektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka sekwencyjna

Bardziej szczegółowo

Metody Realizacji Języków Programowania

Metody Realizacji Języków Programowania Metody Realizacji Języków Programowania Bardzo krótki kurs asemblera x86 Marcin Benke MIM UW 10 stycznia 2011 Marcin Benke (MIM UW) Metody Realizacji Języków Programowania 10 stycznia 2011 1 / 22 Uwagi

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

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

1. Operacje logiczne A B A OR B

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

Bardziej szczegółowo

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

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika Rejestry procesora Procesor podczas wykonywania instrukcji posługuje się w dużej części pamięcią RAM. Pobiera z niej kolejne instrukcje do wykonania i dane, jeżeli instrukcja operuje na jakiś zmiennych.

Bardziej szczegółowo

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

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT Laboratorium: Wprowadzenie Pojęcia. Wprowadzone zostaną podstawowe pojęcia i mechanizmy związane z programowaniem w asemblerze. Dowiemy się co to są rejestry i jak z nich korzystać. Rejestry to są wewnętrzne

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

Ć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

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

Sprzęt i architektura komputerów

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

Bardziej szczegółowo

Programowanie komputera

Programowanie komputera Programowanie komputera Program jest algorytmem przetwarzania danych zapisanym w sposób zrozumiały dla komputera. Procesor rozumie wyłącznie rozkazy zapisane w kodzie maszynowym (ciąg 0 i 1). Ponieważ

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

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach Marcin Stępniak Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach 1. Informacje Matematyk o nazwisku Bool wymyślił gałąź matematyki do przetwarzania wartości prawda

Bardziej szczegółowo

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

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86 Wprowadzenie do Architektury komputerów Asembler procesorów rodziny x86 Budowa procesora rodziny x86 Rejestry procesora 8086 ogólnego przeznaczenia Dla procesorów 32-bitowych: EAX, EBX, ECX, EDX Dla procesorów

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

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

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

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86 Wprowadzenie do Architektury komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych grup: 1. Rozkazy przesłania danych w

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

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

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

Bardziej szczegółowo

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

Sprzęt i architektura komputerów

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

Bardziej szczegółowo

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

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

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

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

Bardziej szczegółowo

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

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

Technika cyfrowa Układy arytmetyczne

Technika cyfrowa Układy arytmetyczne Sławomir Kulesza Technika cyfrowa Układy arytmetyczne Wykład dla studentów III roku Informatyki Wersja 1.0, 05/10/2010 Układy arytmetyczne UKŁADY ARYTMETYCZNE UKŁADY SUMUJĄCE i ODEJMUJĄCE UKŁADY MNOŻĄCE

Bardziej szczegółowo

Załącznik do ćwiczenia w środowisku MASM32 wersji 10 Sterowanie przebiegiem wykonania programu

Załącznik do ćwiczenia w środowisku MASM32 wersji 10 Sterowanie przebiegiem wykonania programu Załącznik do ćwiczenia w środowisku MASM32 wersji 10 Sterowanie przebiegiem wykonania programu Rozkaz cmp jest opisany w grupie rozkazów arytmetycznych (załącznik do ćwiczenia 3). Rozpatrzmy rozkazy procesorów

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

Sterowanie pracą programu

Sterowanie pracą programu Sterowanie pracą programu Umożliwia podejmowanie decyzji w oparciu o określone warunki. Skoki bezwarunkowe Podstawową instrukcją umożliwiającą przeniesienie sterowania do innego punktu programu oznaczonego

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit. Architektura 8086 8086 posiada 4 rejestry ogólnego użytku AX, BX, CX, DX, 2 rejestry indeksowe SI, DI, 3 rejestry wskaźnikowe SP, BP, IP, 4 rejestry segmentowe CS, DS, SS i ES oraz rejestr flag FLAG AH

Bardziej szczegółowo

Operacje arytmetyczne

Operacje arytmetyczne PODSTAWY TEORII UKŁADÓW CYFROWYCH Operacje arytmetyczne Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ Dodawanie dwójkowe Opracował: Andrzej Nowak Ostatni wynik

Bardziej szczegółowo

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci

PAMIĘĆ RAM. Rysunek 1. Blokowy schemat pamięci PAMIĘĆ RAM Pamięć służy do przechowania bitów. Do pamięci musi istnieć możliwość wpisania i odczytania danych. Bity, które są przechowywane pamięci pogrupowane są na komórki, z których każda przechowuje

Bardziej szczegółowo

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

end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze. Struktura programu typu program.com ; program według modelu tiny name "mycode" ; nazwa pliku wyjściowego (maksymalnie 8 znaków) org 100h ; początek programu od adresu IP = 100h ; kod programu ret ; koniec

Bardziej szczegółowo

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA PODSTAWOWE ELEMENTY ASEMBLERA Składnia języka Postać wiersza programu Dyrektywy i pseudoinstrukcje Deklaracja zmiennych Zmienne łańcuchowe

Bardziej szczegółowo

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

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

Bardziej szczegółowo

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

Metody Realizacji Języków Programowania

Metody Realizacji Języków Programowania 1/25 Metody Realizacji Języków Programowania Bardzo krótki kurs asemblera x86 Marcin Benke MIM UW 23 października 2013 /25 Uwagi wstępne Ten, z konieczności bardzo krótki kurs, nie jest w żadnym wypadku

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

ROZDZIAŁ DZIEWIĄTY: OPERACJE ARYTMETYCZNE I LOGICZNE

ROZDZIAŁ DZIEWIĄTY: OPERACJE ARYTMETYCZNE I LOGICZNE ROZDZIAŁ DZIEWIĄTY: OPERACJE ARYTMETYCZNE I LOGICZNE Dużo więcej jest potrzebne do posługiwania się asemblerem niż znajomość mnogich operacji. Musimy nauczyć się jak je stosować i co one robią, Wiele instrukcji

Bardziej szczegółowo

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011 Układy arytmetyczne Joanna Ledzińska III rok EiT AGH 2011 Plan prezentacji Metody zapisu liczb ze znakiem Układy arytmetyczne: Układy dodające Półsumator Pełny sumator Półsubtraktor Pełny subtraktor Układy

Bardziej szczegółowo

Technika mikroprocesorowa I Wykład 2

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

Bardziej szczegółowo

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Temat: Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy.

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

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

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin Podstawy techniki cyfrowej Mikroprocesory Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin 1 Mikroprocesor to układ cyfrowy wykonany jako pojedynczy układ scalony o wielkim stopniu integracji zdolny do wykonywania

Bardziej szczegółowo

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit

Bardziej szczegółowo

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

Bardziej szczegółowo

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym SYSTEMY LICZBOWE 1. Systemy liczbowe Najpopularniejszym systemem liczenia jest system dziesiętny, który doskonale sprawdza się w życiu codziennym. Jednak jego praktyczna realizacja w elektronice cyfrowej

Bardziej szczegółowo

Programowanie w asemblerze Architektura procesora

Programowanie w asemblerze Architektura procesora Programowanie w asemblerze Architektura procesora 17 stycznia 2017 Zwana też ISA (Instruction Set Architecture). Klasyfikacja stos; akumulator; jeśli dodatkowe rejestry specjalizowane (np. adresowy), to

Bardziej szczegółowo

Systemy zapisu liczb.

Systemy zapisu liczb. Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy. Zdobycie umiejętności wykonywania działań na liczbach w różnych systemach. Zagadnienia:

Bardziej szczegółowo

SYSTEMY LICZBOWE 275,538 =

SYSTEMY LICZBOWE 275,538 = SYSTEMY LICZBOWE 1. Systemy liczbowe Najpopularniejszym systemem liczenia jest system dziesiętny, który doskonale sprawdza się w życiu codziennym. Jednak jego praktyczna realizacja w elektronice cyfrowej

Bardziej szczegółowo

Kod hex Instrukcja Opis 37 AAA Koryguj AL po dodawaniu BCD

Kod hex Instrukcja Opis 37 AAA Koryguj AL po dodawaniu BCD AAA ASCII adjust after addition 37 AAA Koryguj AL po dodawaniu BCD AAA powoduje korekcję znajdującego się w AL wyniku dodawania dwóch liczb, o ile dodawane są liczby BCD. Dopiero po korekcji wynik będzie

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

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

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

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

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

Kod U2 Opracował: Andrzej Nowak

Kod U2 Opracował: Andrzej Nowak PODSTAWY TEORII UKŁADÓW CYFROWYCH Kod U2 Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ System zapisu liczb ze znakiem opisany w poprzednim

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

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

Bardziej szczegółowo

Wprowadzenie do informatyki ćwiczenia

Wprowadzenie do informatyki ćwiczenia Podstawowe działania na liczbach binarnych dr inż. Izabela Szczęch WSNHiD 2010/2011 Ćwiczenia z wprowadzenia do informatyki Dodawanie Odejmowanie Mnoż enie Dzielenie Plan zajęć 2 Izabela Szczęch 1 Dodawanie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Teoretyczne Podstawy Informatyki

Teoretyczne Podstawy Informatyki Teoretyczne Podstawy Informatyki cel zajęć Celem kształcenia jest uzyskanie umiejętności i kompetencji w zakresie budowy schematów blokowych algor ytmów oraz ocenę ich złożoności obliczeniowej w celu optymizacji

Bardziej szczegółowo

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych Architektura systemów komputerowych Plan wykładu. Typy danych w komputerach. 2. Układ arytmetyczno-logiczny. 3. Instrukcje zależne od ALU. 4. Superskalarność. Cele Wiedza na temat arytmetyki maszyn cyfrowych.

Bardziej szczegółowo

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

J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler ASSEMBLER J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler Geneza (8086, 8088). Rejestry Adresowanie pamięci Stos Instrukcje Przerwania

Bardziej szczegółowo

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 = Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,

Bardziej szczegółowo

Lista rozkazów mikrokontrolera 8051

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

Bardziej szczegółowo

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

PROGRAMOWANIE NISKOPOZIOMOWE

PROGRAMOWANIE NISKOPOZIOMOWE PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 Wprowadzenie

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

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

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

Bardziej szczegółowo

Jerzy Nawrocki, Wprowadzenie do informatyki

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

Bardziej szczegółowo

Ć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

Mikrokontroler 80C51

Mikrokontroler 80C51 DSM-51 * STRONA 1 * Temat : Wiadomości podstawowe Układy cyfrowe to rodzaj układów elektronicznych, w których sygnały napięciowe przyjmują tylko określoną liczbę poziomów, którym przypisywane są wartości

Bardziej szczegółowo

Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle

Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle Marcin Stępniak Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle 1. Informacje 1.1. Instrukcje skoku Instrukcje skoku zmieniają wskaźnik instrukcji w rejestrze

Bardziej szczegółowo

Mikrooperacje. Mikrooperacje arytmetyczne

Mikrooperacje. Mikrooperacje arytmetyczne Przygotowanie: Przemysław Sołtan e-mail: kerk@moskit.ie.tu.koszalin.pl Mikrooperacje Mikrooperacja to elementarna operacja wykonywana podczas jednego taktu zegara mikroprocesora na informacji przechowywanej

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

UKŁADY MIKROPROCESOROWE

UKŁADY MIKROPROCESOROWE UKŁADY MIKROPROCESOROWE Kodowanie informacji i systemy liczbowe OPRACOWANIE KŁ MALBORK WPROWADZENIE 1. Pojęcia podstawowe: Czym zajmuje się elektronika? Informacja Sygnał Uproszczona klasyfikacja układów

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 4: Architektura i zarządzanie pamięcią IA-32 Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Tryby pracy Rejestry

Bardziej szczegółowo

Budowa wnętrza procesora x86

Budowa wnętrza procesora x86 Budowa wnętrza procesora x86 Marika Kuczyńska, Joanna Tokarz Akademia Górnicz- Hutnicza im. Stanisława Staszica w Krakowie Wydział Fizyki i Informatyki Stosowanej Fizyka Techniczna Kraków, 20.03.2013 Plan

Bardziej szczegółowo

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

PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012 PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 4 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 c Dr

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 3 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 3 1 / 42 Reprezentacja liczb całkowitych

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

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

Procesor Intel 8086 model programisty. Arkadiusz Chrobot

Procesor Intel 8086 model programisty. Arkadiusz Chrobot Procesor Intel 8086 model programisty Arkadiusz Chrobot 5 października 2008 Spis treści 1 Wstęp 2 2 Rejestry procesora 8086 2 3 Adresowanie pamięci 4 4 Ważne elementy języka Pascal 6 1 1 Wstęp Głównym

Bardziej szczegółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 5 Liczby w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie

Bardziej szczegółowo

Technologie Informacyjne Wykład 3

Technologie Informacyjne Wykład 3 Technologie Informacyjne Wykład 3 Procesor i jego architektura (CISC, RISC, 32/64 bity) Systemy wieloprocesorowe Wojciech Myszka Jakub Słowiński Katedra Mechaniki i Inżynierii Materiałowej Wydział Mechaniczny

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

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01

Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01 ĆWICZENIE 01 Ćwiczenie 01 - Strona nr 1 Polecenie: Bez użycia narzędzi elektronicznych oraz informatycznych, wykonaj konwersje liczb z jednego systemu liczbowego (BIN, OCT, DEC, HEX) do drugiego systemu

Bardziej szczegółowo

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

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

Bardziej szczegółowo