IV PROGRAMOWANIE MIKROKOMPUTERA Technika Cyfrowa 2. Wykład 4: Programowanie mikrokomputera 8051

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

Download "IV PROGRAMOWANIE MIKROKOMPUTERA Technika Cyfrowa 2. Wykład 4: Programowanie mikrokomputera 8051"

Transkrypt

1 Technika Cyfrowa 2 Wykład 4: Programowanie mikrokomputera 81 dr inż. Jarosław Sugier Jaroslaw.Sugier@pwr.wroc.pl IIAR, pok. 227 C IV PROGRAMOWANIE MIKROKOMPUTERA 81 1 REJESTRY Oprócz DPTR wszystkie omawiane są jednobajtowe. Notacja: Rej.n = n-ty bit rejestru Rej Zestaw 8 rejestrów użytkowych R0 R7. Umieszczone w IRAM w jednym z czterech obszarów w zakresie adresów 00 1F, numer aktualnego obszaru jest pamiętany w słowie statusu PSW. R0 oraz R1 (ozn. Ri) = tzw. rejestry adresowe przy dostępie do komórek w IRAM / XRAM. Wszystkie pozostałe rejestry pamiętane są w obszarze SFR (adres FF) Akumulator (symbol A lub ACC; adres SFR: E0) rejestr wyróżniony w operacjach ALU oraz w komunikacji z XRAM. Symbol A = rejestr akumulator (adresowanie rejestrowe) Symbol ACC = rejestr SFR o adresie E0 (adresowanie bezpośrednie) Rejestr B (adres SFR: F0) wyróżniony w operacjach mnożenia i dzielenia, poza nimi może być ogólnego przeznaczenia REJESTRY c.d. PSW (Program Status Word; adres SFR: D0) słowo stanu programu. Zawartość: CY AC F0 RS1 RS0 OV F1 P numer aktywnego zestawu rejestrów użytkowych R0 R7: PSW.4, PSW.3 = RS1, RS0 (Register Bank Switch) 00, 01, 10 lub 11; przy RESET wpisywane 00. flagi ustawiane przez ALU: PSW.0 = P (parity) parzysta liczba jedynek w ACC, PSW.2 = OV (overflow) przepełnienie, przekroczenie zakresu liczb w kodzie uzupełnienia do 2 (U2), PSW.6 = AC (auxiliary carry) przeniesienie z młodszej do starszej tetrady (istotne w rozkazach arytmetycznych BCD), PSW.7 = CY (carry) przeniesienie z najstarszego bitu (oznacza np. przekroczenie zakresu przy sumowaniu w NKB), flagi dostępne do wykorzystania własnego: PSW.5 = F0 PSW.1 = F1 począwszy od REJESTRY c.d. Wskaźnik stosu (Stack Pointer; adres SFR: 81h) wskazuje szczyt obszaru zwanego stosem. Przy RESET = 7 obszar stosu rozpoczyna się za bankiem 0 rejestrów! Wskaźnik danych DPTR (Data Pointer) zawiera adres przy dostępie do XRAM; wyjątkowo 2 bajty (DPH DPL), adres SFR: Inne rejestry związane z obsługą urządzeń WE/WY, np. P0 / P1 / P2 / P3 ( SFR: 80 / 90 / A0 / B0) i szereg innych... Uwagi: 1. Wszystkie rejestry (od R0 do DPTR) są tak naprawdę komórkami IRAM (obszaru użytkowego albo SFR) specyfika mikrokontrolerów. 2. Na liście nie ma 2B rejestru PC (PCH PCL) tylko dlatego, że nie jest dostępny programowo TRYBY ADRESOWANIA I KODOWANIE ROZKAZÓW Tryb adresowania = sposób wskazania argumentu w rozkazie procesora. Kodowanie rozkazu: na 1 do 3B; bajt pierwszy zawsze zawiera kod operacji (opcode), po nim następuje 0 do 2 bajtów identyfikujących argument(-y) w zależności od trybu(-ów) adresowania. Przykłady na rozkazie przesłania MOV: MOV dst, src ;= prześlij dane z src do dst (dst src) 2.1 Adresowanie rejestrowe (registered addressing) Argument operacji znajduje się w rejestrze (nie jest potrzebny jego adres): MOV A, R7 prześlij do akumulatora bajt z rejestru R7 Szczegóły kodowania rozkazu MOV A, Rr: Kod: EF r2 r1 r0 gdzie r 2 r 1 r 0 jest numerem rejestru Rr Adresowanie natychmiastowe (immediate addressing) Argumentem operacji jest stała, której wartość podaje się za kodem rozkazu: MOV A, #5Ah prześlij do akumulatora bajt 5A Kod: 74 Stała: 5A Uwagi: 1. znak # oznacza w asemblerze 81 daną natychmiastową! 2. w rozkazie MOV DPTR, #1A2B dana natychmiastowa musi być 2B, kodowanie zajmuje 3B: kod (90) DPH (1A) DPL (2B); 3. ściślej: w rozkazie MOV A, #5Ah występują dwa tryby adresowania: rejestrowe (dst) i natychmiastowe (src). 4-6

