Site Sections => About Us | Consultancy | Training | Software | Publications | Open Source | Support | Open Standards | FAQ | Jobs
Site Style Info

Intermediate to Advanced Assembly Language Programming — A 5-day Course

Synopsis

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.

Course Objectives

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:

  • Macro programming techniques
  • Use of linkers
  • Realising state machine and statechart designs in assembler
  • Implementing circular buffers, realising data structures in assembler
  • Assembly language programming of on-chip peripherals such as USARTs, I2C and SPI, A/D, Timers, and external interrupts
  • Programming and uses of PWM (Pulse Width Modulation) and Capture Compare
  • Real Time clocks, Watch Dog Timers and power conservation programming techniques

Prerequisites

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.

Scheduled and On-site Courses

Courses in this subject are scheduled on an 'ad-hoc' basis. We can arrange a course at our Carshalton centre or on customer site for any client wishing to send two or more delegates on the same course.

For courses at the Carshalton Centre the fee will be:

  • £3500 + VAT for the first two delegates
  • £1650 + VAT for the third delegate
  • £1200 + VAT for the fourth delegate
  • £400 + VAT for each additional delegate to a maximum of eight

On-site course fees are as above + expenses recharged at cost.

For a 1:1 course in Carshalton the fee is £2750 + VAT. For a 1:1 on-site course the fee is £2750 + VAT + expenses recharged at cost.

If there are any dates showing below this line, a course has been scheduled and places for individuals are available at £1750. Otherwise, no courses are currently scheduled and the above fees apply.


Contents

Overview of structured programming

  • Flow diagrams (including data flow and control flow)
  • State machine and state chart diagrams
  • Code specification using pseudo code (structured Natural Language)
  • Simple sequence diagrams

Macros and macro pre-processing

  • Assembler directives
  • Inline code vs. function calls
  • Simple macros
  • Parameterised macros
  • Using macros to realise basic data structures
  • Using macros to capture complex logic
  • Using macros to realise parameter passing in function calls

Libraries, modules and linkers

  • How linkers work
  • Benefits of modular programming
  • Benefits of using libraries
  • Understanding and using maths libraries

Data structures and arrays

  • Importance of data structures for structured programming
  • Implementing data structures in assembler
  • Implementing and manipulating arrays in assembler

Serial communications protocols and peripherals

  • RS232
  • I2C and SPI
  • RS485
  • Bit banging techniques for realising serial communications protocols
  • Using on chip peripherals for realising serial communications protocols

State machines and statecharts

  • Understanding Finite State Machines (FSMs)
  • Graphical representation of FSMs using UML notation
  • Realisation of FSMs in assembler
  • Limitations of FSMs
  • Hierarchical FSMs
  • Statecharts
  • (Advanced topic) Overview of communicating FSMs, sequence diagrams and SDL

Interrupt

  • asic concepts
  • Prioritisation of interrupts
  • Integrating interrupt handling and application code
  • Layered interrupt handling
  • Circular buffers and interrupt handlers

Timers and their uses

  • Fundamental concepts
  • Timer interrupts and their uses
  • Timers and pulse-width modulation
  • Timers and data sampling and acquisition
  • Timers and task scheduling

Approaches to multi-tasking, and their implementation in assembler

  • Software only approaches
  • Interrupt driven approaches
  • Hybrid approaches

Useful peripherals

  • Keypads and button arrays
  • LCD displays and their controllers
  • Segmented LED displays
  • 2D LED arrays

Controlling high power devices

  • Interfacing
  • Relays
  • Programmable switches

Assembly language realisation of Programmable Logic Controller (PLC) functionality

  • Fundamentals of PLC's
  • Understanding Ladder Diagrams
  • Realising Ladder Diagram logic in assembler

Assembly training UK enquiries

UK Training enquiries and feedback form.

Assembly training UK prices

For publicly scheduled training (individual places), see our UK training schedule.

In-house training for company groups is charged at a daily rate per group — see our In-House UK Training Guidelines.

Publicly Scheduled Training Locations

We currently run public training courses in the following locations:

  • London, UK
  • Leeds, West Yorkshire, UK
  • Birmingham, West Midlands, UK
  • Carshalton, Surrey, UK
  • Chester, North West, UK
  • Coventry, West Midlands, UK
  • Edinburgh, Scotland, UK
  • Glasgow, Scotland, UK
  • Harwell, Oxfordshire, UK
  • Manchester, North West, UK
  • Milton Keynes, Buckinghamshire, UK
  • Newark, Nottinghamshire, UK
  • Reading, Berkshire, UK
  • Slough, Berkshire, UK
  • Stevenage, Hertfordshire, UK
  • Wakefield, West Yorkshire, UK
  • Wokingham, Berkshire, UK

Most UK public training courses are available on a monthly basis.

Please see the individual course outlines or our public training schedule for details.

In-house (on-site) training locations

We deliver in-house courses at client premises and/or training facilities in any part of the world which is practically and commercially accessible.

Our In-house training guidelines outline our basic requirements and our UK pricing structure. To estimate costs for training in other countries, simply convert to your local currency and then make a rough calculation of our tutor's costs for travelling to and staying at your location.


West Yorkshire Office

GBdirect Ltd
Training Division
Bradford Design Exchange
34 Peckover Street
BRADFORD
BD1 5BD
West Yorkshire
United Kingdom

training@gbdirect.co.uk

Training: 0800 651 0338
General: +44 (0)870 200 7273
Finance: +44 (0)1353 615 174

Please call between 0900 and 1700 (UK time) on Monday to Friday


South East Regional Office

GBdirect Ltd
Training Division
18 Lynn Rd
ELY
CB6 1DA
Cambridgeshire
United Kingdom

training@gbdirect.co.uk

Training: 0800 651 0338
General: +44 (0)870 200 7273
Finance: +44 (0)1353 615 174

Please call between 0900 and 1700 (UK time) on Monday to Friday


Please note:
Non-training enquiries should be directed, initially, to our UK national office in Bradford (West Yorkshire), even if the enquiry concerns services delivered in London or South/East England. Clients in London and the South East will typically be handled by staff working in the London or Cambridge areas.