Some Assembly Required: Assembly Language Programming with the AVR Microcontroller, 1st Edition (Hardback) book cover

Some Assembly Required

Assembly Language Programming with the AVR Microcontroller, 1st Edition

By Timothy S Margush

CRC Press

643 pages | 128 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781439820643
pub: 2011-08-05
SAVE ~$23.00
$115.00
$92.00
x
eBook (VitalSource) : 9780429086175
pub: 2016-04-19
from $57.50


FREE Standard Shipping!

Description

A family of internationally popular microcontrollers, the Atmel AVR microcontroller series is a low-cost hardware development platform suitable for an educational environment. Until now, no text focused on the assembly language programming of these microcontrollers. Through detailed coverage of assembly language programming principles and techniques, Some Assembly Required: Assembly Language Programming with the AVR Microcontroller teaches the basic system capabilities of 8-bit AVR microcontrollers.

The text illustrates fundamental computer architecture and programming structures using AVR assembly language. It employs the core AVR 8-bit RISC microcontroller architecture and a limited collection of external devices, such as push buttons, LEDs, and serial communications, to describe control structures, memory use and allocation, stacks, and I/O. Each chapter contains numerous examples and exercises, including programming problems.

By studying assembly languages, computer scientists gain an understanding of the functionality of basic processors and how their capabilities support high level languages and applications. Exploring this connection between hardware and software, this book provides a foundation for understanding compilers, linkers, loaders, and operating systems in addition to the processors themselves.

Table of Contents

Introduction

Computer Systems

Basic Processor Architecture

Components of a Computer System

Classification of Processors

Numeration Systems

Boolean Data

Exercises

The Atmel AVR Microcontroller Family

The AVR Core

Machine Language for the AVR Microcontroller

AVR Studio

AVR Development Platforms

Introduction to AVR Assembly Language

Sample AVR Assembly Language Program

Exercises

Programming Exercises

Alternate Programs for the XPLAIN Demonstration Kit

Assembly Language

Directives

Expressions

Data Definition Directives

Instructions

The Toggler Program: Sample I/O

Exercises

Programming Exercises

Alternate Programs for the XPLAIN Demonstration Kit

Integer Data Representation

Unsigned Integer Data

Character Data

Signed Integer Data

Binary Coded Decimal

Data Values in Programs

Assignment Statements

Branch Instructions

Exercises

Programming Exercises

AVR Core: Startup, Reset, and Memories

AVR Reset Signal

Basic System Organization

Program Memory

Data Space

EEPROM

Exercises

Programming Exercises

Alternate Programs for the XPLAIN Demonstration Kit

The Stack and Function Calls

Stack

Functions

Arguments, Parameters, and Return Values

Local Storage

Auxiliary Data Stack (Software Stack)

Call By Reference Example

Exercises

Programming Exercises

Serial Communications Using the Universal Synchronous and Asynchronous Serial Receiver and Transmitter

RS-232

Serial Communication Basics

AVR USART Configuration

AVR USART Transmit and Receive

Serial Transmission Errors

Polled I/O

Seri al Communications Example

Exercises

Programming Exercises

Alternate Programs for the XPLAIN Demonstration Kit

Logical Operations

Bitwise Logical Operations

Uses of Logical Instructions

Shift and Rotate

Special Bitwise Operations

AV R Timer/Counter

Timer/Counter Example: LED Blinker

Exercises

Programming Exercises

Alternate Programs for the XPLAIN Demonstration Kit

Control Structures

Altering the Flow of Control

Jump and Conditional Branch Instructions

Selection

Looping

Pseudocode Development: A Checksum Program

Exercises

Programming Exercises

Alternate Programs for the XPLAIN Demonstration Kit

Interrupts

Interrupt Processing

General External Interrupts

Interrupt -Controlled Up/Down Counter

Timer Counter Interrupts

Interrupt-Based Switch Bounce Elimination

USART Interrupts

Exercises

Programming Exercises

Alternate Programs for the XPLAIN Demonstration Kit

Arithmetic Operations

Addition and Subtraction

AVR Addition and Subtraction

BCD Addition and Subtraction

Binary/BCD Conversion

Multiplication and Division

Numeric I/O and Type Conversions

Sieve of Eratosthenes

Exercises

Programming Exercises

Alternate Programs for the XPLAIN Demonstration Kit

Arrays

Declaring and Using Arrays

Multidimensional Arrays

Strings

Storage Allocation

Dynamic Memory Allocation

Structures

A Better Heap

Exercises

Programming Exercises

Real Numbers

IEEE Floating Point Representation

Addition and Subtraction of IEEE Floating Point Numbers

Multiplication and Division of Floating Point Numbers

Fixed Point Arithmetic

Summary

Exercises

Programming Exercises

Programming the AVR in C

Object Files and Linkers

Anatomy of a C Program

Fundamentals of C Programming

Assembly Language and C

Exercises

Programming Exercises

Appendix: Getting Started with the XPLAIN Evaluation Kit

Index

About the Author

Timothy S. Margush, Ph.D., was an associate professor of computer science at the University of Akron. For over 30 years, he taught courses in mathematics and computer science, including many on assembly language programming using a variety of hardware platforms.

Subject Categories

BISAC Subject Codes/Headings:
COM011000
COMPUTERS / Systems Architecture / General
COM012040
COMPUTERS / Programming / Games
COM051010
COMPUTERS / Programming Languages / General
COM059000
COMPUTERS / Computer Engineering