logo
Karta przedmiotu
logo

Programowanie niskopoziomowe

Podstawowe informacje o zajęciach

Cykl kształcenia: 2024/2025

Nazwa jednostki prowadzącej studia: Wydział Elektrotechniki i Informatyki

Nazwa kierunku studiów: Informatyka

Obszar kształcenia: nauki techniczne

Profil studiów: ogólnoakademicki

Poziom studiów: pierwszego stopnia

Forma studiów: niestacjonarne

Specjalności na kierunku: AA - inżynieria systemów informatycznych, AI - Sztuczna inteligencja, TT - informatyka w przedsiębiorstwie, Z - inżynieria systemów złożonych

Tytuł otrzymywany po ukończeniu studiów: inżynier

Nazwa jednostki prowadzącej zajęcia: Katedra Informatyki i Automatyki

Kod zajęć: 1794

Status zajęć: obowiązkowy dla specjalności AA - inżynieria systemów informatycznych

Układ zajęć w planie studiów: sem: 6 / W15 L10 / 3 ECTS / Z

Język wykładowy: polski

Imię i nazwisko koordynatora: dr hab. inż. prof. PRz Zbigniew Hajduk

semestr 6: mgr inż. Dawid Kalandyk

Cel kształcenia i wykaz literatury

Główny cel kształcenia: Student uzyskuje podstawową wiedzę z zakresu programowania niskopoziomowego. Obejmuje ona poznanie języka asembler dla wybranego mikroprocesora. Zdobywa umiejętności rozumienia i pisania programów lub ich części w asemblerze.

Ogólne informacje o zajęciach: Jest to moduł kształcenia obowiązkowy dla specjalności inżynieria systemów informatycznych

Materiały dydaktyczne: https://zh.kia.prz.edu.pl

Wykaz literatury, wymaganej do zaliczenia zajęć
Literatura wykorzystywana podczas zajęć wykładowych
1 Randall Hyde Asembler Sztuka programowania Wydanie 2 Helion. 2010
2 Microchip MPASM™ Assembler, MPLINK™ Object Linker, MPLIB™ Object Librarian, User’s Guide . 2013
3 Microchip PIC16F87XA Datasheet. 2013

Wymagania wstępne w kategorii wiedzy/umiejętności/kompetencji społecznych

Wymagania formalne: Wymagane zaliczenie modułów: architektura systemów komputerowych, elementy logiki i arytmetyki komputerów, systemy operacyjne

Wymagania wstępne w kategorii Wiedzy:

Wymagania wstępne w kategorii Umiejętności:

Wymagania wstępne w kategorii Kompetencji społecznych:

Efekty kształcenia dla zajęć

MEK Student, który zaliczył zajęcia Formy zajęć/metody dydaktyczne prowadzące do osiągnięcia danego efektu kształcenia Metody weryfikacji każdego z wymienionych efektów kształcenia Związki z KEK Związki z PRK
01 Ma podstawową wiedzę o architekturze procesora, jego rozkazach i dyrektywach asemblera oraz potrafi je zastosować przy pisaniu programów wykład, laboratorium problemowe kolokwium, sprawozdanie z laboratorium K_W04++
K_U08++
P6S_UW
P6S_WG
02 Potrafi napisać stosunkowo nieskomplikowane programy w asemblerze, w tym realizujące operacje arytmetyczno-logiczne operujące na zwielokrotnionej długości słowa, implementujące funkcje przełączające i automaty sekwencyjne, czy też wykorzystujące system przerwań procesora. wykład, laboratorium problemowe obserwacja wykonawstwa, zaliczenie cz. pisemna, sprawozdanie z laboratorium K_U08++
K_U20+
P6S_UW
03 Potrafi posługiwać się debugerem i dokonywać inspekcji oprogramowania laboratorium problemowe obserwacja wykonawstwa
04 Zna podstawowe zasady pisania optymalnego kodu i potrafi dokonać optymalizacji istniejącego kodu wykład, laboratorium zaliczenie cz. pisemna, obserwacja wykonawstwa K_W04+
P6S_WG

Uwaga: W zależności od sytuacji epidemicznej, jeżeli nie będzie możliwości weryfikacji osiągniętych efektów uczenia się określonych w programie studiów w sposób stacjonarny w szczególności zaliczenia i egzaminy kończące określone zajęcia będą mogły się odbywać przy użyciu środków komunikacji elektronicznej (w sposób zdalny).

Treści kształcenia dla zajęć

