Podstawy Informatyki Języki programowania c.d.

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

Download "Podstawy Informatyki Języki programowania c.d."

Transkrypt

1 Podstawy Informatyki

2 Plan wykładu 1 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy 2 Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie 3 Program wielosegmentowy - przykład Program wielosegmentowy - asemblacja Program wielosegmentowy - konsolidacja 4

3 Założenia Plan wykładu Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Składnia instrukcji programu: [< etykieta >:] < kod > [< argument >] Opcjonalna etykieta to nazwa zakończona dwukropkiem Kod jest wymagany, może to być kod rozkazu: DOD, ODE, POB, ŁAD, SOB, SOM, STP lub dyrektywa (pseudorozkaz): KON koniec generacji kodu, RPA - rezerwacja pamięci, RST - rezerwacja pamięci dla stałej Opcjonalnym argumentem może być etykieta lub liczba dziesiętna

4 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład programu samomodyfikującego się Tekst źródłowy programu ET: SOM KONIEC POB ET DOD ST1 ŁAD ET SOB ET KONIEC: STP ST1: RST 1 A: RST 5 RST 67 RST -1 KON

5 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład programu samomodyfikującego się Tekst źródłowy programu 0 ET: 1 SOM KONIEC 2 POB ET 3 DOD ST1 4 ŁAD ET 5 SOB ET 6 KONIEC: STP 7 ST1: RST 1 8 A: RST 5 9 RST RST -1 KON Tablica T1 Rozkaz Kod DOD 001 ODE 010 ŁAD 011 POB 100 SOB 101 SOM 110 STP 111

6 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład programu samomodyfikującego się Tekst źródłowy programu 0 ET: 1 SOM KONIEC 2 POB ET 3 DOD ST1 4 ŁAD ET 5 SOB ET 6 KONIEC: STP 7 ST1: RST 1 8 A: RST 5 9 RST RST -1 KON Tablica T1 Rozkaz Kod DOD 001 ODE 010 ŁAD 011 POB 100 SOB 101 SOM 110 STP 111 Tablica T2 Etykieta Adres ET KONIEC ST A 01000

7 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład programu samomodyfikującego się Tekst źródłowy programu 0 ET: 1 SOM KONIEC 2 POB ET 3 DOD ST1 4 ŁAD ET 5 SOB ET 6 KONIEC: STP 7 ST1: RST 1 8 A: RST 5 9 RST RST -1 KON Kod maszynowy Tablica T1 Rozkaz Kod DOD 001 ODE 010 ŁAD 011 POB 100 SOB 101 SOM 110 STP 111 Tablica T2 Etykieta Adres ET KONIEC ST A 01000

8 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład programu samomodyfikującego się Tekst źródłowy programu 0 ET: 1 SOM KONIEC 2 POB ET 3 DOD ST1 4 ŁAD ET 5 SOB ET 6 KONIEC: STP 7 ST1: RST 1 8 A: RST 5 9 RST RST -1 KON Kod maszynowy Tablica T1 Rozkaz Kod DOD 001 ODE 010 ŁAD 011 POB 100 SOB 101 SOM 110 STP 111 Tablica T2 Etykieta Adres ET KONIEC ST A 01000

9 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład programu samomodyfikującego się Tekst źródłowy programu 0 ET: 1 SOM KONIEC 2 POB ET 3 DOD ST1 4 ŁAD ET 5 SOB ET 6 KONIEC: STP 7 ST1: RST 1 8 A: RST 5 9 RST RST -1 KON Kod maszynowy Tablica T1 Rozkaz Kod DOD 001 ODE 010 ŁAD 011 POB 100 SOB 101 SOM 110 STP 111 Tablica T2 Etykieta Adres ET KONIEC ST A 01000

10 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład - sumowanie elementów tablicy PETLA: ET: KONIEC: POB N ODE ST1 SOM KONIEC ŁAD L POB TAB DOD S ŁAD S POB ET DOD ST1 ŁAD ET POB L SOB PETLA STP ST1: RST 1 S: RST 0 N: RST 5 TAB: RST 7 RST 13 RST 21 RST 19 RST 3 L: RPA KON

11 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład - sumowanie elementów tablicy 0 POB N 1 PETLA: ODE ST1 2 SOM KONIEC 3 ŁAD L 4 ET: POB 16 5 DOD S 6 ŁAD S 7 POB ET 8 DOD ST1 9 ŁAD ET 10 POB L 11 SOB PETLA 12 KONIEC: STP 13 ST1: RST 1 14 S: RST 0 15 N: RST 5 16 TAB: RST 7 17 RST RST RST RST 3 21 L: RPA KON Podgląd zmiennych: S = 0 L =?

