Za pomocą instrukcji XOR zanegować 3-ci bit akumulatora.
W języku asemblera operacja XOR składa się z dwóch części argumentu i maski. W wyniku działania na zawartości akumulatora jest wykonywana operacja XOR z użyciem argumentu i tylko w miejscu gdzie wskazuje maska.
XOR argument, maska
XOR A,00000100B ;zanegowanie 3 bitu
Operacje wykonuje na 8 bitowych rejestrach. Rejestr A to jest akumulator. Maska aby była wczytana jako liczba binarna a nie szesnastkowa powinna zawierać literę B.
Za pomocą instrukcji OR ustawić 3-ci bit akumulatora.
W języku asemblera operacja OR składa się z dwóch części argumentu i maski. W wyniku działania na zawartości akumulatora jest wykonywana operacja OR z użyciem argumentu i tylko w miejscu gdzie wskazuje maska.
OR argument, maska
OR A,00000100B ;ustawienie 3-ciego bitu
Operacje wykonuje na 8 bitowych rejestrach. Rejestr A to jest akumulator. Maska aby była wczytana jako liczba binarna a nie szesnastkowa powinna zawierać literę B.
Za pomocą instrukcji AND zanegować 3-ci bit akumulatora.
W języku asemblera operacja AND składa się z dwóch części argumentu i maski. W wyniku działania na zawartości akumulatora jest wykonywana operacja AND z użyciem argumentu i tylko w miejscu gdzie wskazuje maska.
AND argument, maska
AND A,11111011B ;zanegowanie 3-ciego bitu.
Operacje wykonuje na 8 bitowych rejestrach. Rejestr A to jest akumulator. Maska aby była wczytana jako liczba binarna a nie szesnastkowa powinna zawierać literę B.
Etapy wykonania instrukcji w architekturze von Neumanna.
Wczytanie instrukcji do pamięci operacyjnej
Wczytanie instrukcji do Procesora
Pobranie potrzebnych danych z pamięci operacyjnej
Przekazanie danych do ALU
Zapisanie wyniku do pamięci
Pobranie następnej instrukcji
Co to jest i omówić kilka znanych układów peryferyjnych.
Do głównych zadań układów peryferyjnych należy pośredniczenie w przekazywaniu danych pomiędzy magistralą procesora i różnorodnymi urządzeniami wejścia/wyjścia (ang. Input/Output - I/O).
Układ czasowy (czasomierz, timer) to układ peryferyjny zbudowany z liczników. Liczniki te mają za zadanie odciążyć mikroprocesor od wykonywania operacji dotyczących mierzenia czasu. Takie układy mogą mierzyć interwały czasu wykorzystywane w układach przerwań lub służyć do pomiaru częstotliwości.
Koprocesory arytmetyczne odciążają główne procesory od wykonywania czasochłonnych obliczeń. Układy te najczęściej wykorzystywane są do wykonywania obliczeń zmiennoprzecinkowych. Zastosowanie koprocesorów w systemach komputerowych jest często niezbędne do efektywnej pracy z wykorzystaniem oprogramowania typu CAD.
Procesor graficzny stanowi kolejny typ procesora pomocniczego, do zadań którego należy przetwarzanie obrazów graficznych, wyświetlanych na ekranie monitora.
Cyfrowy procesor sygnałowy to specjalny typ procesora, przeznaczony do realizacji bardzo szybkich algorytmów. Przykład mogą stanowić operacje mnożenia, które w tradycyjnym mikroprocesorze wykonywane są przez sekwencję rozkazów, która wymaga dużej ilości cykli zegara, natomiast w procesorze sygnałowym całość realizowana jest w trakcie jednego cyklu zegarowego.
Cyfrowe procesory sygnałowe stosuje się głównie do obróbki sygnałów analogowych, przetwarzanych uprzednio na sygnały cyfrowe przy pomocy przetworników analogowo-cyfrowych. Wejście takich przetworników wyposażone jest zazwyczaj w układy próbkująco-pamiętające, oraz filtry, zapobiegające powstawaniu lustrzanych częstotliwości sygnału wokół częstotliwości próbkowania.
Do sterowania procesorami sygnałowymi wykorzystuje się programy, zawierające algorytmy decydujące o sposobie ich działania. W zależności od rodzaju zastosowanego algorytmu procesory sygnałowe pracują jako filtry rekursywne o nieskończonej odpowiedzi impulsowej (ang. IIR - Infinite Impuls Response), jako filtry nierekursywne o skończonej odpowiedzi impulsowej (ang. FIR - Finite Impuls Response) bądź jako analizatory wykorzystujące szybką transformatę Fouriera (ang. FFT - Fast Fourier Transform). Procesory sygnałowe wykorzystujące FFT przetwarzają sygnały zmienne w czasie na ich obrazy w skali częstotliwości, czyli są analizatorami widma. Mogą być również używane do przetwarzania DCT (ang. Discrete Cosinus Transform) wykorzystywanego do zakodowania obrazów przed ich skompresowaniem. Występują także specjalne cyfrowe procesory sygnałowe posiadające wbudowany program do filtrowania bądź FFT, wytwarzane do wykonywania konkretnych zadań.
Wymienić stany w jakich może się znajdować pin mikroprocesora cyfrowego.
Stan niski - logiczne 0
Stan wysoki - logiczne 1
Kody zapisu liczb ujemnych i ułamkowych.
Zapis liczb ułamkowych w postaci binarnej w systemach komputerowych może mieć dwie postacie:
Stałopozycyjne - jeden ze sposobów zapisu liczb ułamkowych stosowanych w informatyce. Do zapisu liczby stałoprzecinkowej przeznaczona jest z góry określona ilość cyfr dwójkowych
(bitów), a pozycję przecinka ustala się arbitralnie, w zależności od wymaganej dokładności.
Na przykład: mając do dyspozycji słowo 32-bitowe, można wydzielić 24 bity na część całkowitą, 8 bitów na część ułamkową, albo po 16 bitów na część całkowitą i ułamkową, albo 30 bitów na część całkowitą i zostawić tylko 2 bity do zapisu części ułamkowej.
Podziału na część całkowitą i ułamkową dokonuje arbitralnie projektant systemu lub programista, który przewiduje z jak dużymi liczbami całkowitymi lub z jak dużą dokładnością
obliczenia będą wykonywane. Zwiększanie precyzji liczby to zmniejszanie zakresu, gdyż bity
które mają reprezentować część ułamkową (stać za przecinkiem) nie mogą już reprezentować wartości całkowitych. Stwierdzenie odwrotne również jest prawdziwe: zwiększanie zakresu (całkowitoliczbowego) to zmniejszanie precyzji (mniej bitów do dyspozycji na opisanie części ułamkowej).
Zmiennoprzecinkowe - jest komputerową reprezentacją liczb rzeczywistych zapisanych w postaci wykładniczej (zwanej też notacją naukową). Ze względu na wygodę operowania na takich liczbach przyjmuje się ograniczony zakres na mantysę i cechę. Powoduje to, że reprezentacja jest tylko przybliżona a jedna liczba zmiennoprzecinkowa może reprezentować różne liczby rzeczywiste z pewnego odcinka.
Wartość liczby zmiennoprzecinkowej jest obliczana wg wzoru:
x = S * M * B^E
gdzie:
* S (ang. sign) - znak liczby, 1 lub -1
* M (ang. mantissa) - znormalizowana mantysa, liczba ułamkowa
* B (ang. base) - podstawa systemu liczbowego (2 dla systemów komputerowych)
* E (ang. exponent) - wykładnik, liczba całkowita
Mantysa jest znormalizowana, tj. należy do przedziału [1,B) (przedział prawostronnie otwarty!). Jeżeli M jest stałe, a E zmienia się, wówczas przesunięciu ulega przecinek - stąd właśnie pochodzi nazwa tej reprezentacji.
Zapis liczb ujemnych w postaci binarnej w systemach komputerowych może mieć trzy postacie:
Metoda znak - moduł
1 - znak ujemny
0 - znak dodatni
Np. (-4)10=(1 100)2zm
(4)10=1002zm
Tej metody zapisu nie stosuje się ze względu na niemożność wykonania działań.
Metoda uzupełnień do 1 - kod U1
Liczby nieujemne jak w metodzie ZM+bit znaku
Zapis w kodzie U1 liczb ujemnych uzyskuje się negując każdy bit reprezentacji binarnej modułu liczby zapisanej w kodzie ZM i dodając bit znaku BZ=1
np. -1110=1 10112ZM=1 01002U1 (też problem z wykonywaniem działań, konieczna korekcja)
Metoda uzupełnień do 2 - kod U2
Bit MSB oznacza znak liczby:
1 - znak ujemny
0 - znak dodatni
Liczby nieujemne
bit znaku + liczba w kodzie binarnym (NKB)
Liczby ujemne
wyznacza się moduł liczby ujemnej i zapisuje się go w systemie znak - moduł np |(-4)|
10= (0100)2zm
w otrzymanym słowie zamienia się 1 na 0, a 0 na 1 1011
do otrzymanego słowa dodaje się 1 na najmniej znaczącej pozycji słowa. (1100)U2
Wykonać mnożenie dwóch liczb w kodzie NKB: 3 x 5.
NKB oznacza naturalny kod bitowy więc zadanie polega na wymnożeniu liczb binarnych:
101(5)
x 11(3)
--------
101
101
-------
1111(15)