Sem. TK Treści kształcenia Realizowane na MEK
6 TK01 Wprowadzenie do przedmiotu. Język asembler a języki wysokiego poziomu. Architektury RISC, CISC. Maszyny akumulatorowe, stosowe oraz rejestrowe. W1 MEK01
6 TK02 Architektura wybranego mikroprocesora, modyfikacje architektury dla "miękkiej" wersji procesora implementowanej w strukturach FPGA (stos, dodatkowa pamięć RAM, przyśpieszenie cyklu maszynowego). Organizacja pamięci danych oraz pamięci programu, rejestry specjalne. Szczegółowa lista rozkazów mikroprocesora. W2 MEK01
6 TK03 Środowisko programistyczne, dyrektywy asemblera. Wykorzystywana platforma sprzętowa. Sprzętowy loader. Śledzenie wykonywania programu. W3 MEK02 MEK03
6 TK04 Realizacja instrukcji przesłań oraz instrukcji warunkowych. Operacje relacji. Realizacja złożonych wyrażeń. Realizacja pętli oraz operacji skoków. W3-W4 MEK02 MEK04
6 TK05 Podprogramy. Realizacja odczytu tablic umieszczonych w pamięci programu. Makrodefinicje programowe. Rodzaje adresowania pamięci. Realizacja struktur typu LIFO, obsługa stosu, przekazywanie parametrów do podprogramów. W4-W5 MEK02
6 TK06 Realizacja operacji arytmetycznych i logicznych dla długości słowa przekraczającej rozmiar podstawowy. W5-W6 MEK02 MEK04
6 TK07 System przerwań. Obsługa przerwań. Programy rekurencyjne. W6-W7 MEK02
6 TK08 Realizacja funkcji przełączających oraz automatów sekwencyjnych. W7 MEK02 MEK03

Nakład pracy studenta

Forma zajęć Praca przed zajęciami Udział w zajęciach Praca po zajęciach
Wykład (sem. 6) Godziny kontaktowe: 15.00 godz./sem.
Uzupełnienie/studiowanie notatek: 10.00 godz./sem.
Studiowanie zalecanej literatury: 20.00 godz./sem.
Laboratorium (sem. 6) Przygotowanie do laboratorium: 10.00 godz./sem.
Godziny kontaktowe: 10.00 godz./sem.
Dokończenia/wykonanie sprawozdania: 5.00 godz./sem.
Konsultacje (sem. 6) Przygotowanie do konsultacji: 2.00 godz./sem.
Udział w konsultacjach: 4.00 godz./sem.
Zaliczenie (sem. 6) Przygotowanie do zaliczenia: 10.00 godz./sem.
Zaliczenie pisemne: 1.00 godz./sem.

Sposób wystawiania ocen składowych zajęć i oceny końcowej

Forma zajęć Sposób wystawiania oceny podsumowującej
Wykład Zaliczenie na podstawie oceny z kolokwium.
Laboratorium Oddanie wszystkich sprawozdań z ćwiczeń. Pozytywna ocena z wykonawstwa ćwiczeń laboratoryjnych oraz (ewentualnie) ocena z kolokwium sprawdzającego wiedzę z laboratorium.
Ocena końcowa Ocena końcowa przedmiotu stanowi 60% oceny z kolokwium zaliczeniowego z wykładu oraz 40% oceny uzyskanej z laboratorium.

Przykładowe zadania

Wymagane podczas egzaminu/zaliczenia
(-)

Realizowane podczas zajęć ćwiczeniowych/laboratoryjnych/projektowych
(-)

Inne
(-)

Czy podczas egzaminu/zaliczenia student ma możliwość korzystania z materiałów pomocniczych : nie

Treści zajęć powiazane są z prowadzonymi badaniami naukowymi: tak

1 G. Dec; Z. Hajduk Very High Accuracy Hyperbolic Tangent Function Implementation in FPGAs 2023
2 Z. Hajduk IEC61131-3 Instruction List Language Processor for FPGAs 2023
3 L. Gniewek; Z. Hajduk; J. Kluska; T. Żabiński FPGA-Embedded Anomaly Detection System for Milling Process 2021
4 Z. Hajduk Generator liczb prawdziwie losowych oraz sposób generowania liczb prawdziwie losowych z wykorzystaniem tego generatora liczb prawdziwie losowych 2021
5 Z. Hajduk Oscylator, zwłaszcza dla generatorów liczb losowych 2021
6 Z. Hajduk; J. Wojtowicz FPGA Implementation of Fuzzy Interpreted Petri Net 2020
7 Z. Hajduk Generator liczb prawdziwie losowych oraz sposób generowania liczb prawdziwie losowych z wykorzystaniem tego generatora liczb prawdziwie losowych 2019
8 Z. Hajduk Oscylator, zwłaszcza dla generatorów liczb losowych 2019