12 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład - sumowanie elementów tablicy 0 POB N 1 PETLA: ODE ST1 2 SOM KONIEC 3 ŁAD L 4 ET: POB 17 5 DOD S 6 ŁAD S 7 POB ET 8 DOD ST1 9 ŁAD ET 10 POB L 11 SOB PETLA 12 KONIEC: STP 13 ST1: RST 1 14 S: RST 0 15 N: RST 5 16 TAB: RST 7 17 RST RST RST RST 3 21 L: RPA KON Podgląd zmiennych: S = 7 L = 4

13 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład - sumowanie elementów tablicy 0 POB N 1 PETLA: ODE ST1 2 SOM KONIEC 3 ŁAD L 4 ET: POB 18 5 DOD S 6 ŁAD S 7 POB ET 8 DOD ST1 9 ŁAD ET 10 POB L 11 SOB PETLA 12 KONIEC: STP 13 ST1: RST 1 14 S: RST 0 15 N: RST 5 16 TAB: RST 7 17 RST RST RST RST 3 21 L: RPA KON Podgląd zmiennych: S = 20 L = 3

14 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład - sumowanie elementów tablicy 0 POB N 1 PETLA: ODE ST1 2 SOM KONIEC 3 ŁAD L 4 ET: POB 19 5 DOD S 6 ŁAD S 7 POB ET 8 DOD ST1 9 ŁAD ET 10 POB L 11 SOB PETLA 12 KONIEC: STP 13 ST1: RST 1 14 S: RST 0 15 N: RST 5 16 TAB: RST 7 17 RST RST RST RST 3 21 L: RPA KON Podgląd zmiennych: S = 41 L = 2

15 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład - sumowanie elementów tablicy 0 POB N 1 PETLA: ODE ST1 2 SOM KONIEC 3 ŁAD L 4 ET: POB 20 5 DOD S 6 ŁAD S 7 POB ET 8 DOD ST1 9 ŁAD ET 10 POB L 11 SOB PETLA 12 KONIEC: STP 13 ST1: RST 1 14 S: RST 0 15 N: RST 5 16 TAB: RST 7 17 RST RST RST RST 3 21 L: RPA KON Podgląd zmiennych: S = 60 L = 1

16 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy Przykład - sumowanie elementów tablicy 0 POB N 1 PETLA: ODE ST1 2 SOM KONIEC 3 ŁAD L 4 ET: POB 21 5 DOD S 6 ŁAD S 7 POB ET 8 DOD ST1 9 ŁAD ET 10 POB L 11 SOB PETLA 12 KONIEC: STP 13 ST1: RST 1 14 S: RST 0 15 N: RST 5 16 TAB: RST 7 17 RST RST RST RST 3 21 L: RPA KON Podgląd zmiennych: S = 63 L = 0

17 Makroasembler - założenia Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Makroasembler umożliwia tworzenie własnych instrukcji przez programistę Makroinstrukcje zastępując powtarzające się fragmenty kodu jedną nazwą zwiększają czytelność programu Składnia makroinstrukcji: MAKRO <nazwa> <lista parametrów fromalnych> [ NAZWA LOKALNA <lista nazw lokalnych> ] <rozkazy tworzące makroinstrukcję> KONM

18 Przykład zastosowania makroinstrukcji Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie MAKRO INC P POB P... DOD ST1... ŁAD P... KONM DOD ST1 INC A ŁAD A POB B DOD ST1 INC B ŁAD B

19 Przykład programu z makroinstrukcją Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Zadanie: Policzyć sumę wartości bezwzględnych dwóch komórek pamięci X i Y, a wynik zapisać w komórce pamięci Z. Makroinstrukcja MAKRO ABS Liczba NAZWA LOKALNA Ujemna, Koniec POB Liczba SOM Ujemna SOB Koniec Ujemna: Koniec: KONM ODE Liczba ODE Liczba

20 Przykład programu z makroinstrukcją Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Zadanie: Policzyć sumę wartości bezwzględnych dwóch komórek pamięci X i Y, a wynik zapisać w komórce pamięci Z. Makroinstrukcja MAKRO ABS Liczba NAZWA LOKALNA Ujemna, Koniec POB Liczba SOM Ujemna SOB Koniec Ujemna: Koniec: KONM ODE Liczba ODE Liczba

21 Realizacja programu z makroinstrukcją Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Program ABS X ŁAD Z ABS Y DOD Z ŁAD Z STP X: RST -2 Y: RST 3 Z: RPA KON Rozwinięcie programu w PaO POB X SOM Ujemna1 SOB Koniec1 Ujemna1: ODE X ODE X Koniec1: ŁAD Z POB Y SOM Ujemna2 SOB Koniec2 Ujemna2: ODE Y ODE Y Koniec2: DOD Z ŁAD Z STP

