460-4083/06 – Assembly Languages (SOJ)

Gurantor departmentDepartment of Computer ScienceCredits5
Subject guarantorIng. Petr Olivka, Ph.D.Subject version guarantorIng. Petr Olivka, Ph.D.
Study levelundergraduate or graduateRequirementOptional
Year1Semestersummer
Study languageEnglish
Year of introduction2021/2022Year of cancellation
Intended for the facultiesFEIIntended for study typesFollow-up Master, Master
Instruction secured by
LoginNameTuitorTeacher giving lectures
OLI10 Ing. Petr Olivka, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Credit and Examination 2+3

Subject aims expressed by acquired skills and competences

The main goal of this course is to introduce usage of computer technical resources in assembly language. Students will be able to eliminate the shortcomings of higher programming language code after completing the course. Students will also be able to combine modules from multiple programming languages ​​into one program.

Teaching methods

Lectures
Tutorials

Summary

Students will learn in this course the assembly programming under Linux OS on x86 hardware. They will be familiar with technical capabilities of a processor and the using ALU, FPU and SSE units. They will learn some programming techniques which are not possible in high-level programming languages.

Compulsory literature:

[1] Barry B. Brey, The Intel Microprocessors, Prentice Hall; 8 edition (June 28, 2008), ISBN: 0135026458 [2] Benjamin Ray Seyfarth, Introduction to 64 Bit Intel Assembly Language Programming for Linux, CreateSpace Independent Publishing Platform; 2 edition (June 23, 2012), ISBN: 1478119209 [3] http://www.intel.com and http://www.amd.com - Programming Manuals for the lates CPU.

Recommended literature:

[1] NASM compiler documentation, http://www.nasm.us

Way of continuous check of knowledge in the course of semester

Students will be fullfill asigned task during labs. The results of these tasks will form the basis for the final evaluation. Theoretical knowledges are verified by a written exam.

E-learning

Other requirements

Experiences with programming in C/C++ language.

Prerequisities

Subject has no prerequisities.

Co-requisities

Subject has no co-requisities.

Subject syllabus:

Lecture: 1. Intel processor, operands, registers, addressing, index and base registers. 2. Data moving instructions, direct and indirect addressing. 3. Arithmetical and logical instructions. 4. Jumps and conditional instructions. String instructions. 5. Instruction set extensions during Intel processors history. 6. Linking assembly language with C language. 7. Argument passing to functions. Passing of return values. 8. 64-bit extensions of modern CPUs. 9. Static and dynamic linking, implementation of OOP and some C++ features. 10. Calculations with large numbers - basics. 11. Calculations with large numbers - without size limitation. 12. Format of float and fixed point numbers, computing with float and fixed point numbers. 13. FPU, SSE unit. Labs: 1. Registers, addressing modes, 2. Linking assembly and C language. Public, private and extern symbols. 3. Jumps and conditional instructions. 4. Logical and arithmetical instructions. 5. String instructions. 6. Argument passing using stack. 7. Manipulation with base data types in functions. 8. Calculations with large numbers using registers. 9. Computing with N-bits numbers, adding, shifting, rotating. 10. Computing with N-bits numbers, multiplication, division, square root. 11. 64-bits mode programming. 12. Float and fixed number computing. 13. FPU and SSE unit usage.

Conditions for subject completion

Full-time form (validity from: 2021/2022 Summer semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of pointsMax. počet pokusů
Credit and Examination Credit and Examination 100 (100) 51
        Credit Credit 45 (45) 23
                Tasks in labs Other task type 45  23
        Examination Examination 55 (55) 28 3
                Exam Written examination 55  28
Mandatory attendence participation: Participation in exercises is mandatory and it is checked. The course guarantor will inform students about the amount of compulsory participation at the beginning of the semester.

Show history

Conditions for subject completion and attendance at the exercises within ISP: Completion of all mandatory tasks within individually agreed deadlines.

Show history

Occurrence in study plans

Academic yearProgrammeBranch/spec.Spec.ZaměřeníFormStudy language Tut. centreYearWSType of duty
2024/2025 (N0612A140005) Information and Communication Security P English Ostrava 1 Optional study plan
2024/2025 (N0613A140035) Computer Science PSS P English Ostrava 1 Choice-compulsory type A study plan
2024/2025 (N0688A140015) Industry 4.0 P English Ostrava 1 Optional study plan
2023/2024 (N0612A140005) Information and Communication Security P English Ostrava 1 Optional study plan
2023/2024 (N0688A140015) Industry 4.0 P English Ostrava 1 Optional study plan
2023/2024 (N0613A140035) Computer Science PSS P English Ostrava 1 Choice-compulsory type A study plan
2023/2024 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan
2022/2023 (N0613A140035) Computer Science PSS P English Ostrava 1 Choice-compulsory type A study plan
2022/2023 (N0688A140015) Industry 4.0 P English Ostrava 1 Optional study plan
2022/2023 (N0612A140005) Information and Communication Security P English Ostrava 1 Optional study plan
2022/2023 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner

Assessment of instruction

Předmět neobsahuje žádné hodnocení.