Facultatea de Auomatica si CalculatoareFacultatea de Auomatica si Calculatoare

See other templatesSee other templates

Print

Assembly Language Programming

Course Instructor: Valentin Lungu.

Familiarization with fundamental concepts of hardware structure of the Intel family processors, learning of the Intel x86/Pentium assembly language, program development and debugging. Another reason for which experience in assembly language programming is also recommended is that a specialist in computer science has to know the subtle mechanisms of the processor in order to use them in different applications. This kind of experience will help the programmer write more efficient programs in high level programming languages, as he or she knows what is happening at the processor level. Likewise, the debugging of a program may need to trace the errors deeper than the source text (program) and proceed with object code debugging; in this case, knowledge of assembly language is mandatory. Additionally, the study of assembly language permits a rapid adaptation of the programmer to the mechanisms and assembly languages that are specific to controllers and signal processors.

Syllabus:

  • Introduction (computer structure).
  • Short history of computers and processors evolution (performances, generations of computers and processors).
  • The steps in order to obtain an assembly language program.
  • The structure of INTEL 80x86/ PENTIUM processors.
  • Base architecture, processor resources, real and protected modes.
  • Computer architecture and memory architecture. Segmentation and paging.
  • The I/O space. Segment descriptors. Superscalar processors.
  • The interrupt system.
  • The BIOS and DOS interrupts.
  • Internal and external interrupts.
  • The interrupt vector table.
  • Interrupt service procedures.
  • The instruction format (codification, addressing modes).
  • Assembly language (constant definition, statements and instructions).
  • Operators and directives.
  • Data definition in assembly language.
  • Defining and initializing labels.
  • Segment definition and use (simplified and complete directives).
  • Segment register initialization, segment assignment to segment registers.
  • Segment groups.
  • The instruction set.
  • Data transfer, arithmetic, bit manipulation, string, program control transfer, processor control and system instructions.
  • Program examples for each type of instruction.
  • Procedure definition and use (call).
  • Parameters passing for assembly language procedures.
  • Parameters passing for high level languages Recursive procedures.
  • Programs composed of several modules.
  • Communication between modules.
  • Macroinstructions.
  • The repeat macroinstructions.
  • Conditional assembly directives.
  • Data structures in assembly language.
  • Structure and record definition (struc and record directives).
  • Memory resident programs (TSR).
  • Components of a TSR program (transient, installing and resident portions).
  • Installing, activation and uninstalling of these programs.
Free business joomla templates