22 Realizacja programu z makroinstrukcją Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Program ABS X ŁAD Z ABS Y DOD Z ŁAD Z STP X: RST -2 Y: RST 3 Z: RPA KON Rozwinięcie programu w PaO POB X SOM Ujemna1 SOB Koniec1 Ujemna1: ODE X ODE X Koniec1: ŁAD Z POB Y SOM Ujemna2 SOB Koniec2 Ujemna2: ODE Y ODE Y Koniec2: DOD Z ŁAD Z STP

23 Realizacja programu z makroinstrukcją Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Program ABS X ŁAD Z ABS Y DOD Z ŁAD Z STP X: RST -2 Y: RST 3 Z: RPA KON Rozwinięcie programu w PaO POB X SOM Ujemna1 SOB Koniec1 Ujemna1: ODE X ODE X Koniec1: ŁAD Z POB Y SOM Ujemna2 SOB Koniec2 Ujemna2: ODE Y ODE Y Koniec2: DOD Z ŁAD Z STP

24 Podprogram - założenia Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Podprogramy pozwalają na modularne pisanie programów wymagają specjalnych rozkazów Przekazywanie parametrów między programem a podprogramem dokonuje się poprzez: rejestry procesora wskazany obszar pamięci (zawartość rejestru) stos

25 Dodatkowe rozkazy Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Skok do podprogramu SDP Ad (WS) 1 WS, (L) (WS), (Ad) L, A Powrót z podprogramu PWR ((WS)) L, A, (WS) + 1 WS Zapis zawartości akumulatora na stos DNS (WS) 1 WS, (Ak) (WS) Odczyt zawartości ze stosu do akumulatora PZS ((WS)) Ak, (WS) + 1 WS

26 Przykład użycia podprogramu Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Zadanie: Policzyć sumę wartości bezwzględnych dwóch komórek pamięci X i Y, a wynik zapisać w komórce pamięci Z. Rozwiązanie1 - przekazywanie parametrów przez Akumulator: POB X SDP Abs ŁAD Z POB Y SDP Abs DOD Z ŁAD Z STP X: RST -2 Y: RST 3 Z: RPA Abs: Ujemna: TMP: SOM Ujemna PWR ŁAD TMP ODE TMP ODE TMP PWR RPA KON

27 Przykład użycia podprogramu Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Rozwiązanie2 - przekazywanie parametru do podprogramu przez stos: POB X DNS SDP Abs ŁAD Z POB Y Abs: PZS ŁAD ADRES PZS ŁAD TMP SOM Ujemna DNS SDP Abs DOD Z ŁAD Z Powrot: DRES DNS POB TMP PWR STP Ujemna: ODE TMP X: RST -2 ODE TMP Y: RST 3 ŁAD TMP Z: RPA SOB Powrot TMP: RPA ADRES: RPA KON

28 Makroasembler - założenia Przykład programu z makroinstrukcją Podprogramy - założenia Przykład użycia podprogramu Makrodefinicje i podprogramy - podsumowanie Makrodefinicje i podprogramy - podsumowanie Użycie makrodefinicji lub podprogramów: zwiększa czytelność programu, usprawnia proces programowania, ułatwia pielęgnację kodu, pozwala na modularne pisanie programów, umożliwia wykorzystanie tego samego kodu w wielu programach. Użycie makroinstrukcji każdorazowo wstawia zdefiniowaną zawartość, symbole lokalne są dostępne tylko wewnątrz makrodefinicji, w programie końcowym tworzone są dla nich unikalne nazwy. Użycie podprogramów zwykle skraca kod ale wydłuża czas jego realizacji.

29 - założenia Program wielosegmentowy - przykład Program wielosegmentowy - asemblacja Program wielosegmentowy - konsolidacja Podział programu na oddzielne moduły (segmenty) o określonych zadaniach funkcjonalnych tak, aby umożliwić pracę grupową. Każdy moduł jest tworzony i tłumaczony (kompilowany) oddzielnie. Definiuje się więc: punkty wejścia - etykiety, do których będą odwołania z innych segmentów, nazwy zewnętrzne - adresy symboliczne, których etykiety (deklaracje) występują w innym segmencie. Do utworzenia kodu końcowego konieczny jest program łączący (linker).

30 Przykład zastosowania segmentacji Program wielosegmentowy - przykład Program wielosegmentowy - asemblacja Program wielosegmentowy - konsolidacja Segment 1 WNZ: ET... SOB ET... Segment 2 WPW: WNZ: ET: ET P... DOD P ŁAD TMP... Segment 3 WPW: P... P: RST 2... WPW - wykaz punktów wejścia WNZ - wykaz nazw zewnętrznych

