456-0328/01 – Assembly Languages (SOJ)
Gurantor department | Department of Computer Science | Credits | 6 |
Subject guarantor | Ing. Petr Olivka, Ph.D. | Subject version guarantor | Ing. Petr Olivka, Ph.D. |
Study level | undergraduate or graduate | Requirement | Optional |
Year | 1 | Semester | winter |
| | Study language | Czech |
Year of introduction | 2003/2004 | Year of cancellation | 2009/2010 |
Intended for the faculties | FEI | Intended for study types | Follow-up Master |
Subject aims expressed by acquired skills and competences
The main goal of this cource is to introduce usage of computer technical resources in assembly language. Programming under OS Linux.
Teaching methods
Lectures
Tutorials
Project work
Summary
The following topics are discussed: Intel processor 8086-Pentium, data types,
registers, addressing - base, index and segment registers, physical address,
instruction set, directives and operators. Principles of OOP implementation and
linking with higher-level languages. Mathematical coprocessor, MMX, data types
and instructions.
Compulsory literature:
NASM Compiler Documentation www.nasm.org
www.intel.com, www.amd.com - Technical and Programmers Guide For Latest CPU
Recommended literature:
Additional study materials
Way of continuous check of knowledge in the course of semester
E-learning
Other requirements
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.
Subject syllabus:
Přednášky:
Procesory Intel 8086, velikosti operandů, registry, adresace - bázové a indexové registry, výpočet fyzické adresy.
Instrukce přesunové, použití adresace přímé a nepřímé.
Instrukce aritmetické a logické.
Instrukce skokové, řetězcové a řídící.
Rozšíření instrukčního souboru procesoru Intel 80186, 80286, rozšíření 32-bitového procesoru 386 a 486, Pentium, Pentium Pro, ...
Direktivy a operátory překladače JSI.
Segmentace, paměťové modely, pravidla pro spojování segmenů.
Spojování programů v JSI s vyššími programovacími jazyky, použití JSI ve zdrojových textech vyšších programovacích jazyků.
Statické a dynamické linkování, implementace překryvných modulů, implemenatce OOP a přetížených identifikátorů.
Přerušení programové a systémové, obsluha, přesměrování obsluhy přerušení, spolupráce s řadičem přerušení. Rezidentní programy.
Aritmetické operace s velkými celými čísly.
Koprocesor, MMX.
Princim činnosti procesoru Intel a kopm. v chráněném módu.
Formát pevných disků, souborový systém, zavádění OS.
Projekty:
V rámci samostatné přípravy si každý student vybere libovolný hotový program napsaný v jazyce C/C++ a přepíše některé funkce tohoto programu do JSI. Tím si ověří svou schopnost správně využívat adresovací režimy, předávání argumentů funkcí přes zásobník, používání lokálních proměnných a podmíněné skoky.
Počítačové laboratoře:
Registry, základní adresovací režimy, nedokonalosti překladačů vyšších jazyků.
Překlad a linkování programu. Symboly veřejné a lokální. Spojování programů jazyka C a ASM.
Istrukce přesunové a skokové.
Intrukce logické a aritmetické.
Instrukce řetězcové.
Předávání parametrů přes zásobník, návratové hodnoty funkcí.
Manipulace se základními datovými typy v podprogramech.
Aritmetika s čísly ve dvou registrech.
Sčítání, odčítání, botové posuny N-bitových čísel.
Násobení a dělení N-bitových čísel.
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction