Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Asemblery
Tok studiów:
2014/2015
Kod:
IIN-1-203-s
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka
Semestr:
2
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
Długopolski Jacek (dlugopol@agh.edu.pl)
Osoby prowadzące:
Długopolski Jacek (dlugopol@agh.edu.pl)
Krótka charakterystyka modułu

Moduł zapoznaje z ideą języków asemblerowych, z ich składnią i sposobem programowania. Student zdobywa umiejętności rozwiązywania problemów informatycznych na poziomie instrukcji języka maszynowego.

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Posiada niezbędną wiedzę w zakresie architektury i oprogramowania systemów mikroprocesorowych i systemów wbudowanych, pozwalającą na skuteczne wykorzystanie języków asemblerowych. IN1A_W09 Odpowiedź ustna
M_W002 Ma szczegółową wiedzę w zakresie języków asemblerowych i technik programowania w językach maszynowych. IN1A_W05 Odpowiedź ustna
Umiejętności
M_U001 Posługuje się językiem asemblera oraz odpowiednimi kompilatorami. IN1A_U09 Wykonanie ćwiczeń laboratoryjnych
M_U002 Potrafi implementować oprogramowanie w niskopoziomowych językach asemblerowych. IN1A_U09 Wykonanie ćwiczeń laboratoryjnych
M_U003 Potrafi sformułować algorytm na poziomie języka maszynowego. IN1A_U09 Wykonanie ćwiczeń laboratoryjnych
Kompetencje społeczne
M_K001 Znając przykładowe języki asemblera, rozumie potrzebę ciągłego dokształcania się i poznawania nowych rozwiązań w tej dziedzinie. IN1A_K01 Wykonanie ćwiczeń laboratoryjnych
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Posiada niezbędną wiedzę w zakresie architektury i oprogramowania systemów mikroprocesorowych i systemów wbudowanych, pozwalającą na skuteczne wykorzystanie języków asemblerowych. + - - - - - - - - - -
M_W002 Ma szczegółową wiedzę w zakresie języków asemblerowych i technik programowania w językach maszynowych. + - - - - - - - - - -
Umiejętności
M_U001 Posługuje się językiem asemblera oraz odpowiednimi kompilatorami. - - + - - - - - - - -
M_U002 Potrafi implementować oprogramowanie w niskopoziomowych językach asemblerowych. - - + - - - - - - - -
M_U003 Potrafi sformułować algorytm na poziomie języka maszynowego. - - + - - - - - - - -
Kompetencje społeczne
M_K001 Znając przykładowe języki asemblera, rozumie potrzebę ciągłego dokształcania się i poznawania nowych rozwiązań w tej dziedzinie. + - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

Celem wykładu jest zapoznanie studentów z ideą języków asemblerowych, z ich składnią oraz z technikami programowania mikroprocesorów za pomocą języków asemblerowych. Ponadto studenci zdobywają umiejętności rozwiązywania problemów informatycznych na poziomie instrukcji języka maszynowego.

Program wykładu:

  1. Zestawienie zalet i wad języków niskiego poziomu typu asembler.
  2. Omówienie budowy modułowej przykładowych mikroprocesorów typu CISC: Intel 8086 i Intel 8051 oraz przykładowego procesora typu RISC: Microchip PIC16C84 na poziomie niezbędnym do programowania w językach asemblera
  3. Omówienie list rozkazów dla wyżej wymienionych mikroprocesorów i różnic pomiędzy nimi.
  4. Omówienie struktury programu źródłowego w języku asemblera i sposobu kompilacji.
  5. Omówienie podstaw pisania programów w językach asemblerowych.
  6. Metody korzystania z przerwań sprzętowych i programowych w procesorach.
  7. Wybrane techniki programowania w językach asemblerowych (m.in.: tryby adresowania pamięci i urządzeń wejścia/wyjścia, instrukcje warunkowe, pętle, operacje łańcuchowe, i inne).
  8. Omówienie operacji na plikach dyskowych i technik opartych na bezpośrednim dostępie do pamięci obrazu.

Ćwiczenia laboratoryjne:

W ramach przedmiotu prowadzone są zajęcia laboratoryjne, podczas których studenci zdobywają praktyczne umiejętności programowania w językach asemblerowych. Wymagana jest realizacja minimum trzech programów, określonych przez prowadzącego. Tworzone przez studentów programy powinny wykorzystywać operacje na konsoli (wczytywanie danych z klawiatury i wypisywanie wyniku na ekranie w trybie tekstowym), operacje na plikach dyskowych (zapis i odczyt) oraz operacje bezpośredniego dostępu do pamięci obrazu w trybach graficznych. W ramach zajęć, dla studentów szczególnie zainteresowanych przedmiotem, dopuszczalne są również realizacje większych pojedynczych projektów, po wcześniejszym uzgodnieniu tego z prowadzącym zajęcia.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 55 godz
Punkty ECTS za moduł 2 ECTS
Udział w wykładach 15 godz
Samodzielne studiowanie tematyki zajęć 10 godz
Udział w ćwiczeniach laboratoryjnych 15 godz
Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. 15 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Ocenę końcową stanowi ocena uzyskana z ćwiczeń laboratoryjnych.

Na laboratorium oceniana jest: jakość napisanego przez studenta kodu assemblerowego dla przydzielonych przez prowadzącego zadań, stopień rozwiązania tych zadań oraz sprawdzana ustnie wiedza studenta dotycząca przedmiotu.

Ze względu na laboratoryjną formę przedmiotu, niedostępny jest poprawkowy termin zaliczenia przedmiotu. Student musi zaliczyć przedmiot w czasie podstawowych zajęć.

W razie uzasadnionej i usprawiedliwionej nieobecności na zajęciach, student wyłącznie za zgodą prowadzącego może wyrównać powstałe w ten sposób zaległości z inną grubą laboratoryjną (jeśli będzie to fizycznie możliwe) w terminie wskazanym przez prowadzącego zajęcia.

Wymagania wstępne i dodatkowe:

Wymagane wiadomości z podstaw informatyki oraz podstawowa umiejętność obsługi komputera pracującego pod kontrolą dowolnego systemu operacyjnego.

Zalecana literatura i pomoce naukowe:


Literatura podstawowa:

  1. Kruk Stanisław, “Assembler”, wyd. PWN 2009
  2. Metzger Piotr, “Anatomia PC”, wyd. XI, Helion 2007
  3. Wróbel Eugeniusz “Programowanie w języku asemblera MASM. Laboratorium”, Wyd. Politechniki Śląskiej, Gliwice 2006


Literatura uzupełniająca:

  1. Vlad Pirogov, “Asembler. Podręcznik programisty”, Wyd. Helion, Gliwice 2005
  2. Abel Peter, "Programowanie Asembler IBM PC ", wyd. RM 2004
  3. Starecki Tomasz, “Mikrokontrolery 8051 w praktyce”. BTC, Warszawa 2002.
  4. Rydzewski Andrzej, " Mikrokomputery jednoukładowe rodziny MCS-51". Wydawnictwa Naukowo-Techniczne, Warszawa 1999.
Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Wójcik W., Długopolski J., “FPGA-based multi-core processor”, Computer Science, Informatyka, University of Mining and Metallurgy, Kraków ; ISSN 1508-2806. — 2013 vol. 14 no. 3, s. 459–474.

Informacje dodatkowe:

Brak