Assembly Programming for Computer Engineers

EECC 250 Winter 1999
MY HOME PAGE RIT Computer Engineering

Visitors Since 29-Nov-1999


  Assignment #1, Due Monday, January 3.

  Assignment #2, Due Friday, February 11.


For the following lecture notes you can download or view a lecture as an Acrobat PDF file, or as a Microsoft Powerpoint97 file:

11-29-99 Review of number systems, Conversion, Computer Arithmetic, Two's Complement Representation, Floating-point Numbers, Binary Logic Operations.
11-29-99 Introduction to Computer Organization, Motorola 68000 Architecture, Assembly Program Structure, Basic Assembler Directives, Basic 68000 Instructions
12-1-99 Sample 68000 Addressing Modes, A subset of 68000 Instructions: Data Movement, Conditional Branches, Examples.
12-2-99 68000 Arithmetic Instructions, ADD, ADDI, ADDX, DIVS, DIVU, MULS, MULU, EXT, Arithmetic Shifts: ASL, ASR, Effect of Arithmetic Operations On CCR. Logic Instructions, Logical Shifts, Bit Manipulation Instructions.
12-8-99 Introduction to Input/Output, Memory Mapped I/O, The Motorola 68230 Parallel Interface/Timer (PI/T)
12-10-99 Stacks, Stack Operations, Basic 68000 Subroutine Handling Instructions: BSR, JSR, RTS, Subroutine Parameter Passing
12-15-99 Stack Related Instructions: PEA, MOVEM, A subroutine Parameter Passing Example, By value: using data registers, stack; By reference: using address registers, stack.
12-17-99 Recursive/Re-entrant subroutines, Utilizing The Stack for Local Subroutine Storage: Stack Frames SF and pointers FP, LINK, UNLK
1-3-2K Recursive Subroutine Calls Example
1-5-2K Handshaking-Based I/O using the 68230 PI/T
1-6-2K 68230 Timer
1-7-2K Interrupts & Exceptions, Interrupt-Driven I/O, Vectored Interrupts, PIT I/O and Timer Interrupt Examples
1-14-2K Serial Communication, Motorola 68681 DUART, Polled and Interrupt-driven Serial I/O Examples Using The 68681
1-17-2K ASCII/Binary Conversion Examples
1-20-2K 68000 Binary Coded Decimal (BCD) And Multiple-Precision Arithmetic Support
1-21-2K The Software Design Process: Top-Down Modular Design, Testability, Recoverability, Structured Programming. Looping and Decision Mechanisms. Program Design Language (PDL).
1-24-2K Estimation of 68000 Assembly Programs Execution Time.
1-27-2K Floating Point Arithmetic Using The IEEE 754 Standard Revisited
2-2-2K Assembly Language Macros
2-3-2K Introduction to Intel 80x86 Assembly Programming
2-9-2K Microcontroller Basics; An Example: The Motorola 68HC12
2-14-2K Reduced Instruction Set Computer (RISC); A RISC Example: MIPS
2-16-2K Basic concepts of CPU organization; An Example: Simplified MIPS Single Cycle Datapath & Control Unit Design
2-17-2K Final Exam Review
Get Adobe Acrobat


Monday, Thursday, Friday 2:00 - 2:50 PM Room: 9/1030
Wednesday 2:00 - 2:50 PM Room: 17/1555


Dr. Muhammad Shaaban
Office: 17-2507 X2373

Office Hours:
My Winter 99 schedule


To be announced.

To be announced.


Winter 99:
Fall 98:


This course provides an introduction to assembly language programming utilizing The Motorola 68000 family of microprocessors. The course covers: assembler program structure, directives, machine instructions, addressing modes, assembly simulation, debugging and execution, subroutines, I/O programming, exception processing, and interrupt handling. Assembly language program design techniques necessary to write, efficient, maintainable code modules with proper documentation are emphasized. An introduction to basic computer organization concepts is also provided.


Experience with a structured programming language (0603-232 or equivalent).


  68000 Family Assembly Language, Alan Clements, PWS Publishing Company, Boston 1994.

  Motorola M68000 Family Programmer's Reference Manual (In PDF, 649 pages), Motorola Inc, 1992.

  Motorola 68000 Instruction Set Quick Reference

   Teesside Motorola 68000 Assembler and Emulator:
        Install Program (300k),   Instructions (PDF),   Documentation:text file, pdf file

  Lab 1 Handout (PDF),        Lab 1 Demo Program.

  Lab 2 Handout (PDF)

  Lab 3 Handout (PDF)

  IO.x68, I/O Demo Program.

  Lab 4 Handout (PDF)

  Lab 5 Handout (PDF)

  Lab 6 Handout (PDF)

  Lab 7 (Project) Handout (PDF)

  IEEE 754:  References
                       Online JavaScript Converters:
                       From Decimal Floating-Point To 32-bit and 64-bit IEEE-754
                       From IEEE-754 32-bit Hex to Decimal Floating-Point
                       From IEEE-754 64-bit Hex to Decimal Floating-Point


Homework assignments: 20%
Midterm Exam: 25%
Laboratory Work: 30%
Final Exam: 25%


Attending all lecture sessions is expected.


1- A review of number systems, computer arithmetic, floating-point numbers, binary logic operations.
2- An assembly programmer's view/model of the Motorola 68000.
3- Assembler syntax, storage allocation, data definition and assembler directives.
4- Introduction to the Teesside Motorola 68000 cross-assembler/Simulator.
5- M68000 addressing modes.
6- M68000 instructions and syntax: Data movement, arithmetic, and logical instructions. Data types supported.
7- Conditional and unconditional branch instructions.
8- Stacks, stack Operations, 68000 subroutine Handling, stack frames and local subroutine storage.
9- Condition codes register, priority interrupt levels, and other aspects of the processor Status Register.
10- Assembler macros, subroutines and parameter passing.
11- Peripheral devices for parallel and serial interfaces for input/output and data transfer.
12- Hardware interrupts and timer functions.
13- Basic concepts of computer organization.

  This page is bytes long and was last modified on:   .

Made with at least 30% post-consumer recycled bits