1. Operacje logiczne A B A OR B

Podobne dokumenty
B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:

Operacje arytmetyczne w systemie dwójkowym

Pracownia Komputerowa wykład IV

Pracownia Komputerowa wyk ad IV

Arytmetyka liczb binarnych

Operacje arytmetyczne

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

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

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Dodawanie liczb binarnych

Systemy zapisu liczb.

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

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

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Arytmetyka stałopozycyjna

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

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

Podstawy Informatyki

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

Kod U2 Opracował: Andrzej Nowak

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41

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

Wprowadzenie do informatyki ćwiczenia

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

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

Plan wyk ladu. Kodowanie informacji. Systemy addytywne. Definicja i klasyfikacja. Systemy liczbowe. prof. dr hab. inż.

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Pracownia Komputerowa wykład V

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

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

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

System Liczbowe. Szesnastkowy ( heksadecymalny)

Zapis liczb binarnych ze znakiem

Mini komputer Papy'ego

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

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

1.1. Pozycyjne systemy liczbowe

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

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

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Pracownia Komputerowa wyk ad V

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

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

SYSTEMY LICZBOWE 275,538 =

Programowanie Niskopoziomowe

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Architektura komputerów. Asembler procesorów rodziny x86

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

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

ZMIERZYĆ SIĘ Z KALKULATOREM

Systemy liczbowe używane w technice komputerowej

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

Układy kombinacyjne 1

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

Stan wysoki (H) i stan niski (L)

Arytmetyka komputera

Mikrooperacje. Mikrooperacje arytmetyczne

Technologie Informacyjne

Wprowadzenie do informatyki - ć wiczenia

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Podział sieci na podsieci wytłumaczenie

DZIAŁANIA NA UŁAMKACH DZIESIĘTNYCH.

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

Technologie Informacyjne Wykład 4

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

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

Architektura komputerów

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

Techniki multimedialne

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Podział sumatorów. Równoległe: Szeregowe (układy sekwencyjne) Z przeniesieniem szeregowym Z przeniesieniem równoległym. Zwykłe Akumulujące

DZIESIĘTNY SYSTEM LICZBOWY

Kodowanie liczb całkowitych w systemach komputerowych

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

LISTA 1 ZADANIE 1 a) 41 x =5 podnosimy obustronnie do kwadratu i otrzymujemy: 41 x =5 x 5 x przechodzimy na system dziesiętny: 4x 1 1=25 4x =24

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

PODSTAWY INFORMATYKI. Informatyka? - definicja

Podstawy Informatyki dla Nauczyciela

Arytmetyka komputerów

Arytmetyka binarna - wykład 6

Pracownia komputerowa. Dariusz Wardecki, wyk. V

Temat: Pojęcie potęgi i wykładniczy zapis liczb. Część I Potęga o wykładniku naturalnym

Wstęp do informatyki- wykład 2

Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1

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

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

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

Wstęp do Informatyki

Podstawy programowania w języku C i C++

Systemy liczbowe. 1. System liczbowy dziesiętny

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Kurs ZDAJ MATURĘ Z MATEMATYKI MODUŁ 2 Teoria liczby rzeczywiste cz.2

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

...o. 2. ZARYS ORGANIZACJI MASZYNY TYPOWEJ

Systemem liczenia systemach addytywnych !!" Pozycyjny system liczbowy podstawą systemu pozycyjnego

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

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

Transkrypt:

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 przedstawia się najczęściej w postaci tabeli. A B A OR B 0 0 0 1 0 1 0 1 1 1 1 1 Operacja OR działa w ten sposób, że jeżeli bit A lub B ma wartość jeden to wynik też ma wartość 1 w przeciwnym wypadku wynik wynosi 0. Przykładowy wynik operacji OR na dwóch bajtach: bin hex dec A 00000011b 03h 3 B 00011001b 19h 25 A OR B 00011011b 1Bh 27 Operacja OR nazywana jest sumą logiczną, jednak może to być trochę mylne, ponieważ niewiele ma ona wspólnego z tym, czego uczyliśmy się o dodawaniu w szkole podstawowej. W asemblerze operacja ta służy przede wszystkim do ustawiania określonego bitu na wartość 1. Przykładowo mamy pewien rejestr o nazwie AL i chcemy ustawić jego trzeci bit na wartość 1 niezależnie od tego jaką on ma wartość obecnie. Wykonamy to po przez operację OR na rejestrze AL z liczbą która ma ustawiony trzeci bit czyli 02h. AL OR 02h, w wyniku niezależnie od tego jaką wartość miał rejestr AL będzie on miał trzeci bit ustawiony.: bin AL 01110100b B AL OR B 00000010b 01110110b

