1. Dyrektywy asemblerowe
|
|
- Aleksander Kulesza
- 6 lat temu
- Przeglądów:
Transkrypt
1 1. Dyrektywy asemblerowe Asembler A51 ma kilka dyrektyw, które pozwalają na definiowanie symboli, wartości, rezerwację i inicjalizację pamięci oraz sterowanie umiejscowieniem kodu programu. Dyrektywy nie powinny być mylone z instrukcjami. Nie wytwarzają one wykonywalnego kodu i, za wyjątkiem dyrektyw DB i DW, oraz nie wpływają bezpośrednio na zawartość kodu programu. Poniższa tabela pokazuje najczęściej wykorzystywane dyrektywy asemblerowe zaimplementowane w omawianym asemblerze firmy Keil. Dyrektywa Format Opis Segmenty CSEG CSEG [AT adres_absolutny] Definicja segmentu absolutnego w pamięci kodu BSEG BSEG [AT adres_absolutny] Definicja segmentu absolutnego w pamięci danych adresowanej bitowo DSEG DSEG [AT adres_absolutny] Definicja segmentu absolutnego w wewnętrznej pamięci danych adresowanej bezpośrednio ISEG ISEG [AT adres_absolutny] Definicja segmentu absolutnego w wewnętrznej pamięci danych adresowanej pośrednio XSEG XSEG [AT adres_absolutny] Definicja segmentu absolutnego w zewnętrznej pamięci danych Definicje symboli EQU symbol EQU Trwałe przypisanie wartości symbolowi SET symbol SET Czasowe przypisanie wartości symbolowi BIT symbol BIT adres_bitu Definicja adresu bitu w bitowej przestrzeni danych CODE symbol CODE adres_kodu Przypisanie symbolowi określonego adresu w przestrzeni pamięci kodu DATA symbol DATA adres_danej Przypisanie symbolowi określonego adresu z wewnętrznej przestrzeni danych adresowanej bezpośrednio IDATA symbol IDATA adres_danej Przypisanie symbolowi określonego adresu z wewnętrznej przestrzeni danych adresowanej pośrednio XDATA symbol XDATA adres_danej Przypisanie symbolowi określonego adresu z zewnętrznej przestrzeni danych Inicjalizacja pamięci kodu DB [etykieta:] DB [,,] Tworzy listę wartości, każda o rozmiarze bajta DW [etykieta:] DW [,,] Tworzy listę wartości, każda o rozmiarze słowa Rezerwacja pamięci danych DBIT [etykieta:] DBIT Rezerwuje w pamięci określoną m liczbę bitów DS [etykieta:] DS Rezerwuje w pamięci określoną m liczbę bajtów Przełączanie adresów Określa umiejscowienie bieżącego segmentu USING USING Określa predefiniowany adres rejestru symbolicznego i rezerwuje przestrzeń dla określonego banku rejestrów Inne NAME NAME nazwa_modułu Określa nazwę bieżącego modułu END END Wskazuje koniec programu 1
2 2. Dyrektywy związane z segmentami Segment jest blokiem pamięci kodu lub danych, który tworzy asembler z kodu lub danych znajdujących się w pliku źródłowym. Użycie segmentów w module źródłowym jest zależne od złożoności aplikacji. Małe aplikacje wymagają mniejszej pamięci i są zwykle mniej złożone niż duże, wielomodułowe aplikacje. Mikrokontroler MCS-51 ma kilka różnych, specyficznych dla siebie, przestrzeni pamięci, jak: pamięć kodu programu, wewnętrzna pamięć danych adresowana bitowo, bezpośrednio lub pośrednio, zewnętrzna pamięć danych. Segmenty są więc używane do umiejscowienia kodu programu, stałych i zmiennych w tych przestrzeniach. 2.1 Licznik położenia Podczas swojej pracy program asemblujący (asembler) przyporządkowuje każdemu segmentowi tzw. licznik położenia, który jest wskaźnikiem adresu w przestrzeni aktywnego segmentu. Adres ten jest adresem względnym dla segmentu relokowalnego lub adresem bezwzględnym (rzeczywistym) dla segmentu absolutnego. Kiedy dany segment jest po raz pierwszy aktywowany, licznik położenia jest ustawiany na 0. Jego wartość jest zmieniana po przeanalizowaniu danej instrukcji o wartość związaną z jej implementacją w danym segmencie. Dyrektywy inicjalizacji i rezerwacji pamięci (np. DS, DB lub DBIT) zmieniają wartość licznika położenia po przydzieleniu pamięci przez tą dyrektywę. Dyrektywa ustala nową wartość dla licznika położenia. Jeśli nastąpi zmiana aktywnego segment na inny, a potem powrót do niego, to licznik położenia przyjmuje taką wartość, jaką miał ostatnio przy korzystaniu z danego segmentu. Zawsze, kiedy asembler napotka etykietę, przypisuje jej bieżącą wartość licznika położenia i typ bieżącego segmentu dla tej etykiety. Znak dolara ($) sygnalizuje wartość licznika położenia w aktywnym segmencie. Kiedy używa się symbolu $, należy pamiętać, że jego wartość zmienia się z każdą instrukcją, lecz tylko po tym, jak instrukcja ta zostanie całkowicie zanalizowana przez asembler. Jeśli użyje się znaku $ w miejscu operandu instrukcji lub dyrektywy, to reprezentuje on wtedy adres pierwszego bajta tej instrukcji. 2.2 Segmenty bezwzględne (absolutne) Segmenty absolutne rezydują w określonym typie pamięci pod stałym adresem ustalanym przez programistę na poziomie pisania kodu programu. Są tworzone przy użyciu dyrektyw: CSEG, BSEG, DSEG, ISEG i XSEG. Wymienione dyrektywy umożliwiają umieszczanie kodu i danych lub rezerwację przestrzeni pamięci pod określonym adresem. Segmenty absolutne są używane wtedy, gdy istnieje konieczność posiadania dostępu do stałego miejsca w pamięci lub umieszczenia kodu lub stałych od określonego adresu. Po resecie mikrokontroler rozpoczyna wykonywanie programu od adresu 0. Jeśli właściwy program nie zaczyna się od tego adresu, to pod nim musi być umieszczona co najmniej jedna instrukcja, która przekieruje wykonywanie programu pod właściwy adres. Aby wymusić umieszczenie kodu programu od innego adresu należy wykorzystać segmenty absolutne. Poniższy przykład przedstawia fragment programu, gdzie wymuszono w początkowej fazie jego wykonywania, skok do podprogramu inicjalizującego, który jest umieszczony w dalszej części pamięci kodu. CSEG AT 0 RESET_VECT: LJMP STARTUP Kod programu, który został umieszczony od adresu 0000H za pomocą dyrektywy CSEG AT 0 wykonuje operację skoku pod etykietę STARTUP. BSEG, CSEG, DSEG, ISEG, XSEG Dyrektywy BSEG, CSEG, DSEG, ISEG, XSEG określają adres bezwzględny w odpowiednim segmencie programu, od którego będą umieszczane instrukcje występujące po tej dyrektywie. Adres segmentu jest więc ustalany przez programistę już w chwili pisania programu. Omawiane dyrektywy mają następujący format: BSEG AT adres ;definiuje bezwzględny adres w segmencie BIT CSEG AT adres ;definiuje bezwzględny adres w segmencie CODE DSEG AT adres ;definiuje bezwzględny adres w segmencie DATA ISEG AT adres ;definiuje bezwzględny adres w segmencie XDATA XSEG AT adres ;definiuje bezwzględny adres w segmencie IDATA 2
3 adres jest bezwzględnym adresem bazowym, od którego będzie rozpoczynał się segment. Adres nie może zawierać odniesień w przód i musi być m, które po obliczeniu daje konkretną wartość. Dyrektywy BSEG, CSEG, DSEG, ISEG, XSEG określają segmenty absolutne odpowiednio w przestrzeni: danych adresowanych bitowo, kodu, wewnętrznej przestrzeni danych adresowanych bezpośrednio, wewnętrznej przestrzeni danych adresowanych pośrednio, zewnętrznej przestrzeni danych. Użycie jednej z wymienionych dyrektyw powoduje, że program asemblujący kończy wcześniejszy segment, jeśli taki był, w danej klasie pamięci i tworzy nowy segment absolutny w wyspecyfikowanej klasie, rozpoczynając go od adresu podanego w instrukcji. Jeśli w instrukcji nie zostanie określony adres, to jest kontynuowany ostatni bezwzględny segment danego typu. Jeśli wcześniej nie został określony żaden segment bezwzględny tego typu, a w instrukcji nie określono adresu, to nowy segment jest tworzony od adresu 0. BSEG AT 20h ;absolutny segment bitowy od 20h DEC_FLAGA: DBIT 1 ;bit o adresie absolutnym INC_FLAGA: DBIT 1 CSEG AT 100h ;absolutny segment kodu od 100h PARZ_TAB: DB 00h ;parzystość dla 00h DB 01h ;01h DB 00h ;02h DB 01h ;03h DB 01h ;FEh DB 00h ;FFh DSEG AT 40h ;absolutny segment danych od 40h TMP_A: DS 2 ;słowo danych o adresie absolutnym TMP_B: DS 4 TMP_IA: DS 2 TMP_IB: DS 4 ISEG AT 80h ;absolutny segment danych w pamięci ;adresowanej pośrednio od 80h XSEG AT 1000h ;absolutny segment w zewnętrznej ;pamięci danych od 1000h NAZWA1: DS 25 ;dana w pamięci zewnętrznej o adresie NAZWA2: DS 25 ;absolutnym WERSJA: DS 25 BSEG ;dalsza część absolutnego NOWA_FLAGA: DBIT 1 ;segmentu bitowego 2.3 Segment domyślny Na początku procesu asemblacji pliku źródłowego, program asemblujący domyślnie przyjmuje, że wybrany został segment kodu. Dodatkowo licznik położenia przypisany do tego segmentu inicjowany jest adresem 0000H. Umożliwia to stworzenie prostego programu bez konieczności określania segmentów relokowalnych i/lub absolutnych. 3. Definicje symboli Dyrektywy definiujące symbole umożliwiają tworzenie symboli, które mogą być używane do reprezentacji rejestrów, liczb i adresów. Symbole definiowane przez te dyrektywy nie mogą być wcześniej zdefiniowane i nie mogą być definiowane ponownie. Wyjątkiem od tych reguł jest dyrektywa SET. 3
4 EQU, SET Dyrektywy EQU i SET przyporządkowują wartości numeryczne lub symbole rejestrów do wyspecyfikowanych nazw symbolicznych. Symbole zdefiniowane za pomocą dyrektywy EQU nie mogą być wcześniej zdefiniowane, a także nie mogą być później redefiniowane. Dyrektywa SET umożliwia późniejszą redefinicję symbolu. Instrukcje wymagające dyrektyw EQU i SET maja następujący format: symbol EQU symbol EQU rejestr symbol SET symbol SET rejestr symbol nazwa symboliczna do zdefiniowania. Wyrażenie lub rejestr wyspecyfikowany w dyrektywach EQU lub SET będzie wstawiany przy każdym wystąpieniu symbolu w bieżącym programie asemblerowym. numeryczne, które nie zawiera odniesień w przód lub jest prostym m relokowalnym. rejestr jedna z nazw rejestrów, np.: A, R0, R1, R2, R3, R4, R5, R6 lub R7. Symbole zdefiniowane za pomocą dyrektywy EQU lub SET mogą być użyte w operandach, wyrażeniach lub adresach. Natomiast symbole, które są zdefiniowane jako nazwy rejestrów, mogą być użyte wszędzie, gdzie dopuszczalne jest użycie rejestrów. Nie można użyć dyrektywy SET, jeśli symbol został wcześniej zdefiniowany za pomocą dyrektywy EQU i odwrotnie. GRANICA EQU 1200 ROZMIAR EQU GRANICA 'A' SERIAL EQU SBUF ACCU EQU A LICZNIK1 EQU R5 WARTOSC SET 100 WARTOSC SET WARTOSC / 2 LICZNIK2 SET R1 TEMP SET LICZNIK2 TEMP SET WARTOSC * WARTOSC BIT, CODE, DATA, IDATA, XDATA Dyrektywy BIT, CODE, DATA, IDATA, XDATA przyporządkowują danemu symbolowi adres w określonym typie pamięci. Symbole zdefiniowane za pomocą dyrektyw BIT, CODE, DATA, IDATA, XDATA nie mogą być zmieniane, jak również redefiniowane. Omawiane dyrektywy mają następujący format: symbol BIT adres_bit symbol CODE adres_code symbol DATA adres_data symbol IDATA adres_idata symbol XDATA adres_xdata symbol adres_bit adres_code definiowana nazwa symboliczna. Może być używany w każdym miejscu, gdzie wymagany jest adres w pamięci wyspecyfikowanego typu. jest adresem bitu z wewnętrznej pamięci danych w przestrzeni o adresach z zakresu 20H.. 2FH adresowanej bitowo lub adresem bitu rejestru SFR adresowanego bitowo. jest adresem w pamięci kodu z zakresu 0000H.. FFFFH. 4
5 adres_data jest adresem rejestru SFR z zakresu adresów 80H.. FFH lub adresem z wewnętrznej pamięci danych z zakresu 0.. 7FH. adres_idata jest adresem w wewnętrznej pamięci danych adresowanej pośrednio z zakresu 00H.. FFH. adres_xdata jest adresem w zewnętrznej pamięci danych z zakresu 0000H.. FFFFH. Przykłady DATA_SEG SEGMENT BIT RSEG DATA_SEG ;segment relokowalny adresowany ;bitowo CTRL: DS 1 ;1 bajtowa zmienna (CTRL) ALARM BIT CTRL.0 ;bit w relokowalnym bajcie SHUT BIT ALARM+1 ;następny bit ENABLE_FLAG BIT 60H ;bezwzględny bit DONE_FLAG BIT 24H.2 ;bezwzględny bit RESTART CODE 00H INTVEC_0 CODE RESTART + 3 INTVEC_1 CODE RESTART + 0BH INTVEC_2 CODE RESTART + 1BH SERBUF DATA SBUF ;redefinicja bufora SBUF RESULT DATA 40H RESULT2 DATA RESULT + 2 BUFFER IDATA 60H BUF_LEN EQU 20H BUF_END IDATA BUFFER + BUF_LEN 1 XSEG1 SEGMENT XDATA RSEG XSEG1 DTIM: DS 6 ;rezerwuje 6 bajtów dla DTIM TIME XDATA DTIM + 0 DATE XDATA DTIM Inicjalizacja pamięci Dyrektywy inicjalizujące pamięć są używane do inicjalizacji pamięci kodu stałymi wartościami o rozmiarze jednego lub dwóch bajtów. Zapisywanie pamięci wspomnianymi stałymi odbywa się od miejsca wskazywanego przez bieżącą wartość licznika położenia w obecnie aktywnym segmencie. DB Dyrektywa DB inicjalizuje pamięć wartościami, z których każda ma rozmiar jednego bajta. Omawiana dyrektywa ma następujący format: etykieta: DB, etykieta jest symbolem, który określa adres inicjowanej pamięci. jest wartością o rozmiarze bajta. Każde może być symbolem, ciągiem znaków lub m. Dyrektywa DB może być umieszczana tylko wewnątrz segmentu kodu programu. Jeśli zostanie użyta w innym segmencie, program asemblujący wygeneruje informację o błędzie. REQUEST: DB 'WCISNIJ DOWOLNY KLAWISZ', 0 TABLE: DB 0,1,8,'A','0', LOW(TABLE),';' ZERO: DB 0, '''' CASE_TAB: DB LOW(REQUEST), LOW(TABLE), LOW(ZERO) KODY_LED DB 23H ;kod zera 5
6 DB 3FH ;kod jedynki DB 0FAH ;kod dziewiątki DW Dyrektywa DW inicjalizuje pamięć wartościami, z których każda ma rozmiar dwóch bajtów. Omawiana dyrektywa ma identyczny format, jak dyrektywa DB. etykieta: DW, etykieta jest symbolem, który określa adres inicjowanej pamięci. jest wartością o rozmiarze dwóch bajtów. Każde może być symbolem, ciągiem znaków lub m. Dyrektywa DW może być umieszczana tylko wewnątrz segmentu kodu programu. Jeśli zostanie użyta w innym segmencie, program asemblujący wygeneruje informację o błędzie. TABLE: DW 1234, 233AH, QR CASE_TAB: DW CASE0, CASE1, CASE2, CASE3, CASE4 DW $ 5. Rezerwacja pamięci Dyrektywy rezerwacji pamięci są używane do rezerwacji przestrzeni jednostkami o rozmiarze: bajta, słowa lub bitu. Rezerwacja przestrzeni rozpoczyna się w punkcie wskazywanym przez bieżącą wartość licznika położenia w obecnie aktywnym segmencie. DBIT Dyrektywa DBIT rezerwuje przestrzeń w segmencie danych adresowanych bitowo. Jej format jest następujący: etykieta DBIT etykieta jest symbolem, który określa adres w rezerwowanej pamięci. Etykieta jest symbolem typu BIT i pobiera bieżącą wartość adresu oraz klasę pamięci aktywnego segmentu. Etykieta ta może być użyta wszędzie tam, gdzie dopuszczalne jest użycie segmentu tego typu. liczba rezerwowanych jednostek, każda o rozmiarze jednego bita Wyrażenie nie może zawierać odniesień w przód, symboli relokowalnych lub symboli zewnętrznych. Dyrektywa DBIT rezerwuje przestrzeń w segmencie adresowanym bitowo rozpoczynając od bieżącego adresu. Licznik położenia związany z segmentem bitowym jest zwiększana o wartość. Należy pamiętać, że licznik położenia dla segmentu bitowego odnosi się do bitów nie do bajtów. ON_FLAG: DBIT 1 ; rezerwuje fragment pamięci o rozmiarze 1 bita OFF_FLAG: DBIT 2 ; rezerwuje fragment pamięci o rozmiarze 2 bitów UWAGA. Asembler firmy Keil jest asemblerem dwuprzebiegowym. W pierwszym przejściu, zbierane są wszystkie symbole oraz określana jest długość każdej instrukcji. W drugim przejściu, obliczane są wyrażenia z doniesieniami w tył oraz tworzony jest kod obiektów. Z tego powodu wyrażenia używane w dyrektywie DBIT nie mogą zawierać odniesień w tył. 6
7 DS Dyrektywa DS rezerwuje określoną liczbę bajtów w przestrzeni pamięci danych. Jej format ma następującą postać: etykieta: DS etykieta jest symbolem, który określa adres rezerwowanej pamięci. Etykieta pobiera bieżącą wartość adresu i klasę pamięci aktywnego segmentu. Etykieta ta może być użyta tam, gdzie użycie segmentu tego typu jest dopuszczalne. jest liczbą rezerwowanych jednostek, każda o rozmiarze jednego bajta. Wyrażenie nie może zawierać odniesień w przód, symboli relokowalnych lub zewnętrznych symboli. Dyrektywa DS rezerwuje przestrzeń w bieżącym segmencie rozpoczynając od bieżącego adresu. Jest on następnie zwiększany o wartość. Suma licznika położenia i wartości nie może przekroczyć granicznego rozmiaru dostępnej przestrzeni adresowej w danym segmencie. GAP: DS (($ + 12) AND 0FFF0H) $ DS 20 TIME: DS 8 Uwaga zawarta w opisie dyrektywy DBIT dotyczy również dyrektywy DS. 6. Kontrolowanie adresów w segmentach Poniższe dyrektywy umożliwiają sterowanie wartością licznika położenia lub symbolami rejestrów absolutnych. Dyrektywa jest używana do zmiany wartości licznika położenia w obecnie aktywnym segmencie i ustalenia nowego adresu od którego będą umieszczane dalsze instrukcje. Omawiana dyrektywa ma następujący format: musi być m absolutnym lub relokowalnym w prosty sposób bez odniesień w przód. Mogą być używane tylko adresy absolutne lub wartości symboliczne z bieżącego segmentu. Kiedy program asemblujący napotka dyrektywę, obliczana jest wartość i zmieniana wartość licznika położenia dla bieżącego segmentu. Jeśli instrukcja wystąpi w segmencie absolutnym, to do licznika położenia jest zapisywana wartość adresu absolutnego. Jeśli instrukcja wystąpi w segmencie relokowalnym, to do licznika położenia zapisywana jest wartość określająca offset wyspecyfikowanego wyrażenia. Dyrektywa zmienia licznik położenia, nie tworząc przy tym nowego segmentu. Użycie tej dyrektywy może powodować powstawanie dziur w segmencie. W segmencie absolutnym licznik położenia może nie odnosić się do wcześniejszego adresu będącego adresem bazowym segmentu. 100H RESTART EXIT1 ($ + 16) AND 0FFF0H 7
8 USING Dyrektywa USING określa, który bank rejestrów ma być użyty dla kodowania rejestrów AR0 do AR7. Jej format jest określony jak poniżej: USING jest numerem banku rejestrów z zakresu 0 do 3. Dyrektywa USING nie generuje żadnego kodu zmieniającego bank rejestrów, dlatego należy się upewnić, że wybrano właściwy bank rejestrów. Do zmiany banku rejestrów można użyć poniższy przykład, w którym wybrano bank 2 rejestrów: PUSH PSW MOV PSW,#(2 SHL 3) POP PSW ;zapamiętanie PSW/banku rejestrów ;wybór banku 2 rejestrów ;inne instrukcje ;przywrócenie PSW/banku rejestrów Bank rejestrów wybrany przez dyrektywę USING jest zaznaczany w pliku *.obj, a przestrzeń pamięci wymagana przez ten bank rejestrów jest rezerwowana przez linker. Wartości AR0 do AR7 są obliczane jako absolutne adresy rejestrów R0 do R7 w banku rejestrów określonym przez dyrektywę USING. Niektóre instrukcje jak PUSH i POP umożliwiają tylko użycie absolutnych adresów rejestrów. Domyślnie do symboli AR0 do AR7 przypisane są rejestry banku 0. USING 3 PUSH AR2 ;odłóż na stos rejestr 2 z banku 3 USING 1 PUSH AR2 ;odłóż na stos rejestr 2 z banku 1 UWAGA. Kiedy do zdefiniowania symboli dla ARn użyta jest dyrektywa EQU, to adres rejestru Rn jest obliczany w momencie definiowania symbolu, a nie w miejscu jego użycia. Kiedy dyrektywa USING zmienia później bank rejestrów, zdefiniowany symbol nie ma właściwego adresu rejestru ARn i generowany kod jest prawdopodobnie niepoprawny. 7. Inne dyrektywy NAME Dyrektywa NAME określa nazwę, która będzie użyta dla oznaczenia modułu obiektowego wygenerowanego na podstawie bieżącego programu. Nazwa pliku obiektowego nie jest nazwą modułu obiektowego. Nazwa modułu obiektowego jest wbudowana w plik obiektowy. Dyrektywa NAME ma następujący format: NAME nazwa_modułu nazwa_modułu jest nazwą, która będzie użyta do oznaczenia modułu obiektowego. Jej długość nie może przekroczyć 40 znaków. Przy określaniu nazwy modułu należy przestrzegać zasad określonych dla nazw symbolicznych. W danym pliku programu dyrektywa NAME może być użyta tylko jeden raz. Jeśli omawiana dyrektywa nie zostanie w ogóle użyta, to nazwą modułu obiektowego będzie nazwa pliku źródłowego bez rozszerzenia. Przykład: NAME MOJ_MODUL 8
9 END Dyrektywa END określa koniec modułu asemblerowego. Tekst, który występuje za dyrektywą END jest ignorowany przez program asemblujący. Dyrektywa END jest wymagana w każdym pliku asemblerowym. Przykład: END 8. Symbole Symbol jest nazwą definiowaną w celu reprezentacji wartości, bloku tekstu, adresu lub nazwy rejestru. Symbole mogą być również używane do reprezentowania stałych numerycznych i wyrażeń. Symbole mogą składać się z maksymalnie 31 znaków należących do poniższej listy: A-Z, a-z, 0-9, _,? Nazwa symbolu może rozpoczynać się od dowolnego z tych znaków, za wyjątkiem cyfr 0-9. Symbole mogą być definiowane w wielu różnych przypadkach. Można definiować symbol do reprezentacji wyrażeń: NUMER EQU 5 PRAWDA SET 1 FALSZ SET 0 etykiet w programie ETYKIETA_1: DJNZ R0, ETYKIETA_1 lub odniesień do adresu zmiennej BUFOR_SZER DATA 99H Symbole są używane w całym programie asemblerowym, gdyż są łatwiejsze do zrozumienia i zapamiętania, niż adres lub stała numeryczna. 9. Etykiety Etykieta definiuje miejsce (adres) w przestrzeni programu lub danych. Wszystkie zasady dotyczące tworzenia nazw symbolicznych mają zastosowanie przy tworzeniu etykiet. Podczas ich definiowania, etykieta musi być pierwszym polem tekstowym w linii. Może być ona poprzedzona znakami tabulacji i/lub spacji. Znak dwukropka (:) musi wystąpić bezpośrednio po nazwie symbolicznej etykiety, aby można było rozpoznać, że jest to etykieta. W linii może być zdefiniowana tylko jedna etykieta. Na przykład: ETYK_1: DS 2 ETYK_2: ;etykieta na siebie samą LICZBY: DB 27, 33, ZNAKI, 0 ;etykieta na stałe wartości KOPIUJ: MOV R6, #12H ;etykieta na instrukcję w programie W powyższym przykładzie, ETYK_1, ETYK_2, LICZBY i KOPIUJ są etykietami. Etykieta może odnosić się do kodu programu, przestrzeni zmiennych w wewnętrznej lub zewnętrznej pamięci danych lub stałej przechowywanej w pamięci programu. Przy definiowaniu etykiety automatycznie przypisywana jest jej bieżącą wartość licznika położenia w danym segmencie. Etykieta jest również używana w instrukcjach skoków, do wskazania miejsca (adresu) przeznaczenia. Instrukcja występująca za etykieta jest tą instrukcją, która będzie wykonywana po skoku pod adres programu wskazany etykietą. W programie można nie tylko wykonywać skoki pod określone etykiety, lecz także wywoływać podprogramy określone etykietą. W takim przypadku wykonywany jest kod znajdujący się za etykieta, aż do napotkania instrukcji asemblerowej RET. 9
10 10. Wyrażenia i operatory Operand (argument operacji) może być stałą numeryczną, symbolem, ciągiem znakowym lub m. Operatory są używane do łączenia i porównywania operandów wewnątrz programu asemblerowego. Operatory nie są instrukcjami języka asemblera, ani nie generują kodu asemblerowego. Reprezentują tylko operacje, które są szacowane w czasie asemblacji programu. Dlatego operatory mogą obejmować tylko obliczenia wartości, które są znane podczas asemblacji programu. Wyrażenie jest połączeniem liczb, ciągów znakowych, symboli i operatorów, które podlega zamianie na 16- bitowaą wartość binarną. Wyrażenia są szacowane podczas asemblacji i dlatego mogą być używane do obliczania wartości, które w innym przypadku byłyby trudne do wyznaczenia wcześniej Liczby Liczby mogą być określane jako wartości: szesnastkowe, dziesiętne, ósemkowe lub dwójkowe. Podstawa liczby jest określana przez ostatni znak w zapisie liczby. Liczba, która jest zapisana bez specyfikatora podstawy, jest interpretowana jako liczba dziesiętna. Poniższa tabela pokazuje specyfikatory podstawy liczb, przyrostki i przykłady. Podstawa Przyrostek Dopuszczalne znaki Przykłady Szesnastkowa H, h 0-9, A-F, a-f 1234H 0A0F0H 0F0H 1a24h 34fcH Dziesiętna D, d D 2092d Ósemkowa O, o, Q, q q 34Q 345o 44O Dwójkowa B, b 0 i b 10011B Pierwszym znakiem liczby musi być zawsze cyfra z zakresu 0 do 9. Dlatego liczby szesnastkowe, których zapis wartości zaczyna się od litery muszą być poprzedzone cyfrą Znaki Program asemblujący dopuszcza użycie znaków ASCII w wyrażeniach do tworzenia wartości numerycznych. Wyrażenie takie może składać się maksymalnie z dwóch znaków objętych pojedynczym apostrofem ( ). Umieszczenie większej ilości znaków spowoduje wygenerowanie błędu podczas asemblacji. Poniżej przedstawiono kilka przykładów: A jest przeliczane na wartość 0041H AB jest przeliczane na wartość 4142H a jest przeliczane na wartość 0061H ab jest przeliczane na wartość 6162H ciąg pusty jest przeliczany na wartość 0000H abc generuje BŁĄD Znaki można również używać w każdym miejscu programu, gdzie wymagane są dane bezpośrednie. LITERA_A EQU A TEST: F SUBB A,# Ciągi znaków Ciągi znaków mogą być używane w połączeniu z dyrektywą DB do definiowania wiadomości używanych w programie. Taki ciąg musi być objęty pojedynczym apostrofem ( ). Na przykład: WIADOMOSC DB Wcisnij dowolny klawisz, aby kotynuowac. generuje szesnastkowe dane (57H, 63H, 69H, 73H, 6EH 69H 6AH,, 61H, 63H, 2EH) rozpoczynając od adresu oznaczonego etykietą WIADOMOSC. Ciągi i dane liczbowe mogą być łączone ze sobą w jednej linii. Na przykład: EOL_WIAD DB Koniec linii, 00H 10
11 dodaje wartość 00H na koniec ciągu Koniec linii. Aby wstawić w definiowanym ciągu znakowym znak pojedynczego apostrofu, należy wyspecyfikować go dwukrotnie pod rząd. MSG DB ISN T A QUOTE REQUIRED HERE? 11
petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla
Asembler A51 1. Symbole Nazwy symboliczne Symbol jest nazwą, która może być użyta do reprezentowania wartości stałej numerycznej, wyrażenia, ciągu znaków (tekstu), adresu lub nazwy rejestru. Nazwy symboliczne
Bardziej szczegółowoDyrektywy asemblerowe
Dyrektywy asemblerowe Asembler A51 ma kilka dyrektyw, które pozwalają na definiowanie symboli, wartości, rezerwację i inicjalizację pamięci oraz sterowanie umiejscowieniem kodu programu. Dyrektywy nie
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ółowoWstęp do assemblera MA51
Wstęp do assemblera MA51 Ryszard J. Barczyński, 2017 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Assembler Assembler to język programowania
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ółowo1.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ółowoWykład 4. Środowisko programistyczne
Wykład 4 Dostępne kompilatory KEIL komercyjny GNU licencja GPL ARM komercyjny IAR komercyjny 2 Porównanie kompilatorów 3 Porównanie kompilatorów 4 Keil uvision Graficzny edytor Kompilator i linker Symulator
Bardziej szczegółowoProgramowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,
Bardziej szczegół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ół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ół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 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ółowoMetody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015
Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane
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ół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
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ółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Bardziej szczegółowoĆwiczenie 2. Siedmiosegmentowy wyświetlacz LED
Ćwiczenie 2 Siedmiosegmentowy wyświetlacz LED 2-1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się studentów ze sposobem obsługi wielopozycyjnego 7-segmentowego wyświetlacza LED multipleksowanego programowo
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ół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ół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ółowoStałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
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ółowoTechnika mikroprocesorowa
Technika mikroprocesorowa Leksykon kieszonkowy Mirosław Kozioł Instytut Metrologii, Elektroniki i Informatyki 2016 Instytut Metrologii, Elektroniki i Informatyki, Uniwersytet Zielonogórski Niniejsze opracowanie
Bardziej szczegółowoTechniki mikroprocesorowe i systemy wbudowane
Techniki mikroprocesorowe i systemy wbudowane Wykład 1 Procesory rodziny AVR ATmega. Wstęp Wojciech Kordecki wojciech.kordecki@pwsz-legnica.eu Państwowa Wyższa Szkoła Zawodowa im. Witelona w Legnicy Wydział
Bardziej szczegółowoWstęp. do języka C na procesor 8051. (kompilator RC51)
Wstęp do języka C na procesor 8051 (kompilator RC51) Kompilator języka C Kompilator RC51 jest kompilatorem języka C w standardzie ANSI Ograniczeń w stosunku do ANSI jest niewiele głównie rzadkie operacje
Bardziej szczegółowoCYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe
MIKROKONTROLER RODZINY MCS 5 Cykl rozkazowy mikrokontrolera rodziny MCS 5 Mikroprocesory rodziny MCS 5 zawierają wewnętrzny generator sygnałów zegarowych ustalający czas trwania cyklu zegarowego Częstotliwość
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ół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ół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ółowoLogiczny model komputera i działanie procesora. Część 1.
Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.
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ółowoKurs Zaawansowany S7. Spis treści. Dzień 1
Spis treści Dzień 1 I Konfiguracja sprzętowa i parametryzacja stacji SIMATIC S7 (wersja 1211) I-3 Dlaczego powinna zostać stworzona konfiguracja sprzętowa? I-4 Zadanie Konfiguracja sprzętowa I-5 Konfiguracja
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ółowoProgramowanie na poziomie sprzętu. Tryb chroniony cz. 1
Tryb chroniony cz. 1 Moduł zarządzania pamięcią w trybie chronionym (z ang. PM - Protected Mode) procesorów IA-32 udostępnia: - segmentację, - stronicowanie. Segmentacja mechanizm umożliwiający odizolowanie
Bardziej szczegółowoimei Instytut Metrologii, Elektroniki i Informatyki
PODSTAWY TECHNIKI MIKROPROCESOROWEJ Laboratorium Elektrotechnika, studia stacjonarne pierwszego stopnia Temat: Wprowadzenie do programowania mikrokontrolerów rodziny MCS-51 imei Instytut Metrologii, Elektroniki
Bardziej szczegółowoAdresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów
Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście
Bardziej szczegółowoWstępdo assemblera MA51
no MACRO yes Wstępdo assemblera MA51 c.d. makrodefinicje Ryszard J. Barczyński, 2017 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Assembler
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ółowoPMiK Programowanie Mikrokontrolera 8051
PMiK Programowanie Mikrokontrolera 8051 Wykład 3 Mikrokontroler 8051 PMiK Programowanie mikrokontrolera 8051 - wykład S. Szostak (2006) Zmienna typu bit #define YES 1 // definicja stałych #define NO 0
Bardziej szczegółowoZmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
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ółowoZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS
ZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS Autorzy Wydanie Data : : : Zespół SABUR Sp. z o.o. 3.00 Sierpień 2013 2013 SABUR Sp. z o. o. Wszelkie prawa zastrzeżone Bez pisemnej zgody firmy SABUR Sp. z
Bardziej szczegółowoProgramowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler
Programowanie hybrydowe C (C++) - assembler MS Visual Studio Inline Assembler Wprowadzenie Możliwość wprowadzania kodu asemblerowego bezpośrednio w kodzie źródłowym w języku C lub C++ Nie wymagany MASM
Bardziej szczegółowoUwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Bardziej szczegółowoWstęp do informatyki- wykład 2
MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoStan wysoki (H) i stan niski (L)
PODSTAWY Przez układy cyfrowe rozumiemy układy, w których w każdej chwili występują tylko dwa (zwykle) możliwe stany, np. tranzystor, jako element układu cyfrowego, może być albo w stanie nasycenia, albo
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Tydzień 4 Tryby adresowania i formaty Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem stosowy Argument natychmiastowy Op Rozkaz
Bardziej szczegółowoOpis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Bardziej szczegółowoArytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI
Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System
Bardziej szczegół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ółowoWstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
Bardziej szczegółowoTemat: Algorytm kompresji plików metodą Huffmana
Temat: Algorytm kompresji plików metodą Huffmana. Wymagania dotyczące kompresji danych Przez M oznaczmy zbiór wszystkich możliwych symboli występujących w pliku (alfabet pliku). Przykład M = 2, gdy plik
Bardziej szczegółowoKod 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ół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ółowoAssembler A A 51 ASSEMBLER
Assembler A51-1 - A 51 ASSEMBLER Operatory, adresowanie i wyrażenia Programy asemblera dla procesorów 8051 składają się ze zbioru instrukcji. Pojedyncza linia programu może zawierać najwyżej jedną instrukcję
Bardziej szczegółowoSYSTEMY 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ółowoPracownia Komputerowa wykład V
Pracownia Komputerowa wykład V 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 system
Bardziej szczegółowoDla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego
Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia
Bardziej szczegółowoKonfiguracja parametrów pozycjonowania GPS 09.05.2008 1/5
Konfiguracja parametrów pozycjonowania GPS 09.05.2008 1/5 Format złożonego polecenia konfigurującego system pozycjonowania GPS SPY-DOG SAT ProSafe-Flota -KGPS A a B b C c D d E e F f G g H h I i J j K
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ółowoDariusz Kozak ZESTAW URUCHOMIENIOWY MIKROKOMPUTERÓW JEDNOUKŁADOWYCH MCS-51 ZUX51. Asembler ASMX51 INSTRUKCJA OBSŁUGI
Dariusz Kozak ZESTAW URUCHOMIENIOWY MIKROKOMPUTERÓW JEDNOUKŁADOWYCH MCS-51 ZUX51 Asembler ASMX51 INSTRUKCJA OBSŁUGI 2012 DK Wszystkie prawa zastrzeżone Kopiowanie, powielanie i rozpowszechnianie w jakiejkolwiek
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ółowoTechniki multimedialne
Techniki multimedialne Digitalizacja podstawą rozwoju systemów multimedialnych. Digitalizacja czyli obróbka cyfrowa oznacza przetwarzanie wszystkich typów informacji - słów, dźwięków, ilustracji, wideo
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ółowoASEMBLER MCS-51 Podstawowe informacje
Zachodniopomorski Uniwersytet Technologiczny WYDZIAŁ ELEKTRYCZNY Zakład Cybernetyki i Elektroniki LABORATORIUM TECHNIKA MIKROPROCESOROWA ASEMBLER MCS-51 Podstawowe informacje Opracował: mgr inŝ. Andrzej
Bardziej szczegółowoMikroprocesor Operacje wejścia / wyjścia
Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych
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ółowoInstytut Teleinformatyki
Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i mikrokontrolery Wstęp do programowania w asemblerze laboratorium: 01 autor: mgr inż. Michał Lankosz
Bardziej szczegółowoAkademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET
Akademia Górniczo- Hutmicza w Krakowie Katedra Elektroniki WIET Technika mikroprocesorowa Instrukcja 3 Stos i podprogramy Autor: Paweł Russek Tłumaczenie: Marcin Pietroń http://www.fpga.agh.edu.pl/tm ver.
Bardziej szczegółowoSystemy liczbowe używane w technice komputerowej
Systemy liczbowe używane w technice komputerowej Systemem liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach.
Bardziej szczegółowoSYSTEMY 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ół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ółowoPracownia Komputerowa wyk ad IV
Pracownia Komputerowa wykad IV dr Magdalena Posiadaa-Zezula Magdalena.Posiadala@fuw.edu.pl http://www.fuw.edu.pl/~mposiada Magdalena.Posiadala@fuw.edu.pl 1 Reprezentacje liczb i znaków Liczby: Reprezentacja
Bardziej szczegół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ółowoJęzyk C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
Bardziej szczegółowoDane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna
Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,
Bardziej szczegółowoSamodzielnie 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Ćwiczenie nr 6. Poprawne deklaracje takich zmiennych tekstowych mogą wyglądać tak:
Ćwiczenie nr 6 Temat: Operacje na łańcuchach znaków. Zagadnienia: Zasady pracy z łańcuchami tekstowymi (tablice wartości typu char). funkcje standardowe operacji na łańcuchach, funkcje I/O dla operacji
Bardziej szczegółowo1259 (10) = 1 * * * * 100 = 1 * * * *1
Zamiana liczba zapisanych w dowolnym systemie na system dziesiętny: W systemie pozycyjnym o podstawie 10 wartości kolejnych cyfr odpowiadają kolejnym potęgom liczby 10 licząc od strony prawej i numerując
Bardziej szczegółowoPLC1: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs podstawowy
PLC1: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs podstawowy DZIEŃ 1 Idea sterowania procesu lub maszyny: Sterowanie za pomocą przekaźników Sterowanie dedykowane Sterowanie za
Bardziej szczegółowoStałe i zmienne znakowe. Stała znakowa: znak
Stałe i zmienne znakowe. Stała znakowa: znak Na przykład: a, 1, 0 c Każdy znak jest reprezentowany w pamięci przez swój kod. Kody alfanumerycznych znaków ASCII to liczby z przedziału [32, 127]. Liczby
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ółowoJęzyk C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
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ół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ółowoNumeracja dla rejestrów zewnętrznych
Numeracja dla rejestrów zewnętrznych System ZPKSoft Doradca udostępnia możliwość ręcznego nadawania numerów dla procedur i dokumentów zgodnie z numeracją obowiązującą w rejestrach zewnętrznych, niezwiązanych
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoWielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika
Wielkości liczbowe Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Wprowadzenie, liczby naturalne Komputer to podstawowe narzędzie do wykonywania obliczeń Jeden bajt reprezentuje 0 oraz liczby naturalne
Bardziej szczegółowoZapis liczb binarnych ze znakiem
Zapis liczb binarnych ze znakiem W tej prezentacji: Zapis Znak-Moduł (ZM) Zapis uzupełnień do 1 (U1) Zapis uzupełnień do 2 (U2) Zapis Znak-Moduł (ZM) Koncepcyjnie zapis znak - moduł (w skrócie ZM - ang.
Bardziej szczegół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ółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 2 - wprowadzenie do zmiennych mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 23 października 2017 1 / 26 mgr inż. Krzysztof Szwarc Podstawy i
Bardziej szczegółowoSystemy 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ółowoPrzerwania w architekturze mikrokontrolera X51
Przerwania w architekturze mikrokontrolera X51 (przykład przerwanie zegarowe) Ryszard J. Barczyński, 2009 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku
Bardziej szczegół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ół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ółowoPo uruchomieniu programu nasza litera zostanie wyświetlona na ekranie
Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których
Bardziej szczegółowoWstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym
Wstęp do programowania Reprezentacje liczb Liczby naturalne, całkowite i rzeczywiste w układzie binarnym System dwójkowy W komputerach stosuje się dwójkowy system pozycyjny do reprezentowania zarówno liczb
Bardziej szczegółowo