2 2.3 Adresowanie bezpośrednie (direct addressing) Argument znajduje się w komórce pamięci, której adres podany jest za kodem rozkazu: MOV A, 5Ah pamięci wewn. o adresie 5A Kod: E5 Adres: 5A Uwaga: Stała bez żadnych dodatkowych oznaczeń w asemblerze 81 reprezentuje adres w adresowaniu bezpośrednim, a nie daną natychmiastową! Adresowanie pośrednie (indirect addressing) Argument znajduje się w komórce pamięci, której adres znajduje się w rejestrze. Np. a) adresowanie pośrednie IRAM (adres 8b w rejestrze R0 lub R1): MOV pamięci wewn. o adresie odczytanym z R0 b) adresowanie pośrednie XRAM: adres 16b w rej. DPTR lub w P2 (starszy bajt) + w R0 / R1 (młodszy bajt): MOVX pamięci zewn. o adresie odczytanym z DPTR Kod: E6 Kod: E0 Uwaga: przed nazwą rejestru oznacza w asemblerze 81 adresowanie pośrednie! Adresowanie względne (relative addressing) W rozkazach tzw. skoków względnych: adres docelowy skoku jest sumą bieżącej pozycji PC oraz przesunięcia (offset) podanego jak dana natychmiastowa (za kodem rozkazu), np.: 2.6 Adresowania indeksowe (indexed addressing) Ważny tryb (rodzina trybów) adresowania, w których adres argumentu jest sumą zawartości rejestru (tzw. rejestru indeksowego) oraz adresu podanego jako dana natychmiastowa. SJMP 1Ah - przejdź do rozkazu o 26 bajtów dalej Kod: 80 Offset: 1A Typowym przykładem byłby: MOV + 10h; - nie ma na liście rozkazów 81! Uwaga: Offset kodowany jest jako 1B liczba ze znakiem w kodzie U2 możliwy zakres skoku B od adresu następnego rozkazu. Wariant w rozkazie dostępu do pamięci kodu: MOVC + DPTR pamięci kodu o adresie wyznaczonym jako suma A i DPTR Kod: Adresowanie bitów (bit addressing) Konkretne realizacje specyficzne dla różnych procesorów; dla 81: MOV C, 0Fh - skopiuj bit o numerze 0F do flagi CY Kod: A2 NrBitu: 0F 81 Łącznie 256 flag bitowych identyfikowanych numerem: 00 7F w IRAM (pam. użytkowa) w szesnastu bajtach o adresach 20 2F; 80 FF w obszarze SFR w bajtach, których adres podzielny jest przez 8. Np.: 00 najmłodszy bit w bajcie o adresie 20, najmłodszy bit w bajcie o adresie 21, 7E przedostatni najstarszy bit w bajcie o adresie 2F, 80 najmłodszy bit w bajcie o adresie 80 (pierwszy w obszarze SFR port P0), 88 najmłodszy bit w bajcie o adresie 88 (rej. sterujący ukł. przerwań i liczników), E7 najstarszy bit w bajcie o adresie E0 (akumulator), itd Uwagi Inne tryby adresowania Specyficzne dla konkretnego procesora. Niektóre klasyfikacje wyróżniają np.: adresowanie niejawne stos poprzez rejestr w rozkazach wywołań podprogramów, adresowanie strony zerowej związanie na stałe podprogramów obsługi przerwań z adresami na pierwszej stronie, etc. Łączenie różnych trybów Kiedy w rozkazie występują jednocześnie dwa tryby adresowania (np. w MOV dla src i dst) odpowiednio dłuższe jest kodowanie, np. MOV 5Ch, #30h - dst adresowane bezpośrednio, src natychmiastowo. Kodowanie 3 bajty: Kod: 75 Adres: 5C Dana:

3 3 LISTA ROZKAZÓW KONTROLERA 81 Odwołania do rejestrów Symbole A, ACC, B, Rn implikują odpowiednie tryby adresowania: A = adresowanie rejestrowe rejestr akumulatora ACC = adresowanie bezpośrednie rejestr SFR E0h B = adresowanie bezpośrednie rejestr SFR F0h Rn = adresowanie rejestrowe Zatem: MOV A,#0 ; rozkaz 2B MOV ACC,#0 ; rozkaz 3B, dłuższe wykonanie MOV B,#0 MOV F0,#0 ; rozkaz 3B j.w. itd Notacja Operatory języka C + symbole: Ri R0 lub R1 (rejestry adresowania pośredniego) Rn R0 R7 dana8 wartość 8-bitowa dana16 wartość 16-bitowa adr8 adres 8b wewnętrznej pamięci danych adr11 adres 11b na bieżącej stronie w pamięci programu adr16 adres 16b w pamięci programu (x) zawartość komórki pamięci adresowanej przez x, np. (adr) = zawartość komórki pamięci o adresie adr, (R1) = zawartość komórki pamięci o adresie w R1, itd. x.n bit o numerze n w rejestrze / komórce pamięci x bit 8b nr bitu (wg zasad adresowania bitów j.w.) rel 8b offset (liczba ze znakiem w kodzie U2, ) Rozkazy przesłań Przesłania jednobajtowe MOV dst,src; move dst src dst: A, Rn, src: A, Rn, #dana8 Ale: nie wszystkie kombinacje trybów src i dst są dopuszczalne; oprócz oczywistego MOV A,A zabronione są: MOV Rn,Rn ; np. MOV R0,R1; choć możliwe jest MOV adr8 1,adr8 2 MOV Rn,@Ri ; np. MOV R7,@R0 ; np. ; np Przesłania dwubajtowe W 81 tylko jedno: MOV DPTR,#dana Rozkazy przesłań c.d Dostęp do pamięci kodu Tylko odczyt do akumulatora: MOVC A,@A + DPTR MOVC A,@A + PC Adresowanie src typu indeksowego: 16b adres bazowy (PC lub DPTR) oraz 8b offset z akumulatora (liczba NKB, bez znaku) Dostęp do XRAM Zawsze do lub z akumulatora: MOVX A,@DPTR MOVX A,@Ri Jeśli adresowanie pośrednie (poprzez R0 lub R1): ponieważ port P2 pełni rolę starszego bajtu magistrali adresowej jego aktualna zawartość dopełnia Ri jako starsze 8b adresu Rozkazy przesłań c.d Wymiany danych (przesłania dwukierunkowe) XCH = exchange: XCH A,{ Rn } XCHD = wymiana półbajtu młodszej tetrady (bitów 3..0): XCHD A,@Ri ; A.3..0 (Ri).3..0 SWAP = wymiana półbajtów w akumulatorze: SWAP A ; A.7..4 A Obsługa stosu Wysłanie bajtu na stos: PUSH adr8 ; (++) = (adr8) Odczytanie ( zdjęcie ) bajtu ze stosu: POP adr8 ; (adr8) = ( ) 4-17 Obsługa stosu uwagi: 1) Argument src tylko adresowanie bezpośrednie (nie ma rejestrowego!) 2) Argument dst adresowanie pośrednie rejestrem w 82 i następcach stos może być umieszczony w obszarze IRAM powyżej adresu 7Fh 3) Symbole A, ACC, Rn, B a tryby adresowania: A = adresowanie rejestrowe rejestr akumulatora ACC = adresowanie bezpośrednie adres SFR E0h Rn = adresowanie rejestrowe B = adresowanie bezpośrednie adres SFR F0h Zatem: Poprawne: Niepoprawne: PUSH ACC PUSH A PUSH 01 PUSH R1 PUSH B 5) Obsługa podprogramów niejawnie korzysta ze stosu, gdzie przechowuje dwubajtowy adres powrotu elementy stosu w 81 są jedno- i dwubajtowe! 4-18

