Skip to main content

Trinity College Dublin, The University of Dublin

Menu Search

Module Descriptor School of Computer Science and Statistics

Module CodeCS3D1
Module NameMicroprocessor Systems I
Module Short TitleN/a
Semester TaughtSemester 1
Contact Hours

Lectures/week: 3 Total: 33
Tutorials/week: 1 Total: 11
Practicals/week: 2 Total: 14

Module PersonnelJohn Waldron
Learning Outcomes

When students have successfully completed this module they should be able to:

  • Describe the basic characteristics, structure and operation of a microprocessor system;
  • Translate between simple high-level programming language constructs and their assembly language equivalents;
  • Design, construct, document and test small-scale assembly language programs to solve simple problems;
  • Reason about the cost of executing instructions and the efficiency of simple programs;
  • Make use of appropriate documentation and reference material.
Learning Aims

Microprocessor Systems 1 is a one-semester module taken by third year Electronic, Electronic/Computer and Computer Engineering students. This module provides students with an introduction to the basic structure, properties and operation of microprocessor systems. By developing and executing simple assembly language programs, the module aims to give students an understanding of how programs execute on a microprocessor system. The module also encourages students to consider the relationship between high level programming language constructs and their execution as sequences of instructions. Students will also be given opportunities to develop their problem solving, programming and written communication skills by designing solutions to programming problems, implementing those solutions, first in the form of high level programming constructs and then as assembly language programs, which must be documented and tested.

The teaching strategy is a mixture of lectures, problem-solving tutorials and hands-on practical laboratory sessions. The format of lectures is conventional, however, a great deal of informal interaction is normal, and students can expect to participate in question-and-answer and problem solving sessions. For the first four weeks of the module, students are taught the general principles of low-level architecture and programming. Tutorials held during this time review basic skills such as binary and hexadecimal notation and algorithm design. Students are challenged to build programs based on a partial knowledge of the computer’s instruction set. Practical sessions, starting around the fourth week, require the students to design, write, evaluate and debug their programs on special-purpose development systems. More advanced topics introduced during lectures become the subject of practical sessions through the rest of the semester.

Module Content

Specific topics addressed in this module include:

  • Number systems
  • Memory and data representation
  • Binary arithmetic and logical operations
  • Floating-point representations and arithmetic
  • Basic computer architecture
  • Assembly language and machine code
  • Flow control
  • Memory load/store operations and addressing modes
Recommended Reading List

William Hohl, ARM Assembly Language: Fundamentals and Techniques, CRC Press, 2009.

Additional recommended texts:

Andrew Sloss, Dominic Symes and Chris Wright, ARM System Developer's Guide: Designing and Optimizing System Software, Morgan Kaufmann, 2004. nd

Steve Furber, ARM System-on-Chip Architecture, 2 edition, AddisonWesley Professional, 2000. Peter Knaggs, Stephen Welsh,

ARM: Assembly Language Programming, Bournemouth University, 2004.

Module Prerequisites


Assessment Details

Assessment of this module is by formal written examination and by assessment of the practical laboratory sessions. Practical sessions attract a mark of up to 20% of the end-of-year mark, and the examination makes up the remaining 80% or more.
Supplemental assessment is based on 100% examination only.

Module Website
Academic Year of Data2016/17