Intermediate to Advanced Assembly Language Programming — A 5 day course

contact usEnquire about this course


This course teaches techniques needed to develop substantial assembly language programs (as found, for example, in operating system kernel code, metering and measuring equipment, smart sensor systems, motor and engine controllers, byte code interpreters, device drivers and interrupt handlers).

You'll learn how to use linkers, employ macro programming techniques, realise state machine and statechart designs in assembler, implement circular buffers, and create data structures in assembler.

In addition you'll learn how to program various on-chip peripherals such as USARTS and A/D converters.


Students successfully completing this course will have a sound understanding of advanced assembly language programming techniques such as Macros and use of Linkers.

You'll gain a thorough understanding of working with standard on-chip peripherals as well as interfacing off-chip peripherals (including SPI and I2C devices).

You'll learn standard assembly language programming techniques for realising state machines and statecharts and for implementing basic multi-tasking strategies.

Key Skills:


Overview of structured programming

Macros and macro pre-processing

Libraries, modules and linkers

Data structures and arrays

Serial communications protocols and peripherals

State machines and statecharts


Timers and their uses

Approaches to multi-tasking, and their implementation in assembler

Useful peripherals

Controlling high power devices

Assembly language realisation of Programmable Logic Controller (PLC) functionality


Attendees should have a good basic understanding of typical small microcontroller architectures and basic assembly language programming skills.

The course 'Introduction to Assembly Language Programming' provides suitable background.