AND A B A AND B 0 0 0 1 0 0 0 1 0 1 1 1 Operacja AND da w wyniku wartość 0 tylko wtedy gdy bit A lub B miał wartość 0. Przykład: bin hex dec A 00000011b 03h 3 B 00011001b 19h 25 A AND B 00000001b 01h 1 Operacja AND nazywana jest iloczynem logicznym i właściwie można ją traktować podobnie jak zwykłe mnożenie bitowe. W asemblerze bardzo często stosuje się tą operacje do zerowania określonego bitu. Przykładowo chcąc wyzerować bit czwarty rejestru AL należy wykonać na nim operację AND z liczbą F7h. Liczba F7h ma wyzerowany bit czwarty, ale pozostałe bity ma ustawione. To pozwala zachować poprzednią wartość tych bitów. bin AL 01111000b B AL AND B 11110111b 01110000b

NOT A NOT A 0 1 1 0 Operacja NOT działa na tylko jednym argumencie. W wyniku daje liczbę o wartościach bitowych przeciwnych do wartości argumentu operacji. Przykład: bin hex dec A 00011001b 19h 3 NOT A 11100110b E6h 230 XOR A B A XOR B 0 0 0 1 0 1 0 1 1 1 1 0 Operacja XOR (exclusive OR) jest to operacja OR z pewną różnicą w stosunku do działania na obu ustawionych bitach. Operacja ta daje w wyniku 1 jeżeli oba bity miały różną wartość, a jeżeli miały taką samą wartość to wynik będzie wynosił 0. Operację tą też można tłumaczyć jako sumę modulo 2. Operacja modulo nie jest instrukcją procesora, a jedynie funkcją matematyczną, którą definiujemy jako zwracającą resztę z dzielenia pewnej liczby przez drugą liczbę. X mod Y oznacza w wyniku resztę z dzielenia liczby X przez liczbę Y. Tak więc można zapisać operacje logiczną A XOR B w postaci matematycznej jako (A+B) mod 2 (przypominam, że jest to operacja działająca na poszczególne bity). Ta definicja operacji XOR może być trudna do zrozumienia ze względu na swój matematyczny charakter.

W asemblerze często będziemy stosowali operację XOR do zerowania zawartości rejestrów po przez operację A XOR A, która zawsze w wyniku daje wartość 0. Dodatkowo operację tą będziemy również stosować do odwracania wartości określonego bitu. Przykładowo chcąc odwrócić wartości bitów pierwszego i ostatniego pewnego rejestru wykonamy operację XOR z następującym argumentem: bin hex dec A 00011001b 03h 3 B 10000001b 19h 25 A XOR B 10011000b 98h 152 Tak więc jako podsumowanie operacji logicznych stosowanych w asemblerze podam je w tabeli z krótkim opisem. Należy pamiętać, że operacje logiczne działają na odpowiadających sobie bitach obu argumentów. Operacja Opis zastosowania OR Ustawia określone bity AND Zeruje określone bity NOT Odwraca bity w argumencie XOR Odwraca wartości określonych bitów Przesunięcie bitowe w lewo (ang. shift left) Jest to operacja dwuargumentowa. Zapisywana jest z reguły jako: a shl b Operacja polega na przesunięciu a o b bitów w lewo. Przy czym bity pojawiające się z prawej strony (uzupełniające przesunięcie) są ustawiane na 0. Operacja ta jest równoważna mnożeniu przez 2.

