IV PROGRAMOWANIE MIKROKOMPUTERA Technika Cyfrowa 2. Wykład 4: Programowanie mikrokomputera 8051
|
|
- Małgorzata Piotrowska
- 7 lat temu
- Przeglądów:
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)
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ółowoLista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne
Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne Ryszard J. Barczyński, 2016 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego
Bardziej szczegół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ół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ół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ół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ółowoAsembler - 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ółowoTMiK 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ółowoObszar 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ółowopetla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla
Asembler A51 1. Symbole Nazwy symboliczne Symbol jest nazwą, która może być użyta do reprezentowania wartości stałej numerycznej, wyrażenia, ciągu znaków (tekstu), adresu lub nazwy rejestru. Nazwy symboliczne
Bardziej szczegół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ółowoTechnika mikroprocesorowa I Wykład 2
Technika mikroprocesorowa I Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci, -odczyt-zapis urządzenia we-wy,
Bardziej szczegółowoTechnika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2
Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2 Literatura: www.zilog.com Z80 Family, CPU User Manual Cykle magistrali w mikroprocesorze Z80 -odczyt kodu rozkazu, -odczyt-zapis pamięci,
Bardziej szczegółowoLABORATORIUM 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ółowoPracownia 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ół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ółowoArchitektura komputerów. Asembler procesorów rodziny x86
Architektura komputerów Asembler procesorów rodziny x86 Architektura komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych
Bardziej szczegółowoArchitektura 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ół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ółowoarchitektura 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ółowoCPU 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ółowoLiczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1
Liczniki, rejestry lab. 09 Mikrokontrolery 8051 cz. 1 PODSTAWY TECHNIKI CYFROWEJ I MIKROPROCESOROWEJ EIP KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII WWW.KEIASPE.AGH.EDU.PL AKADEMIA
Bardziej szczegółowoLiczniki, 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ółowoCPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki
Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Komputer jest urządzeniem, którego działanie opiera się na wykonywaniu przez procesor instrukcji pobieranych z pamięci operacyjnej
Bardziej szczegółowo6.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
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ółowoMIKROPROCESORY 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ółowoProgramowanie niskopoziomowe
Programowanie niskopoziomowe ASSEMBLER Teodora Dimitrova-Grekow http://aragorn.pb.bialystok.pl/~teodora/ Program ogólny Rok akademicki 2011/12 Systemy liczbowe, budowa komputera, procesory X86, organizacja
Bardziej szczegół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ół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ółowoCelem ć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ółowoZAPOZNANIE 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ółowoPolitechnika 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ółowoSpis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne
Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...
Bardziej szczegółowoArchitektura 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ół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ół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ółowoorganizacja procesora 8086
Systemy komputerowe Procesor 8086 - tendencji w organizacji procesora organizacja procesora 8086 " # $ " % strali " & ' ' ' ( )" % *"towego + ", -" danych. Magistrala adresowa jest 20.bitowa, co pozwala
Bardziej szczegół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ółowoOrganizacja typowego mikroprocesora
Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają
Bardziej szczegół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ół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ół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ółowoOpis 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ółowoMIKROPROCESORY 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ółowoDSM51 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ół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ółowoMikrokontrolery 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
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ół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ółowoSprzęt i architektura komputerów
Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I
Bardziej szczegół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ółowoLISTA 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ółowoARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok
Bardziej szczegółowo. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A
Symulator Escape Konfiguracja ogólna Enable MUL and DIV Complete Set of Comp.Oper Sign Extension of B/H/W Memory Oper on B/H/W Program Program Dane Dane Załaduj konfigurację symulatora (File -> OpenFile)
Bardziej szczegółowoProgramowanie 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ółowoPodstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin
Podstawy techniki cyfrowej Mikroprocesory Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin 1 Mikroprocesor to układ cyfrowy wykonany jako pojedynczy układ scalony o wielkim stopniu integracji zdolny do wykonywania
Bardziej szczegół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ółowo1. 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ółowoMikrokontrolery. 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ółowoArchitektura 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ółowoLista instrukcji mikroprocesora 8086. Programowanie w assemblerze
Lista instrukcji mikroprocesora 8086 Programowanie w assemblerze Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora 8086 Lista instrukcji mikroprocesora
Bardziej szczegół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ółowoInstytut 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ółowoArytmetyka 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ółowoInstytut 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ółowoPodstawy 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 Cel ćwiczenia Poznanie architektury oraz zasad programowania mikrokontrolerów rodziny 51, aby zapewnić
Bardziej szczegółowoLaboratorium 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ółowoArchitektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle
Marcin Stępniak Architektura systemów komputerowych Laboratorium 8 Symulator SMS32 Instrukcje skoku i pętle 1. Informacje 1.1. Instrukcje skoku Instrukcje skoku zmieniają wskaźnik instrukcji w rejestrze
Bardziej szczegółowoMIKROKONTROLERY 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ół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ółowoRejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika
Rejestry procesora Procesor podczas wykonywania instrukcji posługuje się w dużej części pamięcią RAM. Pobiera z niej kolejne instrukcje do wykonania i dane, jeżeli instrukcja operuje na jakiś zmiennych.
Bardziej szczegół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ół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 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ółowoSprzęt i architektura komputerów
Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I
Bardziej szczegółowo4 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ółowoRozszerzalne 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ółowoJerzy Nawrocki, Wprowadzenie do informatyki
Magistrala systemowa Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Asembler i koncepcja von Neumanna Wprowadzenie do programowania na
Bardziej szczegółowoLista 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ółowoSystemy 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ółowoArchitektura 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ółowo2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe komputerów ASK MP.02 c Dr inż. Ignacy Pardyka 1 UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach 2 Literatura Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka
Bardziej szczegółowoProgramowanie 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ółowoPodstawy programowania w języku C
Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu
Bardziej szczegółowoArytmetyka 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ół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ółowoJ. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler
ASSEMBLER J. Duntemann Zrozumieć Assembler Leo J. Scanlon Assembler 8086/8088/80286 S. Kruk Programowanie w Języku Assembler Geneza (8086, 8088). Rejestry Adresowanie pamięci Stos Instrukcje Przerwania
Bardziej szczegół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ółowoAlgorytm 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ół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ółowoInstytut 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ółowo2. 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ółowoKompilator 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ół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ółowo1. Pobrać plik masm.zip (Macro Assembler 6.15 & Segmented Executable Linker 5.60) (http://www.cs.put.poznan.pl/mantczak/teaching/itc/masm.zip).
J.Nawrocki, M. Antczak, G. Palik, A. Widelska Plik źródłowy: 07cw4-asm.doc; Data: 2007-09-26 6:00 Ćwiczenie nr 4 Język asemblera Środowisko uruchomieniowe 1. Pobrać plik masm.zip (Macro Assembler 6.15
Bardziej szczegół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ółowoKod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:
Wykład 3 3-1 Reprezentacja liczb całkowitych ze znakiem Do przedstawienia liczb całkowitych ze znakiem stosowane są następujące kody: - ZM (znak-moduł) - U1 (uzupełnienie do 1) - U2 (uzupełnienie do 2)
Bardziej szczegółowoPodstawy Informatyki
Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 3 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 3 1 / 42 Reprezentacja liczb całkowitych
Bardziej szczegółowo