Programowanie mikroprocesorów jednoukładowych
|
|
- Dominika Makowska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Programowanie mikroprocesorów jednoukładowych Optymalizacja programów w asemblerze Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
2 Plan I Optymalizacja Pisanie w ASM Jak rozpocząć optymalizację Kolejkowanie instrukcji Budowa procedury w ASM Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
3 Program w C I 1 #i n c l u d e <s t d i o. h> 2 i n t s q u a r e ( i n t i ) ; 3 i n t main ( v o i d ) 4 { 5 i n t i ; 6 f o r ( i =0; i <10; i ++) 7 { 8 p r i n t f ( " Square o f %d i s %d\n", i, s q u a r e ( i ) ) ; 9 } 10 } 11 i n t s q u a r e ( i n t i ) 12 { 13 r e t u r n i i ; 14 } Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
4 Procedura w ASM I 1 s q u a r e 2 AREA. t e x t, CODE, READONLY 3 EXPORT s q u a r e 4 ; i n t s q u a r e ( i n t i ) 5 MUL r1, r0, r0 ; r1 = r0 r0 6 MOV r0, r1 ; r0 = r1 7 MOV pc, l r ; r e t u r n r0 8 END Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
5 Wersja dla ARMv4T I 1 AREA. t e x t, CODE, READONLY 2 EXPORT s q u a r e 3 ; i n t s q u a r e ( i n t i ) 4 s q u a r e 5 MUL r1, r0, r0 ; r1 = r0 r0 6 MOV r0, r1 ; r0 = r1 7 BX l r ; r e t u r n r0 8 END Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
6 Wywoływanie instrukcji z poziomu ASM I 1 AREA. t e x t, CODE, READONLY 2 EXPORT main 3 IMPORT L i b $ $ R e q u e s t $ $ a r m l i b, WEAK 4 IMPORT main ; C l i b r a r y e n t r y 5 IMPORT p r i n t f ; p r i n t s to s t d o u t 6 irn4 7 ; i n t main ( v o i d ) 8 main 9 STMFD sp!, { i, l r } 10 MOV i, #0 11 l o o p 12 ADR r0, p r i n t _ s t r i n g 13 MOV r1, i 14 MUL r2, i, i 15 BL p r i n t f Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
7 Wywoływanie instrukcji z poziomu ASM II 16 ADD i, i, #1 17 CMP i, #10 18 BLT l o o p 19 LDMFD sp!, { i, pc } 20 p r i n t _ s t r i n g 21 DCB " Square o f %d i s %d\n", 0 22 END Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
8 Przekazywanie dużej ilości argumentów I 1 #i n c l u d e <s t d i o. h> 2 / N i s the number o f v a l u e s to sum i n l i s t... / 3 i n t sumof ( i n t N,... ) ; 4 i n t main ( v o i d ) 5 { 6 p r i n t f ( " Empty sum=%d\n", sumof ( 0 ) ) ; 7 p r i n t f ( "1=%d\n", sumof ( 1, 1 ) ) ; 8 p r i n t f ( "1+2=%d\n ", sumof ( 2, 1, 2 ) ) ; 9 p r i n t f ( "1+2+3=%d\n ", sumof ( 3, 1, 2, 3 ) ) ; 10 p r i n t f ( " =%d\n ", sumof ( 4, 1, 2, 3, 4 ) ) ; 11 p r i n t f ( " =%d\n ", sumof ( 5, 1, 2, 3, 4, 5 ) ) ; 12 p r i n t f ( " =%d\n", sumof ( 6, 1, 2, 3, 4, 5, 6 ) ) ; 13 } Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
9 Przekazywanie dużej ilości argumentów I 1 AREA. t e x t, CODE, READONLY 2 EXPORT sumof 3 N RN 0 ; number o f e l e m e n t s to sum 4 sum RN 1 ; c u r r e n t sum 5 ; i n t sumof ( i n t N,... ) 6 sumof 7 SUBS N, N, #1 ; do we have one element 8 MOVLT sum, #0 ; no e l e m e n t s to sum! 9 SUBS N, N, #1 ; do we have two e l e m e n t s 10 ADDGE sum, sum, r 2 11 SUBS N, N, #1 ; do we have t h r e e e l e m e n t s 12 ADDGE sum, sum, r 3 13 MOV r2, sp ; top o f s t a c k 14 l o o p 15 SUBS N, N, #1 ; do we have a n o t h e r element Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
10 Przekazywanie dużej ilości argumentów II 16 LDMGEFD r2!, { r3 } ; l o a d from the s t a c k 17 ADDGE sum, sum, r 3 18 BGE l o o p 19 MOV r0, sum 20 MOV pc, l r ; r e t u r n r0 21 END Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
11 Jak rozpocząć optymalizację profiler - pomiar czasu potrzebnego na wykonanie danej funkcji cycle counting - zliczanie cykli zegara potrzebnych na wykonanie funkcji i porównywanie ich przed optymalizacją i po optymalizacji Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
12 Kolejkowanie instrukcji Zakładając że instrukcja warunkowa w ARM potrzebuje jedno cyklu gdy warunek jest niespełniony. Jeżeli warunek jest spełniony to: ALU dla dodawania, odejmowania oraz logicznych operacji potrzebuje jednego cyklu. Tyczy się to także dla przesuwania jeżeli jest to bezpośrednie przesuwanie, przy użyciu rejestry należy doliczyć jeden cykl, a przy zapisie do pc dwa cykle. Instrukcje wczytywania, które wczytują N 32-bitowych słów z pamięci np. LDR i LDM wymagają N cykli, ale w rezultacie nie otrzymujemy ostatniego wyrazi zgdnie z cyklami zegara związane jest to z czytaniem adresu. Wyjątkiem jest LDM dla pojedynczej wartości, która zajmuje dwa cykle. Jeżeli instrukcja wczytuje do pc, wtedy należy dodać dwa cykle. instrukcje wczytywania, które wczytują 16-bitowe lub 8-bitowe dane jak np. LDRB, LDRSB, LDRH u LDRSH zajmuję jeden cykl. Rezultat nie jest dostępny po dwóch cyklach, podobnie jak powyżej. instrukcje skoków to trzy cykle instrukcje zapisu, które zapisują mnożenie przyjmuje różne wartości cykli w zależności od podanych parametrów Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
13 Kolejkowanie instrukcji wczytywania I 1 v o i d s t r _ t o l o w e r ( char out, char i n ) 2 { 3 u n s i g n e d i n t c ; 4 do 5 { 6 c = ( i n ++); 7 i f ( c>= A && c<= Z ) 8 { 9 c=c+( a A ) ; 10 } 11 ( out++) = ( char ) c ; 12 } w h i l e ( c ) ; 13 } Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
14 Kolejkowanie instrukcji wczytywania ASM I 1 s t r _ t o l o w e r 2 LDRB r2, [ r1 ],#1 ; c = ( i n++) 3 SUB r3, r2,#0 x41 ; r3 = c A 4 CMP r3,#0 x19 ; i f ( c <= Z A ) 5 ADDLS r2, r2,#0 x20 ; c += a A 6 STRB r2, [ r0 ],#1 ; ( out++) = ( char ) c 7 CMP r2,#0 ; i f ( c!=0) 8 BNE s t r _ t o l o w e r ; goto s t r _ t o l o w e r 9 MOV pc, r14 ; r e t u r n Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
15 Kolejkowanie instrukcji wczytywania ASM I 1 out RN 0 ; p o i n t e r to output s t r i n g 2 i n RN 1 ; p o i n t e r to i n p u t s t r i n g 3 c RN 2 ; c h a r a c t e r l o a d e d 4 t RN 3 ; s c r a t c h r e g i s t e r 5 ; v o i d s t r _ t o l o w e r _ p r e l o a d ( char out, char i n ) 6 s t r _ t o l o w e r _ p r e l o a d 7 LDRB c, [ i n ], #1 ; c = ( i n++) 8 l o o p 9 SUB t, c, # A ; t = c A 10 CMP t, # Z A ; i f ( t <= Z A ) 11 ADDLS c, c, # a A ; c += a A ; 12 STRB c, [ out ], #1 ; ( out++) = ( char ) c ; 13 TEQ c, #0 ; t e s t i f c==0 14 LDRNEB c, [ i n ], #1 ; i f ( c!=0) { c= i n ++; 15 BNE l o o p ; goto l o o p ; } Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
16 Kolejkowanie instrukcji wczytywania ASM II 16 MOV pc, l r ; r e t u r n Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
17 Kolejkowanie instrukcji wczytywania ASM I 1 out RN 0 ; p o i n t e r to output s t r i n g 2 i n RN 1 ; p o i n t e r to i n p u t s t r i n g 3 ca0 RN 2 ; c h a r a c t e r 0 4 t RN 3 ; s c r a t c h r e g i s t e r 5 ca1 RN 12 ; c h a r a c t e r 1 6 ca2 RN 14 ; c h a r a c t e r 2 7 ; v o i d s t r _ t o l o w e r _ u n r o l l e d ( char out, char i n ) 8 s t r _ t o l o w e r _ u n r o l l e d 9 STMFD sp!, { l r } ; f u n c t i o n e n t r y 10 loop_next3 11 LDRB ca0, [ i n ], #1 ; ca0 = i n ++; 12 LDRB ca1, [ i n ], #1 ; ca1 = i n ++; 13 LDRB ca2, [ i n ], #1 ; ca2 = i n ++; 14 SUB t, ca0, # A ; c o n v e r t ca0 to l o w e r c a s e 15 CMP t, # Z A Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
18 Kolejkowanie instrukcji wczytywania ASM II 16 ADDLS ca0, ca0, # a A 17 SUB t, ca1, # A ; c o n v e r t ca1 to l o w e r c a s e 18 CMP t, # Z A 19 ADDLS ca1, ca1, # a A 20 SUB t, ca2, # A ; c o n v e r t ca2 to l o w e r c a s e 21 CMP t, # Z A 22 ADDLS ca2, ca2, # a A 23 STRB ca0, [ out ], #1 ; out++ = ca0 ; 24 TEQ ca0, #0 ; i f ( ca0!=0) 25 STRNEB ca1, [ out ], #1 ; out++ = ca1 ; 26 TEQNE ca1, #0 ; i f ( ca0!=0 && ca1!=0) 27 STRNEB ca2, [ out ], #1 ; out++ = ca2 ; 28 TEQNE ca2, #0 ; i f ( ca0!=0 && ca1!=0 && ca2!=0) 29 BNE loop_next3 ; goto loop_next3 ; 30 LDMFD sp!, { pc } ; r e t u r n ; Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
19 Budowa procedury w ASM I 1 routine_name 2 STMFD sp!, { r4 r12, l r } ; s t a c k saved r e g i s t e r s 3 ; body o f r o u t i n e 4 ; the f o u r t e e n r e g i s t e r s r0 r12 and l r a r e a v a i l a b l e 5 LDMFD sp!, { r4 r12, pc } ; r e s t o r e r e g i s t e r s and r e t u r n Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
20 Budowa procedury w ASM I 1 routine_name 2 STMFD sp!, { r4 r12, l r } ; s t a c k saved r e g i s t e r s 3 ; body o f r o u t i n e 4 ; r e g i s t e r s r0 r12 and l r a v a i l a b l e 5 LDMFD sp!, { r4 r12, l r } ; r e s t o r e r e g i s t e r s 6 BX l r ; r e t u r n, with mode s w i t c h Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
21 References Andrew Sloss, Dominic Symes, and Chris Wright. ARM System Developer s Guide: Designing and Optimizing System Software. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września / 21
Programowanie mikroprocesorów jednoukładowych
Programowanie mikroprocesorów jednoukładowych Systemy operacyjne dla systemów wbudowanych Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 1 / 30 Plan I SLOS Inicjalizacja
Bardziej szczegółowoProgramowanie mikroprocesorów jednoukładowych
Programowanie mikroprocesorów jednoukładowych MPU Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 2 stycznia 2017 1 / 21 Plan MPU Nakładanie regionów Tło regionów Rejestry MPU Inicjalizacja
Bardziej szczegółowoProgramowanie mikroprocesorów jednoukładowych
Programowanie mikroprocesorów jednoukładowych Pamięć cache Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 1 / 22 Plan I Cache Mariusz Naumowicz Programowanie mikroprocesorów
Bardziej szczegółowoProgramowanie w asemblerze ARM: instrukcje
Programowanie w asemblerze ARM: instrukcje 17 stycznia 2017 Instrukcje sterujace: skoki Instrukcja skoku B etykieta Dzięki sufiksom warunków mamy skoki warunkowe. Adres względny (do pc), w zakresie ok.
Bardziej szczegółowoPolitechnika Świętokrzyska
Politechnika Świętokrzyska Laboratorium Mikrokontrolerów Ćwiczenie 1 Programowanie w asemblerze dr inż. Robert Kazała Kielce 2015 Cel ćwiczenia Celem ćwiczenia jest zdobycie umiejętności obsługi środowiska
Bardziej szczegółowoPROCESORY ARM TRUDNO ZNALEŹĆ PROCESORY O TAK LICZNYCH, ORYGINALNYCH, NOWYCH, POMYSŁOWYCH ROZWIĄZANIACH!
TRUDNO ZNALEŹĆ PROCESORY O TAK LICZNYCH, ORYGINALNYCH, NOWYCH, POMYSŁOWYCH ROZWIĄZANIACH! ASEMBLERY Pola Separatory Wizytówki Kody operacji Pseudo operacje adresy I dane Dyrektywy Stałe Komentarze SZKICE
Bardziej szczegółowoProgramowanie mikroprocesorów jednoukładowych
Programowanie mikroprocesorów jednoukładowych Instrukcje procesora ARM Mariusz Naumowicz Programowanie mikroprocesorów jednoukładowych 11 września 2017 1 / 44 Instrukcje asmeblera Instrukcje obróbki danych
Bardziej szczegółowoProgramowanie w asemblerze ARM wprowadzenie
Programowanie w asemblerze ARM wprowadzenie 17 stycznia 2017 Historia Firma ARM Ltd. powstała w 1990 roku jako Advanced RISC Machines Ltd., joint venture firm Acorn Computers, Apple Computer i VLSI Technology.
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ół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ółowoProjektowanie. Projektowanie mikroprocesorów
WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna
Bardziej szczegółowoSprzęt i architektura komputerów
Radosław Maciaszczyk Mirosław Łazoryszczak Sprzęt i architektura komputerów Laboratorium Temat: Mikroprocesory i elementy asemblera Katedra Architektury Komputerów i Telekomunikacji 1. MIKROPROCESORY I
Bardziej szczegółowoArchitektura 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ół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ół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ół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ół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ół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ół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ół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ół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ółowoProgramowanie w asemblerze Uwagi o ARM
Programowanie w asemblerze Uwagi o ARM 17 stycznia 2017 Organizacja pamięci Trzy możliwości Dostęp bezpośredni do pamięci fizycznej, brak zarzadzania. Używane w mikrokontrolerach. MPU (Memory Protection
Bardziej szczegółowoArchitektura potokowa RISC
Architektura potokowa RISC Podział zadania na odrębne części i niezależny sprzęt szeregowe Brak nawrotów" podczas pracy potokowe Przetwarzanie szeregowe i potokowe Podział instrukcji na fazy wykonania
Bardziej szczegółowoProgramowalne układy logiczne
Programowalne układy logiczne Mikroprocesor Szymon Acedański Marcin Peczarski Instytut Informatyki Uniwersytetu Warszawskiego 6 grudnia 2014 Zbudujmy własny mikroprocesor Bardzo prosty: 16-bitowy, 16 rejestrów
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ółowoWykład 4. Środowisko programistyczne
Wykład 4 Dostępne kompilatory KEIL komercyjny GNU licencja GPL ARM komercyjny IAR komercyjny 2 Porównanie kompilatorów 3 Porównanie kompilatorów 4 Keil uvision Graficzny edytor Kompilator i linker Symulator
Bardziej szczegół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ół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ółowoProgramowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl
Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,
Bardziej szczegółowoWprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86
Wprowadzenie do Architektury komputerów Asembler procesorów rodziny x86 Budowa procesora rodziny x86 Rejestry procesora 8086 ogólnego przeznaczenia Dla procesorów 32-bitowych: EAX, EBX, ECX, EDX Dla procesorów
Bardziej szczegółowoĆwiczenie nr 6. Programowanie mieszane
Ćwiczenie nr 6 Programowanie mieszane 6.1 Wstęp Współczesne języki programowania posiadają bardzo rozbudowane elementy językowe, co pozwala w większości przypadków na zdefiniowanie całego kodu programu
Bardziej szczegół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ółowoProgramowanie w asemblerze Uwagi o ARM
Programowanie w asemblerze Uwagi o ARM 12 grudnia 2015 Historia Firma ARM Ltd. powstała w 1990 roku jako Advanced RISC Machines Ltd., joint venture firm Acorn Computers, Apple Computer i VLSI Technology.
Bardziej szczegółowoLogiczny model komputera i działanie procesora. Część 1.
Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.
Bardziej szczegół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ół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ółowoINSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:
INSTRUKCJE Instrukcje przeniesienia: mov, lea, les, push, pop, pushf, popf Instrukcje konwersji: cbw, cwd, xlat Arytmetyczne instrukcje: add, inc sub, dec, cmp, neg, mul, imul, div, idiv Logiczne instrukcje:
Bardziej szczegół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ół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ółowoRok akademicki: 2016/2017 Kod: JIS s Punkty ECTS: 6. Poziom studiów: Studia I stopnia Forma i tryb studiów: -
Nazwa modułu: Systemy wbudowane Rok akademicki: 2016/2017 Kod: JIS-1-013-s Punkty ECTS: 6 Wydział: Fizyki i Informatyki Stosowanej Kierunek: Informatyka Stosowana Specjalność: - Poziom studiów: Studia
Bardziej szczegółowo>>> Techniki rozbudowy systemów wbudowanych >>> Systemy wbudowane. Name: Mariusz Naumowicz Date: 29 maja 2019 [~]$ _ [1/32]
>>> Techniki rozbudowy systemów wbudowanych >>> Systemy wbudowane Name: Mariusz Naumowicz Date: 29 maja 2019 [~]$ _ [1/32] >>> Treści wykładu I 1. Systemy wbudowane 2. Podział procesorów 3. Tryby User
Bardziej szczegółowoMikrokontrolery 8 bit - wprowadzenie
Mikrokontrolery 8 bit - wprowadzenie TECHNIKA MIKROPROCESOROWA 3EB KATEDRA ENERGOELEKTRONIKI I AUTOMATYKI SYSTEMÓW PRZETWARZANIA ENERGII WWW.KEIASPE.AGH.EDU.PL AKADEMIA GÓRNICZO-HUTNICZA WWW.AGH.EDU.PL
Bardziej szczegółowoProcedury. int mult (int mcand, int mlier){ int product = 0; while (mlier > 0) { product = product + mcand; mlier = mlier -1; } return product; }
main() { int i,j,k,m;... i = mult(j,k);... m = mult(i,i);... Procedury int mult (int mcand, int mlier){ int product = 0; while (mlier > 0) { product = product + mcand; mlier = mlier -1; return product;
Bardziej szczegółowoPraktycznie całe zamieszanie dotyczące konwencji wywoływania funkcji kręci się w okół wskaźnika stosu.
Krótki artykuł opisujący trzy podstawowe konwencje wywoływania funkcji C++ (a jest ich więcej). Konwencje wywoływania funkcji nie są tematem, na który można się szeroko rozpisać, jednak należy znać i odróżniać
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ółowoLiteratura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.
Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów
Bardziej szczegółowoArchitektura systemów komputerowych. Poziom układów logicznych. Układy mnoŝące i dzielące
Architektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Plan wykładu Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka
Bardziej szczegółowoPROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012
PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 4 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 c Dr
Bardziej szczegół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ółowoOperatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1
Operatory Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne
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ółowoProgramowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler
Programowanie hybrydowe C (C++) - assembler MS Visual Studio Inline Assembler Wprowadzenie Możliwość wprowadzania kodu asemblerowego bezpośrednio w kodzie źródłowym w języku C lub C++ Nie wymagany MASM
Bardziej szczegół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ółowoSzkolenia specjalistyczne
Szkolenia specjalistyczne AGENDA Programowanie mikrokontrolerów w języku C na przykładzie STM32F103ZE z rdzeniem Cortex-M3 GRYFTEC Embedded Systems ul. Niedziałkowskiego 24 71-410 Szczecin info@gryftec.com
Bardziej szczegółowoWydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do zajęć laboratoryjnych z przedmiotu:
Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do zajęć laboratoryjnych z przedmiotu: Architektura i Programowanie Procesorów Sygnałowych Numer
Bardziej szczegółowoArchitektura Systemów Komputerowych
Jarosław Kuchta Architektura Systemów Komputerowych ćwiczenie 3 Arytmetyka całkowita instrukcja laboratoryjna Wprowadzenie Celem ćwiczenia jest zapoznanie się z budową i sposobem działania jednostki arytmetyczno-logicznej
Bardziej szczegół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ółowoMOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW
MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje
Bardziej szczegółowoProgramowanie hybrydowe łączenie C/C++ z asemblerem
Programowanie hybrydowe łączenie C/C++ z asemblerem Konwencje Wywoływanie procedur asemblerowych w kodzie języka wysokiego poziomu wymaga: Ustalenia konwencji nazewniczej używanej w języku programowania
Bardziej szczegółowoWstęp do Reverse engineeringu
Wstęp do Reverse engineeringu O mnie Agnieszka Bielec Eternal pracuję w CERT Polska jako Malware Analyst CTFy z p4 prowadze bloga eternal.red lubie ścianki wpinaczkowe i rower twitter Reverse Engineering
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ółowoPRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach treści kierunkowych, moduł kierunkowy ogólny Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK
Bardziej szczegółowoInż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI
Inż. Kamil Kujawski Inż. Krzysztof Krefta Wykład w ramach zajęć Akademia ETI Metody programowania Assembler Język C BASCOM Assembler kod maszynowy Zalety: Najbardziej efektywny Intencje programisty są
Bardziej szczegółowoRok akademicki: 2015/2016 Kod: IIN s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne
Nazwa modułu: Technika mikroprocesorowa Rok akademicki: 2015/2016 Kod: IIN-1-404-s Punkty ECTS: 4 Wydział: Informatyki, Elektroniki i Telekomunikacji Kierunek: Informatyka Specjalność: Poziom studiów:
Bardziej szczegółowoArchitektura typu multi cycle
PC ux ress Write data emdata [3-26] [25-2] [2-6] [5-] register [5-] Cond IorD em emwrite emtoreg IRWrite [25-] [5-] Outputs Control Op [5-] ux ux PCSource Op SrcB Src RegWrite RegDst register register
Bardziej szczegółowoPlan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.
Plan wykładu rchitektura systemów komputerowych Poziom układów logicznych. Układy mnoŝące i dzielące Cezary Bolek Katedra Informatyki Układy mnoŝące liczby całkowite MnoŜenie liczb bez znaku MnoŜarka sekwencyjna
Bardziej szczegółowoOperatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo
Operatory w C++ Operatory arytmetyczne + dodawanie - odejmowanie * mnożenie / dzielenie % modulo Operatory relacyjne (porównania) < mniejszy niż większy niż >= większy lub równy
Bardziej szczegółowoProgramowanie w elektronice: Podstawy C
Programowanie w elektronice: Podstawy C Projekt Matematyka dla Ciekawych Świata, Robert Ryszard Paciorek 2019-05-05 C / C++ są najpopularniejszymi językami kompilowanymi do kodu maszynowego
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ół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ółowoWprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86
Wprowadzenie do Architektury komputerów Asembler procesorów rodziny x86 Rozkazy mikroprocesora Rozkazy mikroprocesora 8086 można podzielić na siedem funkcjonalnych grup: 1. Rozkazy przesłania danych w
Bardziej szczegółowoLEKCJA TEMAT: Współczesne procesory.
LEKCJA TEMAT: Współczesne procesory. 1. Wymagania dla ucznia: zna pojęcia: procesor, CPU, ALU, potrafi podać typowe rozkazy; potrafi omówić uproszczony i rozszerzony schemat mikroprocesora; potraf omówić
Bardziej szczegółowoMetody optymalizacji soft-procesorów NIOS
POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011
Bardziej szczegółowoArchitektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury
Marcin Stępniak Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury 1. Informacje 1.1. Stos Stos jest strukturą danych, w której dane dokładane są na wierzch stosu
Bardziej szczegół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ółowoJęzyk programowania: Lista instrukcji (IL Instruction List)
Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski 08.12.2009 Norma IEC 1131 Języki tekstowe Języki graficzne
Bardziej szczegółowoWykład 2 Składnia języka C# (cz. 1)
Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu
Bardziej szczegółowoKod (file_code.bin) Dane wyjściowe (file_data_out.bin) Wirtualny procesor. Dane wejściowe (file_data_in.bin)
Projekt SYKO (Zima 2015) Ostatnia aktualizacja: 2015.10.12 Założenia ogólne 1.Punktacja (w całości 50pkt) 20pkt - implementacja 20pkt - testowanie 10pkt - dokumentacja 2.Grupa - trzy osobowa - nie może
Bardziej szczegółowoArchitektura mikroprocesorów TEO 2009/2010
Architektura mikroprocesorów TEO 2009/2010 Plan wykładów Wykład 1: - Wstęp. Klasyfikacje mikroprocesorów Wykład 2: - Mikrokontrolery 8-bit: AVR, PIC Wykład 3: - Mikrokontrolery 8-bit: 8051, ST7 Wykład
Bardziej szczegółowoPROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012
PROGRAMOWANIE NISKOPOZIOMOWE PN.04 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 3 Ćwiczenia laboratoryjne c Dr inż. Ignacy Pardyka (Inf.UJK) PN.04 Rok akad.
Bardziej szczegółowoAGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki
AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki Technika mikroprocesorowa Laboratorium 5 Operacje arytmetyczne Autor: Paweł Russek Tłumaczenie: Marcin Pietroń i Ernest Jamro http://www.fpga.agh.edu.pl/tm
Bardziej szczegółowoPodstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne
Bardziej szczegółowoMetody Realizacji Języków Programowania
Metody Realizacji Języków Programowania Bardzo krótki kurs asemblera x86 Marcin Benke MIM UW 10 stycznia 2011 Marcin Benke (MIM UW) Metody Realizacji Języków Programowania 10 stycznia 2011 1 / 22 Uwagi
Bardziej szczegółowoAparatura Elektroniczna (EAE) Stopień studiów i forma: I stopień, stacjonarna Rodzaj przedmiotu: obowiązkowy - 2
Zał. nr 4 do ZW /2012 WYDZIAŁ ELEKTRONIKI KARTA PRZEDMIOTU Nazwa w języku polskim: Oprogramowanie mikrokontrolerów Nazwa w języku angielskim: Microcontroller software Kierunek studiów: Elektronika Specjalność:
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ółowoProgramowanie komputerowe. Zajęcia 1
Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program
Bardziej szczegółowoKurs Zaawansowany S7. Spis treści. Dzień 1
Spis treści Dzień 1 I Konfiguracja sprzętowa i parametryzacja stacji SIMATIC S7 (wersja 1211) I-3 Dlaczego powinna zostać stworzona konfiguracja sprzętowa? I-4 Zadanie Konfiguracja sprzętowa I-5 Konfiguracja
Bardziej szczegółowoSemantyka i Weryfikacja Programów - Laboratorium 3
Semantyka i Weryfikacja Programów - Laboratorium 3 Modelowanie układów mikroprocesorowych - część II Wykonywanie całego programu Cały program wykonywany jest przez funkcję intpprog. Jedynym argumentem
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 3 - operatory oraz instrukcje warunkowe i wyboru mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 19 października 2018 1 / 35 mgr inż. Krzysztof
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ółowoProcesory rodziny x86. Dariusz Chaberski
Procesory rodziny x86 Dariusz Chaberski 8086 produkowany od 1978 magistrala adresowa - 20 bitów (1 MB) magistrala danych - 16 bitów wielkość instrukcji - od 1 do 6 bajtów częstotliwośc pracy od 5 MHz (IBM
Bardziej szczegółowoPodstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Bardziej szczegółowoBudowa linii asemblera
Budowa linii asemblera Pola w linii s a oddzielone znakami białymi (spacje, tabulacje). Wewn atrz pola znaki te nie wystepuj a. Linia programu zawiera cztery pola (być może puste): etykieta mnemonik operand
Bardziej szczegółowoKARTA PRZEDMIOTU. Programowanie niskopoziomowe, C2. Low Level Programming Informatyka
KARTA PRZEDMIOTU. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:
Bardziej szczegółowoInstrukcje sterujące. Programowanie Proceduralne 1
Instrukcje sterujące Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne * mnożenie x * y x y x / dzielenie x / y y + dodawanie x +
Bardziej szczegółowoJęzyki formalne i techniki translacji
Języki formalne i techniki translacji Laboratorium - Projekt Termin oddania: ostatnie zajęcia przed 17 stycznia 2016 Wysłanie do wykładowcy: przed 23:59 28 stycznia 2016 Używając BISON-a i FLEX-a napisz
Bardziej szczegółowoNotatka Aplikacyjna NA 03006PL Maj 2016
Notatka Aplikacyjna NA 03006PL Spis treści 1. Wstęp... 2 1.1. Wymagania programowe... 2 2. Tworzenie projektu i dodawanie programu w... 3 3. Organizacja okien dla języka IL... 5 4. Składnia języka IL...
Bardziej szczegółowo