Przesunięcie o 1 bit to przemnożenie a przez 2, przesunięcie o 2 bity to dwukrotne pomnożenie a przez 2, itd. PRZYKŁAD: 0101 shl 3 = 0101000 Przesunięcie bitowe w prawo (ang. shift right) Jest to operacja dwuargumentowa. Zapisywana jest z reguły jako: a shr b Operacja polega na przesunięciu a o b bitów w prawo. Operacja ta jest równoważna dzieleniu całkowitemu przez 2. Przesunięcie o 1 bit to podzielenie a przez 2, przesunięcie o 2 bity to dwukrotne podzielenie a przez 2, itd. PRZYKŁAD: 010110 shr 3 = 010 Obrót bitowy w prawo (ROR) Funkcja ROR czyli obrót w prawo przesuwa wartość pojedynczych komórek w prawo przy czym wartość ostatniej komórki ( wychodząca poza zakres ) jest przepisywana jest do komórki pierwszej. Rysunek poniżej ilustruje działanie funkcji. Obrót bitowy w lewo (ROL) Funkcja ROL czyli obrót w lewo przesuwa wartość pojedynczych komórek w lewo przy czym wartość ostatniej komórki ( wychodząca poza zakres ) jest przepisywana do komórki pierwszej. Rysunek poniżej ilustruje dzialanie funkcji.

2. Operacje arytmetyczne Dodawanie binarne Do wykonywania dodawania niezbędna jest znajomość tabliczki dodawania, czyli wyników sumowania każdej cyfry z każdą inną. W systemie binarnym mamy tylko dwie cyfry 0 i 1, zatem tabliczka dodawania jest niezwykle prosta i składa się tylko z 4 pozycji: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Przykład: 1111001 + 10010 Zsumować liczby binarne 1111001 (2) oraz 10010 (2). 1. Sumowane liczby zapisujemy jedna pod drugą tak, aby w kolejnych kolumnach znalazły się cyfry stojące na pozycjach o tych samych wagach (identycznie postępujemy w systemie dziesiętnym zapisując liczby w słupkach przed sumowaniem): 1111001 + 10010 1011 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską: 1 1 1 11 0 0 1 + 10 0 1 0 01 0 1 1 3. Jeśli wynik sumowania jest dwucyfrowy (1 + 1 = 10), to pod kreską zapisujemy tylko ostatnią cyfrę 0, a 1 przechodzi do następnej kolumny - dodamy ją do wyniku sumowania cyfr w następnej kolumnie. Jest to tzw. przeniesienie (ang. carry). Przeniesienie zaznaczyliśmy na czerwono: 4. Jeśli w krótszej liczbie zabrakło cyfr, to dopisujemy zera. Pamiętajmy o przeniesieniach.

111 1 1 11 0 0 1 + 0 0 10 0 1 0 0 0 01 0 1 1 111 0 1 11 1 0 0 1 + 0 0 01 0 0 1 0 1 0 00 1 0 1 1 5. Dodaliśmy wszystkie cyfry, ale przeniesienie wciąż wynosi 1. Zatem dopisujemy je do otrzymanego wyniku (możemy potraktować pustą kolumnę tak, jakby zawierała cyfry 0 i do wyniku sumowania dodać przeniesienie). 1111001 (2) +10010 (2) =10001011 (2) (121 + 18 = 139) Oto kilka dalszych przykładów: 1111111 0 1 11 1 1 1 1 + 0 0 00 0 0 0 1 1 0 00 0 0 0 0 1111111 0 1 1 11 1 11 + 0 0 0 00 1 01 1 0 0 00 1 00 1111 10 1 11 1 10 + 00 0 01 1 00 11 0 01 0 10 Odejmowanie binarne Przy odejmowaniu korzystamy z tabliczki odejmowania, która w systemie binarnym jest bardzo prosta: 0-0 = 0 0-1 = 1 i pożyczka do następnej pozycji 1-0 = 1 1-1 = 0 Odejmując 0-1 otrzymujemy wynik 1 i pożyczkę (ang. borrow) do następnej pozycji. Pożyczka oznacza konieczność odjęcia 1 od wyniku odejmowania cyfr w następnej kolumnie. Identycznie postępujemy w systemie dziesiętnym, tyle że tam jest to o wiele bardziej skomplikowane. Na razie załóżmy, iż od liczb większych odejmujemy mniejsze (w przeciwnym razie musielibyśmy wprowadzić liczby ujemne, a nie chcemy tego robić w tym miejscu). Przykład: Wykonać odejmowanie w systemie binarnym 1101110 (2) - 1111 (2).

