Programowanie mikroprocesorów jednoukładowych

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

Download "Programowanie mikroprocesorów jednoukładowych"

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

Programowanie mikroprocesorów jednoukładowych

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

Programowanie mikroprocesorów jednoukładowych

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

Programowanie w asemblerze ARM: instrukcje

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

Politechnika Świętokrzyska

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

PROCESORY ARM TRUDNO ZNALEŹĆ PROCESORY O TAK LICZNYCH, ORYGINALNYCH, NOWYCH, POMYSŁOWYCH ROZWIĄZANIACH!

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

Programowanie mikroprocesorów jednoukładowych

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

Programowanie w asemblerze ARM wprowadzenie

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

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

Projektowanie. Projektowanie mikroprocesorów

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

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

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

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

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

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

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

. 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

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

Ć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

Programowanie w asemblerze Uwagi o ARM

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

Architektura potokowa RISC

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

Programowalne układy logiczne

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

Wykład 4. Środowisko programistyczne

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

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

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

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

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86

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

Programowanie w asemblerze Uwagi o ARM

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

Logiczny model komputera i działanie procesora. Część 1.

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

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

INSTRUKCJE Instrukcje przeniesienia: Instrukcje konwersji: Arytmetyczne instrukcje:

INSTRUKCJE 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 Ć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

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

Rok akademicki: 2016/2017 Kod: JIS s Punkty ECTS: 6. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

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

Mikrokontrolery 8 bit - wprowadzenie

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

Procedury. int mult (int mcand, int mlier){ int product = 0; while (mlier > 0) { product = product + mcand; mlier = mlier -1; } return product; }

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

Praktycznie całe zamieszanie dotyczące konwencji wywoływania funkcji kręci się w okół wskaźnika stosu.

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

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

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

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

PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012 PROGRAMOWANIE NISKOPOZIOMOWE PN.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 4 c Dr inż. Ignacy Pardyka (Inf.UJK) PN.01 Rok akad. 2011/2012 1 / 27 c Dr

Bardziej szczegółowo

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

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

Programowanie hybrydowe C (C++) - assembler. MS Visual Studio Inline Assembler

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

Szkolenia specjalistyczne

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

Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do zajęć laboratoryjnych z przedmiotu:

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

Architektura Systemów Komputerowych

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

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

Programowanie hybrydowe łączenie C/C++ z asemblerem

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

Wstęp do Reverse engineeringu

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

PRZEWODNIK PO PRZEDMIOCIE

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

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

Rok akademicki: 2015/2016 Kod: IIN s Punkty ECTS: 4. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

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

Architektura typu multi cycle

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

Plan wykładu. Architektura systemów komputerowych. MnoŜenie realizacja sprzętowa (wersja 1) Układy mnoŝące liczby całkowite.

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

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

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

Programowanie w elektronice: Podstawy C

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

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

Wprowadzenie do Architektury komputerów. Asembler procesorów rodziny x86

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

LEKCJA TEMAT: Współczesne procesory.

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

Metody optymalizacji soft-procesorów NIOS

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

Architektura systemów komputerowych Laboratorium 7 Symulator SMS32 Stos, Tablice, Procedury

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

Język programowania: Lista instrukcji (IL Instruction List)

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

Wykład 2 Składnia języka C# (cz. 1)

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

Kod (file_code.bin) Dane wyjściowe (file_data_out.bin) Wirtualny procesor. Dane wejściowe (file_data_in.bin)

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

Architektura mikroprocesorów TEO 2009/2010

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

PROGRAMOWANIE NISKOPOZIOMOWE. Adresowanie pośrednie rejestrowe. Stos PN.04. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

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

AGH Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

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

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

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

Metody Realizacji Języków Programowania

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

Aparatura Elektroniczna (EAE) Stopień studiów i forma: I stopień, stacjonarna Rodzaj przedmiotu: obowiązkowy - 2

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

Programowanie komputerowe. Zajęcia 1

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

Kurs Zaawansowany S7. Spis treści. Dzień 1

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

Semantyka i Weryfikacja Programów - Laboratorium 3

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

Podstawy i języki programowania

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

Procesory rodziny x86. Dariusz Chaberski

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

Podstawy Programowania Podstawowa składnia języka C++

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

Budowa linii asemblera

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

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C2. Low Level Programming Informatyka

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

Instrukcje sterujące. Programowanie Proceduralne 1

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

Języki formalne i techniki translacji

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

Notatka Aplikacyjna NA 03006PL Maj 2016

Notatka 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