4 Obsługa stosu przykład pracy: 77 Stan początkowy 77 Po instr. PUSH Po instr. PUSH Po instr. PUSH Po instr. POP 03 rozkazów przesłań Rozkazy wykonywane w dwóch cyklach maszynowych: MOV dst,src w których nie uczestniczy akumulator (wyjątki: MOV Rn,#data oraz MOV DPTR,#data16 PUSH / POP MOVX / MOVC 3.2 Operacje arytmetyczne Dodawanie / odejmowanie ADD A, {Rn #dana8} ADDC: dodawanie z przeniesieniem (add with carry, w sumowaniu dodawana jest także wartość flagi C). Argumenty jak dla ADD. SUBB: odejmowanie z pożyczką (substract with borrow, od akumulatora odejmowany jest Arg2 oraz flaga C ). Argumenty jak dla ADD. Nie ma rozkazu odejmowania bez pożyczki! (konieczne CLR C) Ustawiane flagi: C przeniesienie z najstarszego bitu, OV przepełnienie dla interpretacji sumowania w kodzie U2, AC przeniesienie tzw. połówkowe z młodszej do starszej tetrady (z 3 do 4 bitu). Wszystkie pozostałe w jednym Inkrementacje / dekrementacje (++ / --) INC {A Rn DPTR} DEC {A Rn Uwagi: INC/DEC NIE ustawiają żadnej flagi! INC/DEC mogą operować na komórkach IRAM i Rn (jako jedyne nie są przywiązane do akumulatora) INC DPTR = jedyna operacja arytmetyczna na argumencie 16b Mnożenie i dzielenie Mnożenie rejestrów A i B: 16b wynik wpisywany do B (starszy bajt) i A (młodszy): MUL AB ; BA = A * B (gdzie BA rejestr 16b ) ; C = 0 ; if( B!= 0 ) OV = 1 Dzielenie całkowitoliczbowe rejestru A przez B: iloraz w A, reszta z dzielenia w B: DIV AB ; if( B = = 0 ) OV = 1 ; A =A/B, B =A %B Korekcja dziesiętna akumulatora Rozkaz używany jeśli akumulator przechowuje wynik operacji wykonanej w tzw. spakowanym kodzie BCD (dwie cyfry dziesiętne w dwóch tetradach akumulatora): DA A ; if( A.3..0 > 9 AC = = 1 ) A = 6 ; if( A.7..4 > 9 C = = 1 ) A = 6 Informacje o arytmetyce binarnej, kodowaniu i korekcji BCD następny wykład. operacji arytmetycznych Wszystkie są wykonywane w 1 cyklu maszynowym za wyjątkiem: INC DPTR 2 cykle MUL / DIV 4 cykle Operacje logiczne Są wykonywane niezależnie na poszczególnych bitach argumentów (-u). 3.3 Operacje logiczne c.d. Rotacje; także dotyczą tylko akumulatora: rotuj akumulator w lewo RL A: A.7 A.6... A.1 A.0 Podstawowe operatory dwuargumentowe: iloczyn (ANL), suma (ORL), suma mod 2 (EX-OR, XRL). Dopuszczalne warianty adresowania: ANL A,{Rn #dana8} ANL adr,{a #dana8} Identycznie: ORL i XRL. Specyficzne dla akumulatora CLR A ; A = 0 CPL A ; A = ~A 4-23 rotuj w lewo przez flagę C RLC A: C A.7 A.6... A.1 A.0 Analogicznie: rotacje w prawo RR A oraz RRC A. Rozkazy wykonywane w 2 cyklach maszynowych: ANL ORL XRL adr8, #dana8 Wszystkie pozostałe w jednym. Mimo wolniejszej pracy możliwość bezpośredniego kasowania / ustawiania / negowania bitów w dowolnej komórce IRAM jest bardzo przydatna. 4-24

5 3.4 Operacje bitowe Operacje wykonywane na słowach 1b; w roli akumulatora flaga C rejestru PSW. iloczyn / suma logiczna flagi C oraz argumentu: ANL C, bit ; C = C & bit ANL C, /bit ; C = C & ~bit ORL C, bit ; C = C bit ORL C, /bit ; C = C ~bit zerowanie (clear) bitu lub flagi C: CLR bit CLR C ustawianie (set) bitu lub flagi C: SETB bit SETB C 3.4 Operacje bitowe c.d. negowanie (complement) bitu lub flagi C: CPL bit CPL C kopiowanie bitu z / do flagi C: MOV C, bit MOV bit, C Wszystkie instrukcje tej grupy są wykonywane w 1 cyklu maszynowym za wyjątkiem: ANL C, ORL C, dwa cykle maszynowe Skoki Skoki bezwarunkowe Skoki z tzw. adresem bezwzględnym: LJMP adr_16 ; PC = adr_16 AJMP adr_11 ; PC = adr_11, PC bez zmian ; PC = A + DPTR (skok z adresem dynamicznym!) Kodowanie rozkazu AJMP adr_11: a 10 a 9 a a 7 a 6... a 0 Automatyczny wybór rodzaju skoku: użycie mnemonika JMP etykieta asembler sam dobiera instrukcję (AJMP / LJMP). Skok względny: SJMP rel ; PC = PC rel rel 8b przesunięcie w zakresie (kod U2); +2 bo PC wskazuje już następny rozkaz (SJMP zajmuje 2B) Skoki warunkowe Wykonywane jeśli odpowiedni warunek jest spełniony. Warunki: testowanie flagi C / bitu, porównanie akumulatora z zerem. Tylko w wersji skoków względnych. JC rel ; if( C = = 1 ) PC += 2 + rel JNC rel ; if( C = = 0 ) PC += 2 + rel JZ rel ; if( A = = 0 ) PC += 2 + rel JNZ rel ; if( A! = 0 ) PC += 2 + rel JB bit, rel ; if( bit = = 1 ) PC += 3 + rel JNB bit, rel ; if( bit = = 0 ) PC += 3 + rel JBC bit, rel ; if( bit = = 1 ) PC += 3 + rel, bit = 0 Skoki z adresowaniem bitowym kodowane są na 3B, pozostałe na 2B Skok warunkowy z porównaniem CJNE = Compare and Jump if NOT Equal; np.: CJNE A, adr8, rel ; if( A < (adr8) ) C = 1 else C = 0 ; if( A!= (adr8) ) PC += 3 + rel Efekt uboczny oprócz skoku: ustawienie flagi C wg wyniku porównania jedyna metoda porównywania liczb w 81! Analogicznie: CJNE A, #dana8, rel CJNE Rn, #dana8, rel #dana8, rel Rozkaz zapętlenia DJNZ = Decrement and Jump if Not Zero DJNZ Rn, rel ; if( -- Rn!= 0 ) PC += 2 + rel Analogicznie DJNZ adr8,rel ; rolę licznika pełni komórka IRAM. Rozkaz bardzo użyteczny przy organizowaniu pętli iteracyjnych: Rn = N; // N = do {... // powtórzone dokładnie N razy } while( --Rn ); Wszystkie instrukcje skoków wykonywane są w dwóch cyklach maszynowych

6 3.6 Wywołania podprogramów Tzw. skok ze śladem (adres powrotu zapisywany na stosie). Wywołanie podprogramu z pełnym adresem (long call): LCALL adr_16 ; PUSH PCL ; PUSH PCH ; PC = adr_16 Uwagi: w trakcie wykonywania PC wskazuje już adres następnego rozkazu za LCALL. kodowanie na 3B: kod (12h) + adr_ adr_ Wywołania podprogramów c.d. Podobnie jak dla skoków: mnemonik CALL asembler sam dobiera ACALL lub LCALL. Powrót z podprogramu ściągnięcie zapamiętanego na stosie adresu powrotu ( śladu ): ; POP PCH ; POP PCL Ściąganie ze stosu dwóch bajtów adresu w odwrotnej kolejności niż wysyłanie. Wywołanie podprogramu na bieżącej stronie (adres 11b): ACALL adr_11 ; PUSH PCL ; PUSH PCH ; PC = adr_11 (PC bez zmian) Kodowanie na 2B: a 10 a 9 a a 7 a 6... a Powrót z podprogramu obsługi przerwania: I = identycznie jak + sygnalizacja końca blokady przerwań. Wszystkie rozkazy tej grupy (LCALL, ACALL,, I): dwa cykle maszynowe Wywołania podprogramów przykład 3.7 Podsumowanie: rozkazy ustawiające flagi 13h: 10h: LCALL 1100h 13h: 13h: 10h: LCALL 1100h 13h: h: 10h: LCALL 1100h 13h: A h: 10h: LCALL 1100h 13h: h: 10h: LCALL 1100h 13h: Uwaga: w momencie wykonywania instrukcji stos musi być w identycznym stanie jak przy rozpoczynaniu podprogramu. Instrukcja Flagi Flagi Instrukcja C OV AC C OV AC ADD X X X CLR C 0 ADDC X X X CPL C X SUBB X X X ANL C,bit X MUL 0 X ANL C,/bit X DIV 0 X ORL C,bit X DA X ORL C,/bit X RRC X MOV C,bit X RLC X CJNE X SETB C 1 flaga bez zmian 0 / 1 skasuj / ustaw X ustaw odpowiednio do rezultatu operacji PROGRAMOWANIE W JĘZYKU WEWNETRZNYM 4.2 Elementy programu w asemblerze 4.1 Wprowadzenie Cross assembler: kompilator pracuje w środowisku (CPU) innym (np. IBM PC) niż kompilowany program (np. 81). Jednostka organizacji programu asemblerowego segment: ciągły obszar pamięci, zawierający kod lub dane. Linker (program łączący) decyduje o ułożeniu segmentów w przestrzeniach adresowych systemu. Segmenty relokowalne: mogą być umieszczone pod różnymi adresami; segmenty o adresie absolutnym (s. absolutne): adres początkowy podany jawnie (niebezpieczeństwo nakładania się segmentów). Kod relokowalny: względne zamiast bezwzględnych w rozkazach skoków, wywołań podprogramów Linie źródłowe z rozkazami 81 (generują kod) Komentarze od znaku ; do końca linii Etykiety symbol etykiety + znak : Dyrektywy asemblera polecenia organizacyjne, niegenerujące kod, np. definicje modułu: NAME, MODULE, END... definicje segmentu: ASEG, RSEG, CSEG, ORG... rezerwacja pamięci na dane: DB, DW, DD, DS... przypisanie wartości symbolom: EQU, DEFINE, SET... dołączanie plików zewnętrznych: $include(837.inc) kompilacja warunkowa IF...ELSE...ENDIF definicje makr MACRO...ENDMAC sterowanie listingiem itp. 4-36

7 Przykładowy program: (20h) IRAM += (0200h) CODE $nomod51 $include(reg517.inc) ;dołączenie stand. definicji CSEG AT 0 ; segment kodu o adr. bezwzględnym WYN EQU 20h ; adres wyniku w IRAM MOV DPTR,#ARG ; rozkaz 3B CLR A ; 1B MOVC A,@A+DPTR ; 1B ADD A,WYN ; 2B MOV WYN,A ; 2B AJMP $ ; koniec (zapętlenie), 2B ORG 0200h ARG: DB 17h ; DB = dyrektywa Define Byte END ; koniec tekstu źródłowego Dyrektywa ORG = ustawienie wartości licznika adresów, predefiniowany symbol $ = aktualna wartość licznika adresów. Wynik: jeden segment kodu, 11B pod adr h, 1B pod adr. 200h Implementacja podstawowych operacji Porównanie A z zerem: if( A = = 0 ) B = 10h; else B = 20h; JNZ LAB1 MOV B,#10h JMP FIN LAB1: MOV B,#20h FIN: JMP $ Porównanie typu >= : if( R7 >= 10h ) B = 10h; else B = 20h; CJNE R7,#10h,ETPOM ETPOM: JC LAB1 ;C=1 R7<10 MOV B,#10h JMP FIN LAB1: MOV B,#20h FIN: JMP $ Porównanie z wartością zero: if( R7 = = 10h ) B = 10h; else B = 20h; CJNE R7,#10h,LAB1 MOV B,#10h JMP FIN LAB1: MOV B,#20h FIN: JMP $ CJNE R7,#10h,$+3 JC LAB1 ;C=1 R7<10 Użycie $+3 pozwala zaoszczędzić jedną niepotrzebną etykietę. Rozkaz CJNE + testowanie flagi C = najlepszy sposób porównywania liczb w Iteracje Przykład: zerowanie obszaru IRAM o adr. 40 4F MOV R0, #40h ; R0 = 40 PETLA: ; (R0) = 0 INC R0 ; R0 ++ CJNE R0, #50h, PETLA ; if(r0!=50) goto PETLA JMP $ Alternatywa: pętla DJNZ MOV R0, #40h ; R0 = 40 MOV R7, #10h ; R7 = 10 PETLA: ; (R0) = 0 INC R0 ; R0 ++ DJNZ R7,PETLA ; if(--r7) goto PETLA JMP $ 4-39 Podprogramy Zadanie: w przekazanym bajcie ustaw na 1 bit na zadanej pozycji WE: A bajt, R7 nr. pozycji 8 1 WY: A bajt z ustawionym bitem, R7 zero SETBIT: PUSH B ; B = rej. pomocniczy PUSH ACC ; przygotowanie maski: MOV A, #80h ; po pierwszym RL A A = 01h ROTUJ: RL A DJNZ R7, ROTUJ MOV B, A ; przechowaj maskę ; bajt do ustawienia ORL A, B ; ustawienie bitu POP B ; odtworzenie rej. pomocniczego Podprogram nie powinien niszczyć zawartości rejestrów innych niż związane z przekazywaniem argumentów; stąd PUSH B / POP B. Numer bitu powinno się podawać 7 0; instr. INC R7 przed etykietą ROTUJ Wywołanie podprogramu przekazanie argumentów przez A i R7: MOV A, #BAJT1 MOV R7, #NRPOZ1 CALL SETBIT Właściwa metoda przekazywania argumentów: przez stos MOV A, #BAJT1 PUSH ACC MOV R7, #NRPOZ1 PUSH ACC CALL SETBIT ; -= 2, np. 2 POP oczyszczenie stosu Powód: każde wywołanie podprogramu ma własny zestaw argumentów konieczność jeśli mają być możliwe wywołania rekurencyjne! Nowa wersja podprogramu: WE na stosie: bajt, nr. pozycji 7 0 WY: A bajt z ustawionym bitem, inne rejestry b.z SETBIT: PUSH 00 ; zapisuj rej. pomocnicze MOV R0, 81h ; zapamiętaj ( SFR 81h = ) PUSH PUSH B PCH PCL ; R7 = nr bitu NR_BITU MOV A, #80h ; przygotuj maskę BAJT INC R7 ; nr bitu 7 0 ROTUJ: RL A DJNZ R7, ROTUJ MOV B, A ; przechowaj maskę MOV ; A = bajt do ustawienia ORL A, B ; ustawienie bitu POP B ; odtworzenie rej. pomocniczych POP POP

Programowanie mikrokontrolerów (CISC)

Programowanie mikrokontrolerów (CISC) Repertuar instrukcji Operacje arytmetyczne Operacje logiczne Operacje logiczne na bitach Przesyłanie danych Operacje sterujące (skoki) NOTACJA: Rr rejestry R0... R7 direct - wewnętrzny RAM oraz SFR @Ri

Bardziej szczegółowo

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne Ryszard J. Barczyński, 2016 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego

Bardziej szczegółowo

Programowanie mikrokontrolera 8051

Programowanie 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ółowo

Lista rozkazów mikrokontrolera 8051

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

Bardziej szczegółowo

Lista 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 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ółowo

architektura komputerów w 1 1

architektura 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ółowo

Asembler - język maszynowy procesora

Asembler - język maszynowy procesora UWAGA! Treść niniejszego dokumentu powstała na podstawie cyklu artykułów pt. Mikrokontrolery? To takie proste zamieszczonych w czasopiśmie Elektronika dla Wszystkich. Asembler - język maszynowy procesora

Bardziej szczegółowo

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak

TMiK Podstawy Techniki Mikroprocesorowej. Lidia Łukasiak TMiK Podstawy Techniki Mikroprocesorowej Materiały pomocnicze do wykładu Lidia Łukasiak 1 Treść przedmiotu Wprowadzenie System mikroprocesorowy Mikroprocesor - jednostka centralna Rodzaje pamięci Mikrokontrolery

Bardziej szczegółowo

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW MIKROKONTROLER 85 - wiadomości podstawowe. Schemat blokowy mikrokontrolera 85 Obszar rejestrów specjalnych

Bardziej szczegółowo

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

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ółowo

START: ; start programu od adresu 0100H ; zerowanie komórek od 01H do 07FH ( 1 dec dec)

START: ; 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ółowo

Technika mikroprocesorowa I Wykład 2

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

Bardziej szczegółowo

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

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

Bardziej szczegółowo

LABORATORIUM nr 1. Temat: Wstęp do mikrokontrolerów rodziny MCS-51

LABORATORIUM nr 1. Temat: Wstęp do mikrokontrolerów rodziny MCS-51 Laboratorium nr 1 Wstęp do mikrokontrolerów rodziny MCS51 LABORATORIUM nr 1 Temat: Wstęp do mikrokontrolerów rodziny MCS-51 1. ARCHITEKTURA MCS-51 UWAGA: Niniejszy rozdział stanowi jedynie krótkie wprowadzenie

Bardziej szczegółowo

Pracownia elektryczno-elektroniczna klasa IV

Pracownia elektryczno-elektroniczna klasa IV Ćwiczenie nr 2 Cel ćwiczenia: zapoznanie się z nowymi metodami adresowania portów, urządzeń do nich podpiętych (adresowanie pośrednie, bezpośrednie, rejestrowe) oraz poznanie struktury wewnętrznej pamięci

Bardziej szczegółowo

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

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

Bardziej szczegółowo

Architektura komputerów. Asembler procesorów rodziny x86

Architektura komputerów. Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania

Bardziej szczegółowo

Struktura programu w asemblerze mikrokontrolera 8051

Struktura 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ółowo

architektura komputerów w 1 1

architektura komputerów w 1 1 8051 Port P2 Port P3 Serial PORT Timers T0, T1 Interrupt Controler DPTR Register Program Counter Program Memory Port P0 Port P1 PSW ALU B Register SFR accumulator STRUCTURE OF 8051 architektura komputerów

Bardziej szczegółowo

CPU architektura i rejestry

CPU architektura i rejestry CPU architektura i rejestry C51 (AT83C51SND1C) - ogólny widok wnętrza Źródło: Materiały informacyjne firmy Atmel 2 C51 (AT83C51SND1C) - przestrzeń pamięci kodu Źródło: Materiały informacyjne firmy Atmel

Bardziej szczegółowo

Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1

Liczniki, 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ółowo

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP Liczniki, rejestry lab. 08 PODSTAWY TECHNIKI CYFROWEJ I MIKROPROCESOROWEJ EIP KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII WWW.KEIASPE.AGH.EDU.PL AKADEMIA GÓRNICZO-HUTNICZA WWW.AGH.EDU.PL

Bardziej szczegółowo

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

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Komputer jest urządzeniem, którego działanie opiera się na wykonywaniu przez procesor instrukcji pobieranych z pamięci operacyjnej

Bardziej szczegółowo

6.1. Zastosowanie mikrokontrolera SAB 80C535 do sterowania silnikiem prądu stałego

6.1. Zastosowanie mikrokontrolera SAB 80C535 do sterowania silnikiem prądu stałego 162 Podstawy techniki mikroprocesorowej 6. PRZYKŁADY ZASTOSOWAŃ MIKROKONTROLERA 6.1. Zastosowanie mikrokontrolera SAB 80C535 do sterowania silnikiem prądu stałego Sterowanie silnikiem prądu stałego oparte

Bardziej szczegółowo

Ćwiczenie 1. (sd 2) 0x0000 0x0003 0x000B 0x0013 0x001B 0x0023

Ćwiczenie 1. (sd 2) 0x0000 0x0003 0x000B 0x0013 0x001B 0x0023 Temat: Asembler i język C wprowadzenie w efektywne programowanie niskopoziomowe. 1.Zagadnienia architektury Ogólnie schemat blokowy mikrokontrolera 80C51 przedstawiono na rysunku 1. Ćwiczenie 1. (sd 2)

Bardziej szczegółowo

MIKROPROCESORY I MIKROKONTROLERY INSTRUKCJE / KOMENDY / ROZKAZY: PRZEGLĄD I KILKA PRZYKŁADÓW DLA PRZYPOMNIENIA, GŁÓWNE REJESTRY ROBOCZE CPU:

MIKROPROCESORY I MIKROKONTROLERY INSTRUKCJE / KOMENDY / ROZKAZY: PRZEGLĄD I KILKA PRZYKŁADÓW DLA PRZYPOMNIENIA, GŁÓWNE REJESTRY ROBOCZE CPU: INSTRUKCJE / KOMENDY / ROZKAZY: PRZEGLĄD I KILKA PRZYKŁADÓW DLA PRZYPOMNIENIA, GŁÓWNE REJESTRY ROBOCZE CPU: rodzina 51 AVR ARM 8 bit 8 bit 32 bit A akumulator B akumulator pomocniczy R0 R7 rejestry robocze

Bardziej szczegółowo

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe ASSEMBLER Teodora Dimitrova-Grekow http://aragorn.pb.bialystok.pl/~teodora/ Program ogólny Rok akademicki 2011/12 Systemy liczbowe, budowa komputera, procesory X86, organizacja

Bardziej szczegółowo

Struktura i działanie jednostki centralnej

Struktura i działanie jednostki centralnej Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala

Bardziej szczegółowo

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor. Zadaniem centralnej jednostki przetwarzającej CPU (ang. Central Processing Unit), oprócz przetwarzania informacji jest sterowanie pracą pozostałych układów systemu. W skład CPU wchodzą mikroprocesor oraz

Bardziej szczegółowo

Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51.

Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51. Ćwiczenie nr 4 Cel ćwiczenia: Celem ćwiczenia jest zapoznanie z obsługą klawiatury sekwencyjnej i matrycowej w systemie DSM-51. Wiadomości wstępne: Klawiatura sekwencyjna zawiera tylko sześć klawiszy.

Bardziej szczegółowo

ZAPOZNANIE SIĘ Z ZESTAWEM DYDAKTYCZNYM ZD537, OPROGRAMOWANIEM µvision 2 ORAZ OPERACJE NA PAMIĘCIACH

ZAPOZNANIE SIĘ Z ZESTAWEM DYDAKTYCZNYM ZD537, OPROGRAMOWANIEM µvision 2 ORAZ OPERACJE NA PAMIĘCIACH PROWADZĄCY: mgr inż. Piotr Radochoński LABORATORIUM Z PODSTAW TECHNIK MIKROPROCESOROWYCH WYKONAWCY : GRUPA : 1 Dawid Pichen WYKONANO : Leszek Wiland 09.03.2005 NR ĆWICZ. TEMAT : 1 ROK AK. II ODDANO : 20.03.2005

Bardziej szczegółowo

Politechnika Warszawska

Politechnika Warszawska Politechnika Warszawska Wydział Elektryczny Laboratorium Podstaw Techniki Mikroprocesorowej Skrypt do ćwiczenia M.38 Zbieranie pomiarów w czasie rzeczywistym - asembler 1.Wstęp W ćwiczeniach od M.38 do

Bardziej szczegółowo

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Spis 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ółowo

Architektura Systemów Komputerowych, Wydział Informatyki, ZUT

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

Bardziej szczegółowo

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

CYKL 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ółowo

Architektura typu Single-Cycle

Architektura typu Single-Cycle Architektura typu Single-Cycle...czyli budujemy pierwszą maszynę parową Przepływ danych W układach sekwencyjnych przepływ danych synchronizowany jest sygnałem zegara Elementy procesora - założenia Pamięć

Bardziej szczegółowo

organizacja procesora 8086

organizacja procesora 8086 Systemy komputerowe Procesor 8086 - tendencji w organizacji procesora organizacja procesora 8086 " # $ " % strali " & ' ' ' ( )" % *"towego + ", -" danych. Magistrala adresowa jest 20.bitowa, co pozwala

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Organizacja typowego mikroprocesora

Organizacja 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ółowo

Mikrokontroler ATmega32. Język symboliczny

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

Bardziej szczegółowo

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

Ć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ółowo

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych Ćwiczenie nr 3 Wyświetlanie i wczytywanie danych 3.1 Wstęp Współczesne komputery przetwarzają dane zakodowane za pomocą ciągów zerojedynkowych. W szczególności przetwarzane liczby kodowane są w systemie

Bardziej szczegółowo

Opis mikrokontrolera 8051 Lista rozkazowa Timery

Opis mikrokontrolera 8051 Lista rozkazowa Timery Opis mikrokontrolera 805 Lista rozkazowa Timery Warszawa, 005-0-0 IMiO PW, LPTM, Lista rozkazowa 805 -- Oznaczenia i skróty: A - akumulator C - wskanik przeniesienia DPTR - wskanik danych, rejestr 6-bitowy

Bardziej szczegółowo

MIKROPROCESORY architektura i programowanie

MIKROPROCESORY architektura i programowanie Systematyczny przegląd. (CISC) SFR umieszczane są w wewnętrznej pamięci danych (80H 0FFH). Adresowanie wyłącznie bezpośrednie. Rejestry o adresach podzielnych przez 8 są też dostępne bitowo. Adres n-tego

Bardziej szczegółowo

DSM51 operacje przesylania danych i operacje arytmetyczne strona 1

DSM51 operacje przesylania danych i operacje arytmetyczne strona 1 DSM51 operacje przesylania danych i operacje arytmetyczne strona 1 Przypomnienie: Plik Otworz (F3) otwieranie pliku z programem.asm Plik Zapisz (F2) zapisywanie pliku z programem.asm do katalogu C:\JAGODA

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Mikrokontrolery w systemach pomiarowo sterujących

Mikrokontrolery w systemach pomiarowo sterujących Mikrokontrolery w systemach pomiarowo sterujących Mikrokontrolery czyli o czym to będzie... Mikrokontroler to cały komputer w kawałku krzemu, zoptymalizowany pod kątem sterowania różnorakimi urządzeniami.

Bardziej szczegółowo

Ćwiczenie 3. Konwersja liczb binarnych

Ćwiczenie 3. Konwersja liczb binarnych 1 Laboratorium Architektury Komputerów Ćwiczenie 3 Konwersja liczb binarnych Komputery wykonują operacje przetwarzania danych na wartościach binarnych, podczas gdy współczesna cywilizacja posługuje się

Bardziej szczegółowo

Wstępdo assemblera MA51

Wstę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ółowo

Sprzęt i architektura komputerów

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

Bardziej szczegółowo

1. Operacje logiczne A B A OR B

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

Bardziej szczegółowo

LISTA ROZKAZÓW i TRYBY ADRESOWANIA

LISTA ROZKAZÓW i TRYBY ADRESOWANIA LISTA ROZKAZÓW i TRYBY ADRESOWANIA Lista rozkazów Rozkazy tworzące listę rozkazów można podzielić na kilka podstawowych grup, w zależności od ich przeznaczenia: rozkazy przesłań, kopiowania, rozkazy arytmetyczne

Bardziej szczegółowo

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok

Bardziej szczegółowo

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

. 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ółowo

Programowanie w językach asemblera i C

Programowanie w językach asemblera i C Programowanie w językach asemblera i C Mariusz NOWAK Programowanie w językach asemblera i C (1) 1 Dodawanie dwóch liczb - program Napisać program, który zsumuje dwie liczby. Wynik dodawania należy wysłać

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Dyrektywy asemblerowe

Dyrektywy 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ółowo

1. Dyrektywy asemblerowe

1. Dyrektywy asemblerowe 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

Bardziej szczegółowo

Mikrokontrolery. Wrocław 2003

Mikrokontrolery. Wrocław 2003 Mikrokontrolery Wojciech Kordecki Zakład Pomiarowej i Medycznej Aparatury Elektronicznej Wydział Podstawowych Problemów Techniki Politechnika Wrocławska Wrocław 2003 1 Wstęp Materiały do wykładu i listy

Bardziej szczegółowo

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania Architektura Systemów Komputerowych Jednostka ALU Przestrzeń adresowa Tryby adresowania 1 Jednostka arytmetyczno- logiczna ALU ALU ang: Arythmetic Logic Unit Argument A Argument B A B Ci Bit przeniesienia

Bardziej szczegółowo

Lista instrukcji mikroprocesora 8086. Programowanie w assemblerze

Lista instrukcji mikroprocesora 8086. Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i mikrokontrolery Obsługa portu szeregowego laboratorium: 05 autor: mgr inż. Michal Lankosz dr hab.

Bardziej szczegółowo

Arytmetyka stałopozycyjna

Arytmetyka stałopozycyjna Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 3. Arytmetyka stałopozycyjna Cel dydaktyczny: Nabycie umiejętności wykonywania podstawowych operacji arytmetycznych na liczbach stałopozycyjnych.

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i mikrokontrolery Przerwania laboratorium: 04 autor: mgr inż. Michał Lankosz dr hab. Zbisław Tabor,

Bardziej szczegółowo

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

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. Podstawy programowania Programowanie wyrażeń 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń. W językach programowania są wykorzystywane

Bardziej szczegółowo

Ćwiczenie 30. Techniki mikroprocesorowe Programowanie w języku Asembler mikrokontrolerów rodziny '51

Ćwiczenie 30. Techniki mikroprocesorowe Programowanie w języku Asembler mikrokontrolerów rodziny '51 Ćwiczenie 30 Techniki mikroprocesorowe Programowanie w języku Asembler mikrokontrolerów rodziny '51 Cel ćwiczenia Poznanie architektury oraz zasad programowania mikrokontrolerów rodziny 51, aby zapewnić

Bardziej szczegółowo

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci Laboratorium 1: Wprowadzenie do środowiska programowego oraz podstawowe operacje na rejestrach i komórkach pamięci Zapoznanie się ze środowiskiem programowym: poznanie funkcji asemblera, poznanie funkcji

Bardziej szczegółowo

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

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

Bardziej szczegółowo

MIKROKONTROLERY I MIKROPROCESORY

MIKROKONTROLERY I MIKROPROCESORY PLAN... work in progress 1. Mikrokontrolery i mikroprocesory - architektura systemów mikroprocesorów ( 8051, AVR, ARM) - pamięci - rejestry - tryby adresowania - repertuar instrukcji - urządzenia we/wy

Bardziej szczegółowo

Wstęp do assemblera MA51

Wstę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ółowo

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

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

Bardziej szczegółowo

Instytut Teleinformatyki

Instytut 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ółowo

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

Przedmiot : 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ółowo

Programowanie Niskopoziomowe

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

Bardziej szczegółowo

Sprzęt i architektura komputerów

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

Bardziej szczegółowo

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24 Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.

Bardziej szczegółowo

Rozszerzalne kody operacji (przykład)

Rozszerzalne kody operacji (przykład) Tryby adresowania natychmiastowy (ang. immediate) bezpośredni (ang. direct) pośredni (ang. indirect) rejestrowy (ang. register) rejestrowy pośredni (ang. register indirect) z przesunieciem (indeksowanie)

Bardziej szczegółowo

Jerzy Nawrocki, Wprowadzenie do informatyki

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

Bardziej szczegółowo

Lista Rozkazów: Język komputera

Lista Rozkazów: Język komputera Lista Rozkazów: Język komputera Większość slajdów do tego wykładu to tłumaczenia i przeróbki oficjalnych sladjów do podręcznika Pattersona i Hennessy ego Lista rozkazów Zestaw rozkazów wykonywanych przez

Bardziej szczegółowo

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa Systemy wbudowane Mikrokontroler 8051 Budowa dr inż. Maciej Piechowiak Wprowadzenie rdzeń CPU z jednostką artymetyczno-logiczną (ALU) do obliczeń na liczbach 8-bitowych, uniwersalne dwukierunkowe porty

Bardziej szczegółowo

Architektura Systemów Komputerowych

Architektura Systemów Komputerowych Architektura Systemów Komputerowych Wykład 4: Struktura użytkowego modelu programowego komputera Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Pojęcie użytkowego

Bardziej szczegółowo

2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24

2 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

Programowanie komputera

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

Bardziej szczegółowo

Podstawy programowania w języku C

Podstawy 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ółowo

Arytmetyka binarna - wykład 6

Arytmetyka binarna - wykład 6 SWB - Arytmetyka binarna - wykład 6 asz 1 Arytmetyka binarna - wykład 6 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Arytmetyka binarna - wykład 6 asz 2 Naturalny kod binarny (NKB) pozycja 7 6 5 4 3 2

Bardziej szczegółowo

Przerwania w architekturze mikrokontrolera X51

Przerwania 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ółowo

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

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

Bardziej szczegółowo

Dariusz 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 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ółowo

Algorytm mnożenia sekwencyjnego (wariant 1)

Algorytm mnożenia sekwencyjnego (wariant 1) Przygotowanie: Przemysław Sołtan e-mail: kerk@moskit.ie.tu.koszalin.pl Algorytm mnożenia sekwencyjnego (wariant 1) //Poczynając z mniej znaczących bitów mnożnika, przesuwamy formowany //rezultat w stronę

Bardziej szczegółowo

Wstęp. do języka C na procesor 8051. (kompilator RC51)

Wstę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ółowo

Instytut Teleinformatyki

Instytut Teleinformatyki Instytut Teleinformatyki Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska Mikroprocesory i mikrokontrolery Obsługa portów wejścia/wyjścia mikrokontrolera laboratorium: 02 autor: mgr inż.

Bardziej szczegółowo

2. Architektura mikrokontrolerów PIC16F8x... 13

2. Architektura mikrokontrolerów PIC16F8x... 13 Spis treści 3 Spis treœci 1. Informacje wstępne... 9 2. Architektura mikrokontrolerów PIC16F8x... 13 2.1. Budowa wewnętrzna mikrokontrolerów PIC16F8x... 14 2.2. Napięcie zasilania... 17 2.3. Generator

Bardziej szczegółowo

Kompilator języka C na procesor 8051 RC51 implementacja

Kompilator języka C na procesor 8051 RC51 implementacja Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub

Bardziej szczegółowo

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

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

Bardziej szczegółowo

1. Pobrać plik masm.zip (Macro Assembler 6.15 & Segmented Executable Linker 5.60) (http://www.cs.put.poznan.pl/mantczak/teaching/itc/masm.zip).

1. Pobrać plik masm.zip (Macro Assembler 6.15 & Segmented Executable Linker 5.60) (http://www.cs.put.poznan.pl/mantczak/teaching/itc/masm.zip). J.Nawrocki, M. Antczak, G. Palik, A. Widelska Plik źródłowy: 07cw4-asm.doc; Data: 2007-09-26 6:00 Ćwiczenie nr 4 Język asemblera Środowisko uruchomieniowe 1. Pobrać plik masm.zip (Macro Assembler 6.15

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie 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ółowo

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

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

Bardziej szczegółowo

Podstawy Informatyki

Podstawy Informatyki Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 3 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 3 1 / 42 Reprezentacja liczb całkowitych

Bardziej szczegółowo