Assembly Languages

Completion:accreditation+exam (written)
Type of
Hour/semLecturesSem. ExercisesLab. exercisesComp. exercisesOther
Guarantee:Zbořil František V., doc. Ing., CSc., DITS
Lecturer:Drahanský Martin, prof. Ing., Dipl.-Ing., Ph.D., DITS
Hanáček Petr, doc. Dr. Ing., DITS
Orság Filip, Ing., Ph.D., DITS
Zbořil František V., doc. Ing., CSc., DITS
Instructor:Kadák Michal, Ing., DITS
Kubát David, Ing., DITS
Malačka Ondřej, Ing., DITS
Novotný Tomáš, Ing., DITS
Samek Jan, Ing., Ph.D., DITS
Stružka Jaroslav, Ing., DITS
Szöllös Alexandr, Ing., DITS
Valenta Václav, Ing., DITS
Váňa Jan, Ing., DITS
Žák Jakub, Ing., DITS
Faculty:Faculty of Information Technology BUT
Department:Department of Intelligent Systems FIT BUT
Substitute for:
Assembly Languages (SOJ), FIT
Learning objectives:
  To acquaint students with assembly programming directed at PC with Intel Pentium Processors, namely with numeral systems, representations of unsigned and signed numbers, with arithmetic in binary system and with real numbers representation. Further with Intel Pentium basic architecture, types of operands and their references in registers and memories, integer and FPU instruction set, assembly language and typical programming constructions.
  Numeral systems. Unsigned and signed numbers representations, arithmetic in binary system. Machine language, assembly language, assembler. Intel Pentium processors architecture (registers, main memory organization, interrupt system). Integer instruction set. Programming in machine language. NASM assembly language, symbolic instruction, directives, macroinstructions. Assembling and linking. Standard control transfer and passing of parameters in procedures and functions. Operation system services. Programming of PC peripherals (videoRAM, mouse, speaker). Real numbers representation, IEEE standard. FPU architecture and instruction set. FPU programming. Introduction to FITkit.
Knowledge and skills required for the course:
Subject specific learning outcomes and competences:
  Students acquaint with architecture of Intel Pentium processors (real mode) including FPU unit and learn to use the most important integer and FPU instructions. Further they learn assembly language NASM and they will be able to create programs in this language and to compile these programs into executable ones. Students acquire basic knowledge of control transfer and parameters passing and of operation system services and they will be able to apply this knowledge in practice.
Generic learning outcomes and competences:
  Students acquire basic knowledge of principles of processor architecture and operation that belongs to basic knowledge of all IT specialists. They learn to solve simple problems in assembly language and maintain proper documentation of elementary computer programs.
Syllabus of lectures:
  1. Introduction, numerical systems, arithmetic. 
  2. Machine code (language), assembly language, assembler.
  3. Real mode of Pentium processors: registers, operands, instruction formats, memory addressing, interrupts.
  4. Pentium processor instruction set. Integer instructions.
  5. Integer instructions, continuation.
  6. Integer instructions, continuation.
  7. Principles of programming in machine language, typical control constructions.
  8. Assembly language.
  9. Assembly language, continuation.
  10. Modules, libraries, operational system services. Procedures and functions, standard control transfer and passing of parameters.
  11. FPU of Pentium processors.
  12. FPU instruction set.
  13. FITkit.
Syllabus of computer exercises:
  1. Assembler (NASM) and linker (LINK).
  2. Principles of programming in machine language, typical control constructions.
  3. Simple programs in assembly language.
  4. Operation system services. Programming of PC peripherals.
  5. Standard control transfer and passing of parameters in procedures and functions.
  6. Individual programs.
  7. FPU programming.
Fundamental literature:
Study literature:
  • Abel, P.: IBM PC Assembly Language and Programming, Prentice-Hall, Inc., 1995, ISBN 0-13-317729-7
  • Carter, P.: Assembly language tutorial, http://www.drpaulcarter.com/pcasm/, 2002
Progress assessment:
  • Mid-Term written test
  • Programs in computer exercises
Exam prerequisites:
  At least 15 points earned during semester.