1101110-1111 1. Obie liczby umieszczamy jedna pod drugą tak, aby ich cyfry znalazły się w kolumnach o tych samych wagach: 1 1 10 1 11 0-1 11 1 1 2. Odejmowanie rozpoczynamy od cyfr ostatniej kolumny. Wyniki zapisujemy pod kreską. W tym przykładzie odjęcie ostatnich cyfr 0-1 daje wynik 1 oraz pożyczkę do następnej kolumny. Pożyczki zaznaczamy kolorem czerwonym. 11 1 10 1 11 0-1 11 1 1 1 3. Odjęcie cyfr w drugiej od końca kolumnie daje wynik 1-1 = 0. Od tego wyniku musimy odjąć pożyczkę 0-1 = 1 i pożyczka do następnej kolumny. 11 1 11 1 10 1 11 0-0 00 1 11 1 1 01 1 11 1 4. Według tych zasad kontynuujemy odejmowanie cyfr w pozostałych kolumnach. Pamiętaj o pożyczkach! Jeśli w krótszej liczbie zabraknie cyfr, to możemy kolumny wypełnić zerami: 1101110 (2) - 1111 (2) = 1011111 (2) (110 (10) - 15 (10) = 95 (10) ). Oto kilka dalszych przykładów: 1 11 1 11 1 1 00 0 00 0 0-0 00 0 00 0 1 0 11 1 11 1 1 1111 1 1 1 1 0 00 0-0 0 0 0 1 11 1 1 1 1 0 0 00 1 1 1 1 1 1 01 0 10 1 0-0 10 1 01 0 1 0 10 1 01 0 1

Mnożenie dwójkowe Naukę mnożenia binarnego rozpoczynamy od tabliczki mnożenia. 0 0 = 0 0 1 = 0 1 0 = 0 1 1 = 1 Tabliczka mnożenia binarnego (podobnie jak w systemie dziesiętnym) posłuży do tworzenia iloczynów częściowych cyfr mnożnej przez cyfry mnożnika. Iloczyny te następnie dodajemy wg opisanych zasad i otrzymujemy wynik mnożenia. Przykład: Pomnożyć binarnie liczbę 1101 (2) przez 1011 (2). 1. Obie liczby umieszczamy jedna pod drugą tak, aby ich cyfry znalazły się w kolumnach o tych samych wagach: 1101 1011 2. Każdą cyfrę mnożnej mnożymy przez poszczególne cyfry mnożnika zapisując wyniki mnożeń w odpowiednich kolumnach - tak samo postępujemy w systemie dziesiętnym, a tutaj jest nawet prościej, gdyż wynik mnożenia cyfry przez cyfrę jest zawsze jednocyfrowy: 11 0 1 10 1 1 11 0 1 1 10 1 0 0 00 11 0 1 Zwróć uwagę, iż wynikiem mnożenia mnożnej przez cyfrę mnożnika jest powtórzenie mnożnej z przesunięciem o pozycję cyfry (cyfra mnożnika 1) lub same zera (cyfra mnożnika 0). Spostrzeżenie to bardzo ułatwia konstrukcję układów mnożących.

3. Puste kolumny uzupełniamy zerami i dodajemy do siebie wszystkie cyfry w kolumnach. Uważaj na przeniesienia. 1 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 + 1 1 0 1 0 0 0 1 0 0 0 1 1 1 1 Sprawdź, czy otrzymany wynik jest poprawny. Oto kilka dalszych przykładów: 101 111 101 101 + 101 100011 1011 110 0000 1011 + 1011 1000010 111 111 111 111 + 111 110001