31 Program wielosegmentowy Program wielosegmentowy - przykład Program wielosegmentowy - asemblacja Program wielosegmentowy - konsolidacja Sumę wartości bezwzględnych X i Y zapisać w komórce Z. Główny.asm WNZ Abs POB X SDP Abs ŁAD Z POB Y SDP Abs DOD Z ŁAD Z STP X: RST -2 Y: RST 3 Z: RPA Funkcje.asm WPW Abs Abs: SOM Ujemna PWR Ujemna: ŁAD TMP ODE TMP ODE TMP PWR TMP: RPA

32 Program wielosegmentowy - przykład Program wielosegmentowy - asemblacja Program wielosegmentowy - konsolidacja Program wielosegmentowy - asemblacja Główny.asm Główny.obj Nazwy zewnętrzne są wypełniane zerami, ale jest dołączona informacja, gdzie wstawić brakujące adresy. Funkcje.asm Funkcje.obj Dołączona jest informacja o punktach wejścia i ich adresach względnych.

33 Program wielosegmentowy - przykład Program wielosegmentowy - asemblacja Program wielosegmentowy - konsolidacja Program wielosegmentowy - asemblacja Główny.obj WNZ: Abs 1 4 0: POB 8 1: SDP 0 2: ŁAD 10 3: POB 9 4: SDP 0 5: DOD 10 6: ŁAD 10 7: STP 8: RST -2 9: RST 3 10: RPA Funkcje.obj WPW: Abs 0 0: SOM 2 1: PWR 2: ŁAD 6 3: ODE 6 4: ODE 6 5: PWR 6: RPA

34 Program wielosegmentowy - przykład Program wielosegmentowy - asemblacja Program wielosegmentowy - konsolidacja Program wielosegmentowy - konsolidacja Główny.obj, Funkcje.obj Główny.exe Uzupełnia się brakujące adresy, moduły są relokowane w pamięci

35 Program wielosegmentowy - przykład Program wielosegmentowy - asemblacja Program wielosegmentowy - konsolidacja Program wielosegmentowy - konsolidacja Główny.obj WNZ: Abs 1 4 0: POB 8 1: SDP 0 2: ŁAD 10 3: POB 9 4: SDP 0 5: DOD 10 6: ŁAD 10 7: STP 8: RST -2 9: RST 3 10: RPA Funkcje.obj WPW: Abs 0 0: SOM 2 1: PWR 2: ŁAD 6 3: ODE 6 4: ODE 6 5: PWR 6: RPA Program zostaje dołączony od komórki 11, więc wszystkie adresy są przesunięte o 11. Główny.exe 0: POB 8 1: SDP 11 2: ŁAD 10 3: POB 9 4: SDP 11 5: DOD 10 6: ŁAD 10 7: STP 8: RST -2 9: RST 3 10: RPA 11: SOM 13 12: PWR 13: ŁAD 17 14: ODE 17 15: ODE 17 16: PWR 17: RPA

36 Translacja to tłumaczenie z jednego języka na inny. Translator - program tłumaczący kod programu na kod asemblera lub kod maszynowy. Typy translatorów: interpreter - translator programu powodujący natychmiastowe wykonanie każdej przetłumaczonej sekwencji rozkazów, kompilator - translator przeznaczony do przekształcania programów źródłowych w program wynikowy, zakłada się tu istnienie dwóch procesów: kompilacji i wykonania.

37 Interpreter vs Kompilator Zalety: łatwo się uruchamia wygodny do usuwania błędów Wady: dłuższy czas wykonywania (wiele instrukcji tłumaczonych jest powtórnie) raz przetłumaczony program może być wielokrotnie wykonywany (na różnych danych, czasami różnych platformach) trudniejszy do wykrywania błędów danych (podczas tłumaczenia wykrywa się tylko błędy składniowe) czasami trudniej się uruchamia

38 Etapy kompilacji Plan wykładu 1 Analiza programu źródłowego: leksykalna (sprawdzanie symboli), syntaktyczna (sprawdzanie konstrukcji). 2 Synteza kodu wynikowego: generacja kodu, optymalizacja kodu, gospodarka pamięcią.

39 - założenia Instrukcja podstawienia jest poprawna Wyrażenie arytmetyczne zapisane jest w notacji nawiasowej Znana jest Tablica priorytetów: operator priorytet nazwa symboliczna ˆ 1 POT, / 2 MNO, DZI +, 3 DOD, ODE Wykorzystywany jest stos i zmienne pomocnicze: i wskaźnik szczytu stosu S i zawartość i-tej komórki stosu j numer zmiennej pomocniczej T j adres symboliczny zmiennej pomocniczej

40

41 Przykład Plan wykładu X=(A B+C) (A B) i = 1 j = 1

42 Przykład Plan wykładu X=(A B+C) (A B) X i = 0 j = 1

43 Przykład Plan wykładu X=(A B+C) (A B) = 0 X i = 1 j = 1

