Programowanie komputera
|
|
- Miłosz Świątek
- 5 lat temu
- Przeglądów:
Transkrypt
1 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ż jest to zapis bardzo trudny do zrozumienia dla człowieka już na początku ery komputerów stworzono język symboliczny, w którym rozkazom procesora, rejestrom, miejscom w pamięci przyporządkowano nazwy symboliczne. Instrukcja pisana przez programistę nie wyglądała już tak: lecz np. tak: add A, wzrost Był to zapis bardziej zrozumiały dla człowieka lecz instrukcje te nie są bezpośrednio zrozumiałe dla procesora on ostatecznie rozumie tylko ciągi zer i jedynek. Program zapisany w języku asembler musi być przetłumaczony na kod maszynowy, musi przy tym spełniać ścisłe reguły składni danego języka. Program napisany w języku asembler jest wciąż bliższy konstrukcji maszyny (odzwierciedla jej konstrukcję, zasoby sprzętowe, listę rozkazów) niż sposobowi myślenia o problemach przez człowieka i sposobami wyrażania rozwiązań tych problemów. Stąd obserwujemy gwałtowny rozwój nowych języków programowania tzw. wysokopoziomowych, dedykowanych do rozwiązywania określonych klas problemów. Programy napisane w takich językach przed wykonaniem przez procesor muszą być tłumaczone (kompilowane lub interpretowane) na język maszynowy. Pisanie programów w języku asembler pozwala bliżej zapoznać się z działaniem procesora, poznać jego możliwości i ograniczenia. Czasami wymagane jest połączenie programu napisanego w języku wysokopoziomowym z funkcją napisaną w języku asembler aby spełnić krytyczne wymagania dotyczące wykorzystania zasobów komputera lub szybkości realizacji programu. 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 programu i powrót do systemu operacyjnego. msg db "press any key..." ; deklaracje zmiennych 1
2 Struktura programy typu program.exe ; program wykonywalny wielosegmentowy. data segment ; tutaj umieszczamy deklaracje danych ends stack segment dw 128 dup(0) ends ; określenie wielkości stosu code segment start: ; początek programu ; ustawienie wartości rejestrów segmentowych: mov ax, data mov ds, ax mov es, ax ; kod programu mov ax, 4c00h ; zakończenie programu i powrót do system operacyjnego. int 21h ends end start ; ustawienie punktu startu programu i koniec instrukcji w assemblerze. Program w assemblerze składa się z dyrektyw kompilatora, instrukcji, deklaracji zmiennych i stałych. Dyrektywa kompilatora nie jest tłumaczona na kod wynikowy określa tylko jak ma przebiegać kompilacja i jak zarządzać kodem wynikowym. Dyrektywa ORG 100h w programach typu.com określa, że instrukcje programu powinny zaczynać się od adresu 100h w segmencie kodu. Pierwsze 256 B (100h) zarezerwowane są dla potrzeb systemu operacyjnego w celu komunikacji z programem ( np. przekazanie parametrów uruchomienia programu). Dyrektywy mogą sterować warunkową kompilacją programu, definiować makroinstrukcje i in. Zmienne określają miejsce przechowywania danych i ich typ. Dane te mogą znajdować się w rejestrach procesora, ale ze względu na ograniczoną liczbę rejestrów, miejscem ich przechowywania jest głównie pamięć operacyjne. Procesor korzysta z pamięci operacyjnej podając adres komórki z którą chce się skontaktować. Adresy są długimi liczbami binarnymi (np. 20 bitów) i ze względów praktycznych podczas deklaracji zmiennych adresom komórek przyporządkowuje się nazwy symboliczne. Określa się również typ zmiennych, który 2
3 decyduje o tym jak dużo miejsca zajmuje zmienna w pamięci oraz jakie operacje można na niej wykonywać. Będziemy korzystać ze zmiennych o długości 1 bajtu i 1 słowa (2 bajty). nazwa DB wartość ; deklaracja zmiennej o długości 1B nazwa DW wartość ; deklaracja zmiennej o długości 2B nazwa jest dowolnym ciągiem liter i cyfr zaczynającym się od litery, duże i małe litery nie są rozróżniane. Można zadeklarować zmienną bez podania nazwy lecz tracimy możliwość bezpośredniego odwołania się do zmiennej za pośrednictwem nazwy. Wartość początkowa zmiennej może być określona w systemie binarnym, dziesiętnym, szesnastkowym, w postaci kodu ASCII. Można też nie podawać wartości początkowej (zmienne nie zainicjalizowana) pisząc znak?. Przykłady: Zm1 DB 8 ; zapis dziesiętny Zm2 DW 1234h, 0A5A5h ; zapis szesnastkowy Zm3 DB b ; zapis binarny Zm4 DB A ; kod ASCII Zm5 DB Witaj, 0 ; ciąg znaków ASCII zakończony 0 Zm6 DW? ; zmienna bez podanej wartości początkowej Zmienna typu WORD zajmuje dwa bajty. Stosowana jest zasada, że młodszy bajt zapisywany jest pod niższym adresem w pamięci. Poniższe dwie deklaracje są równoważne: Zm DW 1234h Zm DB 34h, 12h Wartość szesnastkowa rozpoczynająca się znakiem A..F musi być poprzedzona 0. Można również oprócz pojedynczych zmiennych deklarować tablice. Tablicą nazywamy zmienną złożoną z określonej liczby elementów jednakowego typu. Dostęp do elementów tablicy uzyskujemy korzystając z indeksu elementu przechowywanego w rejestrze indeksowym. Jeśli wartości elementów tablicy się powtarzają możemy skorzystać z operatora DUP. Przykłady: Tab1 DB 1, 2, 3, 4, 5 ; tablica 5-elementowa zawiera liczby 1-5 Tab2 DB Hello, 0 ; tablica zawiera napis zakończony 0 Tab3 DB 48h, 65h, 6Ch, 6Fh, 00h ; zapis równoważny Tab2 Tab4 DB 10 DUP (?) ; tablica 10-elementowa nie zainicjalizowana Tab5 DB 10 DUP (0) ; tablica 10-elementowa o wartościach 0 Tab6 DB 5 DUP (0,1) ; tablica 10-elementowa o wartościach 0,1,0,1 Uwaga: DW nie może być używane przy deklaracji napisów. Możemy dokonywać podglądu zmiennych podczas pracy symulatora otwierając okienko variables (przycisk vars). 3
4 Możliwy jest wybór typu zmiennej (byte, word, dword, qword, tword), ilości elementów zmiennej, sposobu interpretacji wyświetlanych danych (hex, bin, octal, signed, unsigned, ASCII). Dostępna jest również edycja zawartości pamięci danych podczas pracy symulatora. Rodzaje instrukcji wykonywanych przez mikroprocesor Instrukcje transferu (przesłania danych) Instrukcje obliczeniowe - arytmetyczne - logiczne - operacji na bitach - przesunięć i rotacji Instrukcje sterujące - skoki - skoki warunkowe - pętle - procedury - operacje na rejestrach specjalnych 4
5 Instrukcje Arytmetyczne i Logiczne Instrukcje arytmetyczne i logiczne działają na rejestr statusowy (rejestr znaczników ang. Flags) Rejestr ten ma 16 bitów, każdy nazywany jest znacznikiem (flag) i może przyjmować wartości 1 lub 0. Znacznik przeniesienia - Carry Flag (CF) ustawiany jest na 1 kiedy wystąpi przeniesienie dla liczb bez znaku, np. kiedy dla argumentów 8-bitowych dodamy Gdy nie ma przeniesienia bit ten jest ustawiony na 0. Znacznik zera - Zero Flag (ZF) ustawiany na 1 kiedy wynik jest zero. Dla wartości różnej od zera bit ten ustawiany jest na 0. Znacznik znaku - Sign Flag (SF) ustawiany na 1 gdy wynik jest ujemny. Gdy wynik jest dodatni ustawiany jest na 0. Znacznik ten przyjmuje wartość najbardziej znaczącego bitu wyniku. Znacznik nadmiaru - Overflow Flag (OF) ustawiany na 1 kiedy wystąpi przepełnienie dla liczb ze znakiem, np. kiedy dodamy (wynik nie jest w przedziale ). Znacznik parzystości - Parity Flag (PF) ustawiany jest na 1 kiedy wynik posiada parzystą liczbę jedynek, a na 0 kiedy liczba bitów o wartości jeden w wyniku jest nieparzysta. Uwaga: analizowane jest tylko 8 bitów wyniku nawet gdy wynik jest 16-bitowy! Znacznik przeniesienia pomocniczego - Auxiliary Flag (AF) ustawiany na 1 kiedy wystąpi przeniesienie z bitu 3 na 4 (nibble-4 bity). Znacznik zezwolenia na przerwania maskowalne - Interrupt enable Flag (IF) kiedy ustawiony jest na 1 CPU przyjmuje przerwania od urządzeń zewnętrznych. Znacznik kierunku - Direction Flag (DF) znacznik ten wykorzystywany przez instrukcje przetwarzające łańcuchy znaków, kiedy znacznik ustawiony jest na 0 znaki przetwarzane są do przodu, kiedy ma wartość 1 kierunek przetwarzania jest odwrotny. Poznamy trzy grupy instrukcji arytmetycznych i logicznych. Grupa pierwsza: ADD, SUB, CMP, AND, TEST, OR, XOR Wykorzystywane są następujące rodzaje argumentów: 5
6 REG, memory memory, REG REG, REG memory, immediate REG, immediate REG: AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP. memory: [BX], [BX+SI+7], zmienna, itd... immediate: 5, -24, 3Fh, b, itd... Po wykonaniu operacji wynik przechowywany jest w pierwszym argumencie. Rozkazy CMP i TEST ustawiają tylko znaczniki nie zapisując wyniku operacji (wykorzystywane są do podejmowania decyzji podczas wykonywania program skoki warunkowe i wywołanie podprogramów). Instrukcje te działają tylko na następujące znaczniki: CF, ZF, SF, OF, PF, AF. ADD dodaje drugi operand do pierwszego. SUB - odejmuje drugi operand od pierwszego. CMP - odejmuje drugi operand do pierwszego lecz nie zapisuje wyniku odejmowania, ustawia tylko znaczniki. AND iloczyn logiczny pomiędzy parami bitów dwóch operandów. Stosowane są zależności: 1 AND 1 = 1 1 AND 0 = 0 0 AND 1 = 0 0 AND 0 = 0 Jak widzimy wynik jest równy 1 tylko wtedy, gdy oba bity są 1. TEST działa tak samo jak AND ale ustawia tylko znaczniki. OR - suma logiczna pomiędzy parami bitów dwóch operandów. Stosowane są zależności: 1 OR 1 = 1 1 OR 0 = 1 0 OR 1 = 1 0 OR 0 = 0 Jak widzimy wynik jest równy 1 jeśli przynajmniej jeden bit argumentów jest równy 1. XOR Suma rozłączna (exclusive OR) pomiędzy parami bitów dwóch operandów. Stosowane są zależności: 1 XOR 1 = 0 1 XOR 0 = 1 0 XOR 1 = 1 0 XOR 0 = 0 Jak widzimy wynik jest równy 1 kiedy bity argumentów różnią się. 6
7 Druga grupa: MUL, IMUL, DIV, IDIV Wykorzystywane są następujące rodzaje argumentów: REG memory REG: AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP. memory: [BX], [BX+SI+7], zmienna, itd. Instrukcje MUL i IMUL działają tylko na znaczniki: CF, OF Kiedy wynik przekracza zakres operandów znaczniki ustawiane są na 1, w przeciwnym przypadku na 0. Dla instrukcji DIV i IDIV znaczniki są niezdefiniowane. MUL mnożenie liczb bez znaku: kiedy operand jest typu byte: AX = AL * operand. kiedy operand jest typu word: (DX AX) = AX * operand. IMUL mnożenie liczb ze znakiem: kiedy operand jest typu byte: AX = AL * operand. kiedy operand jest typu word: (DX AX) = AX * operand. DIV dzielenie liczb bez znaku: kiedy operand jest typu byte: kiedy operand jest typu word: AL = AX / operand AH = reszta z dzielenia (moduł) AX = (DX AX) / operand DX = reszta z dzielenia (moduł) IDIV dzielenie liczb ze znakiem: kiedy operand jest typu byte: kiedy operand jest typu word: AL = AX / operand AH = reszta z dzielenia (moduł). AX = (DX AX) / operand DX = reszta z dzielenia (moduł). 7
8 Trzecia grupa: INC, DEC, NOT, NEG Wykorzystywane są następujące rodzaje argumentów: REG memory REG: AX, BX, CX, DX, AH, AL, BL, BH, CH, CL, DH, DL, DI, SI, BP, SP. memory: [BX], [BX+SI+7], zmienna, itd. INC, DEC Instrukcje te działają tylko na następujące znaczniki: ZF, SF, OF, PF, AF. NOT Instrukcja nie zmienia żadnego znacznika! NEG Instrukcje ta działa tylko na następujące znaczniki: CF, ZF, SF, OF, PF, AF. NOT Neguje każdy bit operandu. NEG Zamienia liczbę na ujemną (w systemie U2). Zamienia każdy bit argumentu na przeciwny i dodaje do wyniku 1. 8
9 Sterowanie pracą programu Umożliwia podejmowanie decyzji w oparciu o określone warunki. Skoki bezwarunkowe Skok bezwarunkowy polega na wpisaniu nowej wartości do licznika rozkazów po napotkaniu instrukcji skoku. Podstawową instrukcją umożliwiającą przeniesienie sterowania do innego punktu programu oznaczonego etykietą jest JMP o następującej składni: JMP etykieta Ażeby zadeklarować etykietę w programie podajemy jej nazwę, a po niej dwukropek ":". Oto przykłady prawidłowych nazw etykiet: label1: label2: a: Etykieta może być zadeklarowana w osobnej linii lub przed dowolną instrukcją, np.: x1: mov AX, 1 x2: mov AX, 2 Przykłady wykorzystania instrukcji JMP: org 100h mov ax, 5 mov bx, 2 jmp calc back: jmp stop calc: add ax, bx jmp back stop: ret Instrukcja JMP pozwala przenieść sterowanie do przodu lub do tyłu, w dowolne miejsce wewnątrz segmentu. 9
10 Skoki warunkowe bliskie Warunkiem wykonania skoku jest wartość wybranego znacznika. Wartość znaczników w rejestrze stanu jest ustalana w wyniku ostatniej operacji arytmetycznej lub logicznej (nie są zmieniane np. podczas przesyłania danych). Pozwalają przenieść sterowanie przy spełnieniu określonych warunków. Podzielone są na trzy grupy: pierwsza testuje pojedyncze znaczniki, druga testuje liczby ze znakiem, a trzecia liczby bez znaku. Instrukcje skoku warunkowego testujące pojedyncze znaczniki Instrukcja Opis Warunek Instrukcja przeciwna JZ, JE Jump if Zero (Equal). ZF = 1 JNZ, JNE JC, JB, JNAE Jump if Carry (Below, Not Above Equal). CF = 1 JNC, JNB, JAE JS Jump if Sign. SF = 1 JNS JO Jump if Overflow. OF = 1 JNO JPE, JP Jump if Parity Even. PF = 1 JPO JNZ, JNE Jump if Not Zero (Not Equal). ZF = 0 JZ, JE JNC, JNB, JAE Jump if Not Carry (Not Below, Above Equal). CF = 0 JC, JB, JNAE JNS Jump if Not Sign. SF = 0 JS JNO Jump if Not Overflow. OF = 0 JO JPO, JNP Jump if Parity Odd (No Parity). PF = 0 JPE, JP Można zauważyć, że niektóre instrukcje o różnych nazwach działają tak samo, są one kodowane za pomocą tych samych kodów maszynowych. Instrukcje te są dwubajtowe pierwszy bajt zawiera kod rozkazu, a drugi określa zakres skoku od do +127 bajtów). 10
11 Instrukcje skoku warunkowego dla liczb ze znakiem Instrukcja Opis Warunek Instrukcja przeciwna JE, JZ Jump if Equal (=). Jump if Zero. ZF = 1 JNE, JNZ JNE, JNZ Jump if Not Equal (<>). Jump if Not Zero. ZF = 0 JE, JZ JG, JNLE Jump if Greater (>). Jump if Not Less or Equal (not <=). ZF = 0 and SF = OF JNG, JLE JL, JNGE Jump if Less (<). Jump if Not Greater or Equal (not >=). SF <> OF JNL, JGE JGE, JNL Jump if Greater or Equal (>=). Jump if Not Less (not <). SF = OF JNGE, JL JLE, JNG Jump if Less or Equal (<=). Jump if Not Greater (not >). ZF = 1 or SF <> OF JNLE, JG Instrukcje skoku warunkowego dla liczb bez znaku Instrukcja Opis Warunek Instrukcja przeciwna JE, JZ Jump if Equal (=). Jump if Zero. ZF = 1 JNE, JNZ JNE, JNZ Jump if Not Equal (<>). Jump if Not Zero. ZF = 0 JE, JZ JA, JNBE Jump if Above (>). Jump if Not Below or Equal (not <=). CF = 0 and ZF = 0 JNA, JBE JB, JNAE, JC Jump if Below (<). Jump if Not Above or Equal (not >=). Jump if Carry. CF = 1 JNB, JAE, JNC 11
12 JAE, JNB, JNC Jump if Above or Equal (>=). Jump if Not Below (not <). Jump if Not Carry. CF = 0 JNAE, JB JBE, JNA Jump if Below or Equal (<=). Jump if Not Above (not >). CF = 1 or ZF = 1 JNBE, JA Dla porównania wartości numerycznych używana jest instrukcja CMP która działa jak instrukcja SUB lecz nie zapisuje wyniku odejmowania tylko ustawia odpowiednio znaczniki. Przykłady użycia instrukcji CMP i skoków warunkowych: include "emu8086.inc" org 100h mov AL, 25 ; ustaw AL na 25. mov BL, 10 ; ustaw BL na 10. cmp AL, BL ; porównaj AL - BL. je equal ; skocz jeśli AL = BL (ZF = 1). putc 'n' ; program w tym miejscu jeśli AL <> BL, jmp stop ; wyświetla 'n' i skacze do stop. equal: putc 'y' stop: ret ; jeśli program osiągnie to miejsce ; oznacza to, że AL = BL, więc wyświetlane jest 'y'. ; koniec programu. Instukcje pętli Instrukcja Loop et jest przykładem instrukcji warunkowej, która zmniejsza zawartość rejestru CX o 1, sprawdza, czy zawartość tego rejestru jest różna od 0 i jeśli tak - wykonuje skok do miejsca oznaczonego etykietą et, w przeciwnym razie procesor przechodzi do następnej po loop instrukcji. mov CX, 10 //ustawienie licznika powtórzeń pętli et: ciąg instrukcji do wykonania w pętli loop et 12
13 Instrukcja Operacja i warunek skoku Instrukcja przeciwna LOOP zmniejsz CX, skocz do etykiety jeśli CX nie równa się zero. DEC CX and JCXZ LOOPE zmniejsz CX, skocz do etykiety jeśli CX nie równa się zero i (ZF = 1). LOOPNE LOOPNE zmniejsz CX, skocz do etykiety jeśli CX nie równa się zero i (ZF = 0). LOOPE LOOPNZ zmniejsz CX, skocz do etykiety jeśli CX nie równa się zero i ZF = 0. LOOPZ LOOPZ zmniejsz CX, skocz do etykiety jeśli CX nie równa się zero i ZF = 1. LOOPNZ JCXZ skocz do etykiety jeśli CX jest równe zero. OR CX, CX and JNZ Instrukcje pętli wykorzystują rejestr CX do zliczania liczby powtórzeń. Jest to rejestr 16-bitowy, stąd liczba powtórzeń ograniczona jest do Można organizować pętle zagnieżdżone zapamiętując rejestr CX na stosie instrukcją push CX i odzyskując zawartość kiedy pętla lokalna się kończy za pomocą pop CX, np.: org 100h mov BX, 0 ; całkowity licznik przeskoków do etykiet. mov CX, 5 k1: add BX, 1 mov AL, '1' mov AH, 0Eh int 10h push CX mov CX, 5 k2: add BX, 1 mov AL, '2' mov AH, 0Eh int 10h push CX mov CX, 5 k3: add BX, 1 mov AL, '3' mov AH, 0Eh int 10h loop k3 ; pętla wewnętrzna. pop CX loop k2 ; pętla środkowa. pop CX loop k1 ; pętla zewnętrzna. ret 13
14 BX zlicza całkowitą liczbę przeskoków do etykiet. Domyślnie symulator wyświetla zawartość rejestru w postaci szesnastkowej klikając podwójnie w rejestr możemy wyświetlać zawartość rejestru w postaci rozszerzonej, w różnych systemach liczenia. Po zakończeniu programu w rejestrze BX zapisana jest wartość 155 = razy wykonała się pętla wewnętrzna, 25 razy środkowa i 5 razy zewnętrzna. W przeciwieństwie do instrukcji JMP instrukcje skoków warunkowych i pętli pozwalają przenieść sterowanie o 127 bajtów do przodu i 128 bajtów do tyłu skoki względne (pamiętajmy, że instrukcje w kodzie maszynowym mają długość od 1 do 6 bajtów) Możemy łatwo obejść to ograniczenie w następujący sposób: Bierzemy z tabeli przeciwny rozkaz skoku warunkowego i podajemy adres skoku do etykiety label_x. Używamy instrukcji JMP do przeskoczenia do pożądanej lokalizacji. Definiujemy etykietę label_x: zaraz za instrukcją JMP. Etykieta label_x: musi być unikalna w całym programie. Przykład: include "emu8086.inc" org 100h mov AL, 5 mov BL, 5 cmp AL, BL ; porównanie AL - BL. ; je equal ; rozkaz 2-bajtowy jne not_equal ; skok, jeśli AL <> BL (ZF = 0). jmp equal ; skok w dowolne miejsce w segmencie not_equal: add BL, AL sub AL, 10 xor AL, BL jmp skip_data db 256 dup(0) ; 256 bytes skip_data: putc 'n' ; jeśli AL <> BL, jmp stop ; wyświetlamy 'n' i skok do etykiety stop. equal: putc 'y' stop: ret ; jeśli AL = BL ; wyświetlamy 'y'. 14
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ółowoend 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ółowoArchitektura 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ółowoArchitektura 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ółowoZałą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ółowoZadanie 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ółowoRejestry 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ółowoProgramowanie 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Ć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ółowoCPU 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ółowoArchitektura 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ółowoArchitektura 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ółowoArchitektura 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ółowoSprzę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ółowoSprzę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ółowoArchitektura 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ółowoorganizacja 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ółowoJ. 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ółowoStruktura 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ółowo1. 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ółowoPODSTAWOWE 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ółowoArchitektura 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ółowoJerzy 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ółowo1. 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ółowoINSTRUKCJE 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ółowoLista 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ółowoUTK 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ółowoPrzedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4
Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest
Bardziej szczegółowoProcesor 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ółowoArchitektura 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ółowoMOŻ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ółowoProgramowanie 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Ć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ółowoProcesor Intel 8086 model programisty. Arkadiusz Chrobot
Procesor Intel 8086 model programisty Arkadiusz Chrobot 26 września 2011 Spis treści 1 Wstęp 2 2 Rejestry procesora 8086 2 3 Adresowanie pamięci 4 4 Ważne elementy języka Pascal 8 1 1 Wstęp Głównym celem
Bardziej szczegółowoTechnika 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ółowoWprowadzenie 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ółowoArchitektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury
Marcin Stępniak Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury 1. Informacje 1.1. Stos Stos jest strukturą danych, w której dane dokładane są na wierzch stosu
Bardziej szczegółowoTechnika 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ółowoArchitektura 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ółowoLista 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ółowoInformacje wstępne. Historia Maszyna Turinga
Informacje wstępne 1 Wykład obejmuje wprowadzenie do techniki mikroprocesorowej omówienie budowy i sposobu działania mikroprocesora pamięci cyfrowe magistrale urządzenia wejścia wyjścia rozwiązania stosowane
Bardziej szczegółowoCPU. 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ółowo5. Mikroprocesory 8086 i 8088
Mikroprocesory 8086 i 8088 5. Mikroprocesory 8086 i 8088 Mikroprocesory 8086 i 8088 (ich twórca - firma Intel - stosuje oznaczenia iapx86 i iapx88 odpowiednio) są układami wielkiej skali integracji (LSI)
Bardziej szczegółowoLista 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ółowoMetody 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ółowoAdam Kotynia, Łukasz Kowalczyk
Adam Kotynia, Łukasz Kowalczyk Dynamiczna alokacja pamięci Alokacja pamięci oraz dezalokacja pamięci jest to odpowiednio przydział i zwolnienie ciągłego obszaru pamięci. Po uruchomieniu, proces (program)
Bardziej szczegółowoProgramowanie 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ółowo1 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ółowoProgramowanie 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ółowoPROGRAMOWANIE 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ółowoInstrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada
Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Tydzień 5 Jednostka Centralna Zadania realizowane przez procesor Pobieranie rozkazów Interpretowanie rozkazów Pobieranie danych Przetwarzanie danych Zapisanie danych Główne zespoły
Bardziej szczegółowoĆ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ółowoARCHITEKTURA 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ółowoPodstawowe 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ółowoPodstawy 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ółowopetla:... ; 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ółowoWprowadzenie 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ółowoLista 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ółowoInstrukcja 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ółowoZuzanna Hartleb i Artur Angiel
ARCHITEKTURA KOMPUTERÓW - LABORATORIUM Program hybrydowy Dokumentacja ćw. 1-4 Zuzanna Hartleb i Artur Angiel 2010-06-16 Działanie Program pobiera od użytkownika liczbę zmiennoprzecinkową, sprawdza poprawnośd
Bardziej szczegółowoMikrokontroler 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ółowoWprowadzenie 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ółowoSTART: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)
Ćwiczenie 01 - Strona nr 1 ĆWICZENIE 01 PRACA KROKOWA MIKROKONTROLERA Cel ćwiczenia: Zapoznanie się ze środowiskiem programowym: poznanie funkcji asemblera, poznanie funkcji symulatora. Operacje na plikach,
Bardziej szczegółowoOperatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:
Operatory logiczne Komputery i ich logika AND - && Podstawy programowania w C++ Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com
Bardziej szczegółowoArchitektura 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ółowoProgramowanie 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ółowoOrganizacja typowego mikroprocesora
Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Bardziej szczegółowoPROGRAMOWANIE 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. 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ółowoKod 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ółowoPodstawy 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ółowoLiczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1
Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1 PODSTAWY TECHNIKI CYFROWEJ I MIKROPROCESOROWEJ EIP KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII WWW.KEIASPE.AGH.EDU.PL AKADEMIA
Bardziej szczegółowoNotatka Aplikacyjna NA 03006PL Maj 2016
Notatka Aplikacyjna NA 03006PL Spis treści 1. Wstęp... 2 1.1. Wymagania programowe... 2 2. Tworzenie projektu i dodawanie programu w... 3 3. Organizacja okien dla języka IL... 5 4. Składnia języka IL...
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoProcesory 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ółowoA Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym
MARIE A Machine Architecture that is Really Intuitive and Easy http://computerscience.jbpub.com/ecoa Słowo 16b Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym od 8000h (- 32,768 = -2^15) do 7FFFh
Bardziej szczegółowoPodstawy programowania w języku C
Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu
Bardziej szczegółowoStruktura programu w asemblerze mikrokontrolera 8051
Struktura programu w asemblerze mikrokontrolera 8051 Program w asemblerze, dający ten sam kod wynikowy, może być napisany na wiele sposobów. Źle napisany program po pewnym czasie (a być może już w czasie
Bardziej szczegółowoProgramowanie w języku C++ Grażyna Koba
Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad
Bardziej szczegółowoPodstawy Informatyki Języki programowania c.d.
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy 2 Makroasembler - założenia Przykład
Bardziej szczegółowo12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:
PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej
Bardziej szczegółowoWstę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ółowoPodstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Bardziej szczegółowoArchitektura 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/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>
Szablon programu: /* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include /* opcjonalne: deklaracja typów o rozmiarze jednego i dwóch
Bardziej szczegółowoSpis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne
Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...
Bardziej szczegółowoArchitektura 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ółowoProgramowanie 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ółowoarchitektura komputerów w 1 1
8051 Port P2 Port P3 Transm. szeregowa Timery T0, T1 Układ przerwań Rejestr DPTR Licznik rozkazów Pamięć programu Port P0 Port P1 PSW ALU Rejestr B SFR akumulator 8051 STRUKTURA architektura komputerów
Bardziej szczegółowoPROGRAMY REZYDENTNE Terminate and State Resident, TSR
PROGRAMY REZYDENTNE Terminate and State Resident, TSR O co tu chodzi Podstawowe reguły Jak może program zostać rezydentnym Przechwytywanie przerwań Jak się samoznaleźć w pamięci Aktywacja TSR-u. Problemy
Bardziej szczegółowoMagistrala 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ółowoPracownia Komputerowa wykład IV
Pracownia Komputerowa wykład IV dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada/pk16 1 Reprezentacje liczb i znaków! Liczby:! Reprezentacja naturalna nieujemne liczby całkowite naturalny
Bardziej szczegółowoProgramowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
Bardziej szczegółowoARCHITEKRURA 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ółowoArytmetyka 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ółowoOperacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.
Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach
Bardziej szczegółowoProgramowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 2: Reprezentacja danych Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Kilka ciekawostek Zapisy binarny, oktalny, decymalny
Bardziej szczegółowo2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe komputerów ASK MP.02 c Dr inż. Ignacy Pardyka 1 UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach 2 Literatura Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka
Bardziej szczegółowo