44 Przykład Plan wykładu X=(A B+C) (A B) ( 1 = 0 X i = 2 j = 1

45 Przykład Plan wykładu X=(A B+C) (A B) A 2 ( 1 = 0 X i = 3 j = 1

46 Przykład Plan wykładu X=(A B+C) (A B) A 2 ( 1 = 0 X i = 4 j = 1

47 Przykład Plan wykładu X=(A B+C) (A B) A 2 ( 1 = 0 X i = 5 j = 1

48 Przykład Plan wykładu X=(A B+C) (A B) B 4 3 A 2 ( 1 = 0 X i = 5 j = 1 ŁAD T 1

49 Przykład Plan wykładu X=(A B+C) (A B) T 1 2 ( 1 = 0 X i = 3 j = 2 ŁAD T 1

50 Przykład Plan wykładu X=(A B+C) (A B) T 1 2 ( 1 = 0 X i = 4 j = 2 ŁAD T 1

51 Przykład Plan wykładu X=(A B+C) (A B) C T 1 2 ( 1 = 0 X i = 5 j = 2 ŁAD T 1

52 Przykład Plan wykładu X=(A B+C) (A B) C T 1 2 ( 1 = 0 X i = 5 j = 2 ŁAD T 1 POB T 1 DOD C ŁAD T 2

53 Przykład Plan wykładu X=(A B+C) (A B) T 2 2 ( 1 = 0 X i = 3 j = 3 ŁAD T 1 POB T 1 DOD C ŁAD T 2

54 Przykład Plan wykładu X=(A B+C) (A B) T 2 1 = 0 X i = 2 j = 3 ŁAD T 1 POB T 1 DOD C ŁAD T 2

55 Przykład Plan wykładu X=(A B+C) (A B) T 2 1 = 0 X i = 3 j = 3 ŁAD T 1 POB T 1 DOD C ŁAD T 2

56 Przykład Plan wykładu X=(A B+C) (A B) ( 3 2 T 2 1 = 0 X i = 4 j = 3 ŁAD T 1 POB T 1 DOD C ŁAD T 2

57 Przykład Plan wykładu X=(A B+C) (A B) A 4 ( 3 2 T 2 1 = 0 X i = 5 j = 3 ŁAD T 1 POB T 1 DOD C ŁAD T 2

58 Przykład Plan wykładu X=(A B+C) (A B) A 4 ( 3 2 T 2 1 = 0 X i = 6 j = 3 ŁAD T 1 POB T 1 DOD C ŁAD T 2

59 Przykład Plan wykładu X=(A B+C) (A B) 7 B 6 5 A 4 ( 3 2 T 2 1 = 0 X i = 7 j = 3 ŁAD T 1 POB T 1 DOD C ŁAD T 2

60 Przykład Plan wykładu X=(A B+C) (A B) 7 B 6 5 A 4 ( 3 2 T 2 1 = 0 X i = 7 j = 3 ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3

61 Przykład Plan wykładu X=(A B+C) (A B) T 3 4 ( 3 2 T 2 1 = 0 X i = 5 j = 4 ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3

62 Przykład Plan wykładu X=(A B+C) (A B) T T 2 1 = 0 X i = 4 j = 4 ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3

63 Przykład Plan wykładu X=(A B+C) (A B) T T 2 1 = 0 X i = 4 j = 4 ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD T 4

64 Przykład Plan wykładu X=(A B+C) (A B) T 4 1 = 0 X i = 2 j = 5 ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD T 4

65 Przykład Plan wykładu X=(A B+C) (A B) T 4 1 = 0 X i = 2 j = 5 ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD T 4 POB T 4 ŁAD X

66 przebiega w 3 etapach: 1 Eliminacja sekwencji ŁAD T j POB T j 2 Wykorzystanie przemienności operacji, czyli ŁAD T j zamiana POB X na <op.przem.> X <op.przem.> T j 3 Wykorzystanie wspólnych podwyrażeń - wynik zapisany w zmiennej pomocniczej używany jest w dalszej części kodu

67 Przykład optymalizacji kodu X = ( A - B + C ) * ( A - B ) ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD T 4 POB T 4 ŁAD X

68 Przykład optymalizacji kodu X = ( A - B + C ) * ( A - B ) ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD T 4 POB T 4 ŁAD X 1. etap DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD X

69 Przykład optymalizacji kodu X = ( A - B + C ) * ( A - B ) ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD T 4 POB T 4 ŁAD X 1. etap DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD X 2. etap DOD C ŁAD T 2 MNO T 2 ŁAD X

70 Przykład optymalizacji kodu X = ( A - B + C ) * ( A - B ) ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD T 4 POB T 4 ŁAD X 1. etap DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD X 2. etap DOD C ŁAD T 2 MNO T 2 ŁAD X 3. etap ŁAD T 1 DOD C ŁAD T 2 POB T 1 MNO T 2 ŁAD X

71 Przykład optymalizacji kodu X = ( A - B + C ) * ( A - B ) ŁAD T 1 POB T 1 DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD T 4 POB T 4 ŁAD X 1. etap DOD C ŁAD T 2 ŁAD T 3 POB T 2 MNO T 3 ŁAD X 2. etap DOD C ŁAD T 2 MNO T 2 ŁAD X 3. etap ŁAD T 1 DOD C ŁAD T 2 POB T 1 MNO T 2 ŁAD X ŁAD T 1 DOD C MNO T 1 ŁAD X

Podstawy Informatyki Języki programowania

Podstawy Informatyki Języki programowania Podstawy Informatyki Języki programowania alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Wprowadzenie Języki programowania 2 Przykład Wczytywanie programu do pamięci Podsumowanie 3 Przykład

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Podstawy Informatyki Układ przerwań

Podstawy Informatyki Układ przerwań maszyny W Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu maszyny W 1 Wprowadzenie Przerwania we współczesnych procesorach Rodzaje systemów przerwań Cykl rozkazowy

Bardziej szczegółowo

Metody Kompilacji Wykład 1 Wstęp

Metody Kompilacji Wykład 1 Wstęp Metody Kompilacji Wykład 1 Wstęp Literatura: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compilers: Princiles, Techniques, and Tools. Addison-Wesley 1986, ISBN 0-201-10088-6 Literatura: Alfred V. Aho,

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

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

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe

Bardziej szczegółowo

Translacja wprowadzenie

Translacja wprowadzenie Translacja wprowadzenie Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Literatura 1) Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques and Tools, Addison- Wesley, 1986

Bardziej szczegółowo

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)

Bardziej szczegółowo

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).

Bardziej szczegółowo

Podstawy Informatyki Układ sterujący

Podstawy Informatyki Układ sterujący - wersja szyta - wersja mikroprogramowana Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi - wersja szyta - wersja mikroprogramowana Plan wykładu 1 Maszyna W Lista rozkazów maszyny

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

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

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne Spis treści 5 Spis treœci Co to jest mikrokontroler? Wprowadzenie... 11 Budowa systemu komputerowego... 12 Wejścia systemu komputerowego... 12 Wyjścia systemu komputerowego... 13 Jednostka centralna (CPU)...

Bardziej szczegółowo

Wstępdo assemblera MA51

Wstępdo assemblera MA51 no MACRO yes Wstępdo assemblera MA51 c.d. makrodefinicje Ryszard J. Barczyński, 2017 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Assembler

Bardziej szczegółowo

Mikrokontroler ATmega32. Język symboliczny

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

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

Zadanie analizy leksykalnej

Zadanie analizy leksykalnej Analiza leksykalna 1 Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Przykład: We: COST := ( PRICE + TAX ) * 0.98 Wy: id 1 := ( id 2 + id 3 ) * num 4 Tablica symboli:

Bardziej szczegółowo

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ PRZYDZIAŁ PAMIĘCI OPERACYJNEJ dr inż. Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Wstęp Pamięć komputera wielka tablica słów (bajtów)

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

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

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla Asembler A51 1. Symbole Nazwy symboliczne Symbol jest nazwą, która może być użyta do reprezentowania wartości stałej numerycznej, wyrażenia, ciągu znaków (tekstu), adresu lub nazwy rejestru. Nazwy symboliczne

Bardziej szczegółowo

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

Programowanie niskopoziomowe

Programowanie niskopoziomowe Programowanie niskopoziomowe Programowanie niskopoziomowe w systemie operacyjnym oraz poza nim Tworzenie programu zawierającego procedury asemblerowe 1 Programowanie niskopoziomowe w systemie operacyjnym

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

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

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4 Przedmiot : Programowanie w języku wewnętrznym Ćwiczenie nr 4 str. 1. 1. Użycie Asemblera. Polecenie JMP. Polecenie nakazuje procesorowi wykonywanie kodu programu od nowego innego miejsca. Miejsce to jest

Bardziej szczegółowo

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki Analiza leksykalna 1 Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych

Bardziej szczegółowo

KONSTRUKCJA KOMPILATORÓW

KONSTRUKCJA KOMPILATORÓW KONSTRUKCJA KOMPILATORÓW WYKŁAD Robert Plebaniak PLATFORMA PROGRAMOWA LINUX (może nie zawierać LLgen, wówczas instalacja ze strony http://tack.sourceforge.net); WINDOWS (używa się wtedy programu Cygwin,

Bardziej szczegółowo

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Programowanie Niskopoziomowe

Programowanie Niskopoziomowe Programowanie Niskopoziomowe Wykład 8: Procedury Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Linkowanie z bibliotekami zewnętrznymi Operacje na stosie

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

TRANSLACJA I TRANSLATORY

TRANSLACJA I TRANSLATORY TRANSLACJA I TRANSLATORY Języki programowania niskiego czy też wysokiego poziomu mają na zadanie przetworzyć ogół algorytmów w nich zapisanych na taką postać aby maszyna cyfrowa była w stanie je wykonać

Bardziej szczegółowo

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

Wstęp do programowania. Wykład 1 Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

KARTA KURSU. Wstęp do programowania

KARTA KURSU. Wstęp do programowania KARTA KURSU Nazwa Nazwa w j. ang. Wstęp do programowania Introduction to Programming Kod Punktacja ECTS* 6 Koordynator dr inż. Magdalena Andrzejewska Zespół dydaktyczny: dr inż. Magdalena Andrzejewska

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

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

elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES) Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Programowanie w asemblerze 1 Nazwa modułu w języku angielskim Assembly programming

Bardziej szczegółowo

Języki i metodyka programowania

Języki i metodyka programowania Języki i metodyka programowania www.ee.pw.edu.pl/~slawinsm Dr inż. Maciej Sławiński M.Slawinski@ee.pw.edu.pl GE518l Konsultacje: śr. 13 00-13 45 SK201/GE518l pt. 10 15-11 00 GE518l/SK201 Algorytmika Literatura

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

Gramatyki atrybutywne

Gramatyki atrybutywne Gramatyki atrybutywne, część 1 (gramatyki S-atrybutywne Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki atrybutywne Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

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

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

Bardziej szczegółowo

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C1

KARTA PRZEDMIOTU. Programowanie niskopoziomowe, C1 KARTA PRZEDMIOTU 1. 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

Organizacja typowego mikroprocesora

Organizacja typowego mikroprocesora Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają

Bardziej szczegółowo

Ryszard Myhan. Wykład 1: Języki programowania

Ryszard Myhan. Wykład 1: Języki programowania Ryszard Myhan Wykład 1: Języki programowania Programowanie Programowanie to proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów komputerowych lub urządzeń mikroprocesorowych.

Bardziej szczegółowo

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesorów

Bardziej szczegółowo

PLC1: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs podstawowy

PLC1: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs podstawowy PLC1: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs podstawowy DZIEŃ 1 Idea sterowania procesu lub maszyny: Sterowanie za pomocą przekaźników Sterowanie dedykowane Sterowanie za

Bardziej szczegółowo

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne Nazwa modułu: Programowanie proceduralne Rok akademicki: 2013/2014 Kod: JFT-1-201-s Punkty ECTS: 5 Wydział: Fizyki i Informatyki Stosowanej Kierunek: Fizyka Techniczna Specjalność: Poziom studiów: Studia

Bardziej szczegółowo

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++ Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Chemia, poziom pierwszy Sylabus modułu: Laboratorium programowania (0310-CH-S1-019) Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania

Bardziej szczegółowo

Algorytmy od problemu do wyniku

Algorytmy od problemu do wyniku Algorytmy Etapy tworzenia programu: 1) Sformułowanie zadania analiza problemu. 2) Opracowanie algorytmu sposób rozwiązania. 3) Zapisanie algorytmu w języku programowania kodowanie programu. 4) Kompilowanie

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk Plan wykładu (1) Paweł J. Matuszyk AGH Kraków 1 2 tor leksykalny tor syntaktyczny Generator pośredniego Generator wynikowego Hopcroft J. E., Ullman J. D., Wprowadzenie do teorii automatów, języków i obliczeń,

Bardziej szczegółowo

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to

Bardziej szczegółowo

Podstawy programowania (1)

Podstawy programowania (1) Podstawy programowania (1) doc. dr inż. Tadeusz Jeleniewski Konsultacje pokój 19 Poniedziałki, godz. 9:45 11:20 e-mail: tadeusz.jeleniewski@neostrada.pl Podstawy programowania (1) - wykład 1. Wprowadzenie

Bardziej szczegółowo

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH ZATWIERDZAM Dziekan Wydziału Nauk Społecznych i Technik Komputerowych S Y L A B U S 1 Tytuł (stopień) naukowy oraz imię i nazwisko

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład

Bardziej szczegółowo

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej. Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk PROLOG www.agh.edu.pl Pewnego dnia przyszedł na świat komputer Komputery

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Techniki mikroprocesorowe i systemy wbudowane

Techniki mikroprocesorowe i systemy wbudowane Techniki mikroprocesorowe i systemy wbudowane Wykład 1 Procesory rodziny AVR ATmega. Wstęp Wojciech Kordecki wojciech.kordecki@pwsz-legnica.eu Państwowa Wyższa Szkoła Zawodowa im. Witelona w Legnicy Wydział

Bardziej szczegółowo

Algorytmika i pseudoprogramowanie

Algorytmika i pseudoprogramowanie Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry

Bardziej szczegółowo

Makropolecenia w Excelu

Makropolecenia w Excelu Makropolecenia w Excelu Trochę teorii Makropolecenie w skrócie nazywane makro ma za zadanie automatyczne wykonanie powtarzających się po sobie określonych czynności. Na przykładzie arkusza kalkulacyjnego

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Zarządzanie pamięcią operacyjną zagadnienia podstawowe Zarządzanie pamięcią operacyjną zagadnienia podstawowe Pamięć jako zasób systemu komputerowego Pamięć jest zasobem służący do przechowywania danych. Z punktu widzenia systemu pamięć jest zasobem o strukturze

Bardziej szczegółowo

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie. TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE 1. Po uruchomieni programu Greenfoot początkowa scena ma następujące składniki: a. obiekty scenerii i jeden obiekt ruchomy, b. obraz tła, jeden lub więcej

Bardziej szczegółowo

KARTA PRZEDMIOTU. Egzamin / zaliczenie. Egzamin / zaliczenie. ocenę*

KARTA PRZEDMIOTU. Egzamin / zaliczenie. Egzamin / zaliczenie. ocenę* WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI Zał. nr 4 do ZW 33/01 KARTA PRZEDMIOTU Nazwa w języku polskim: Programowanie w języku C Nazwa w języku angielskim C language programming Kierunek studiów (jeśli

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

imei Instytut Metrologii, Elektroniki i Informatyki

imei Instytut Metrologii, Elektroniki i Informatyki PODSTAWY TECHNIKI MIKROPROCESOROWEJ Laboratorium Elektrotechnika, studia stacjonarne pierwszego stopnia Temat: Wprowadzenie do programowania mikrokontrolerów rodziny MCS-51 imei Instytut Metrologii, Elektroniki

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C Mikrosterownik Inne nazwy: Microcontroler (z języka angielskiego) Ta nazwa jest powszechnie używana w Polsce. Mikrokomputer jednoukładowy

Bardziej szczegółowo

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów

Bardziej szczegółowo

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy Programowanie w C++ 1.Czym jest programowanie Pisanie programów to wcale nie czarna magia, tylko bardzo logiczna rozmowa z komputerem. Oczywiście w jednym ze specjalnie stworzonych do tego celu języków.

Bardziej szczegółowo

Od programu źródłowego do procesu

Od programu źródłowego do procesu Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów

Bardziej szczegółowo

Analiza semantyczna. Gramatyka atrybutywna

Analiza semantyczna. Gramatyka atrybutywna Analiza semantyczna Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji na temat składni języka podlegającego tłumaczeniu, translator musi posiadać możliwość korzystania z wielu innych informacji

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA I. KARTA PRZEDMIOTU 1. Nazwa przedmiotu: PODSTAWY PROGRAMOWANIA. Kod przedmiotu: Ovi1 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Mechatronika 5. Specjalność: Eksploatacja Systemów

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Funkcje w języku C Zasięg zmiennych Przekazywanie

Bardziej szczegółowo

Podstawy programowania.

Podstawy programowania. Kod przedmiotu: PPR Podstawy programowania. Rodzaj przedmiotu: kierunkowy; obowiązkowy Wydział: Informatyki Kierunek: Informatyka Specjalność (specjalizacja): - Poziom studiów: pierwszego stopnia Profil

Bardziej szczegółowo

PMiK Programowanie Mikrokontrolera 8051

PMiK Programowanie Mikrokontrolera 8051 PMiK Programowanie Mikrokontrolera 8051 Wykład 3 Mikrokontroler 8051 PMiK Programowanie mikrokontrolera 8051 - wykład S. Szostak (2006) Zmienna typu bit #define YES 1 // definicja stałych #define NO 0

Bardziej szczegółowo

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

A Machine Architecture that is Really Intuitive and Easy.  Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym MARIE A Machine Architecture that is Really Intuitive and Easy http://computerscience.jbpub.com/ecoa Słowo 16b Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym od 8000h (- 32,768 = -2^15) do 7FFFh

Bardziej szczegółowo

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły

Bardziej szczegółowo

WYKŁAD 1 - KONSPEKT. Program wykładu:

WYKŁAD 1 - KONSPEKT. Program wykładu: mgr inż. Jarosław Forenc e-mail: jarekf@pb.bialystok.pl tel. (0-85) 746-93-97 WWW: http://we.pb.bialystok.pl/~jforenc konsultacje: zaliczenie: Program wykładu: WYKŁAD 1 - KONSPEKT 1. Ogólna struktura programu

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

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady

Bardziej szczegółowo