After completing the course the student will:
·
Program
device driver invoked by interrupts.
·
Program
in Assembly language.
·
Understanding
high-level and Assembly language relations.
·
Implement
data-structures to exchange data between concurrent programs.
·
Understand
software-Hardware interface.
·
At
least one year of experience in high level language programming.
·
Knowledge
of digital design.
The course is composed of:
·
Lectures
in which the theory is given.
·
Workshops
in which the process of analyzing given designs and understanding their
semantics, is performed.
·
Practical
exercising.
This document describes: The subjects and the
exercises to be given course.
·
What
is a 80x86 computer based system ?
·
Memory
Organization.
·
I/O
organization: Memory and Isolated techniques.
·
Real
addressing mode. How it works? Advantages and disadvantages.
·
Protected
addressing mode. How it works?
·
Accessing
registers and memory using a debugger.
·
Exercises
from the text-book.
·
Direct
·
Based/Indexed.
·
Basic
instruction set: Arithmetical/Logical, move, and Jumps.
·
Calculating
physical addresses.
·
Special
register usage.
·
Programming
using C++ and embedded assembly lines.
·
Debugging
C++ and embedded assembly programs.
·
Exercises
from the text-book.
·
Loop
instructions.
·
String
instructions
Given two
examples, each of which is written in C and assembly languages using
Exercises
from the text book, (
·
Hardware/Software
interface:
·
Calling
a Procedures/Function.
·
Stack
instructions related for Procedures/Function.
·
Passing
parameters via the stack.
·
How
a real program runs: Procedure/Function calling, Stack usage.
·
Reading
the processor’s data-sheet.
Exercises
from the text book.
·
Timer.
·
Direct
Memory Access (DMA).
·
Parallel
Communication.
·
Serial
Communication: Synchronous/Asynchronous.
·
SW/HW
interface with the I/O peripherals.
·
Programming
the timer to produce tones.
·
Reading
data-sheets of the peripherals.
Test
programs using Loopback property in the Serial
communication.
Exercises
from the text book.
·
What
is an interrupt: Hardware/Software interface?
·
Programming
the interrupt controller.
·
Interrupt
handling:
Critical
section.
Semaphore.
Cyclic
Queue.
·
Programming
the PIC8259 and reading its status.
·
Programming
the Timer and counting the elapsed time.
·
DMA
operation and its relation to string instructions.
Talk
project.
|
Total |
Practical
Exercising |
Workshop |
Lecture |
Subject |
|
4 |
1 |
1 |
2 |
80x86
Architecture |
|
4 |
1 |
1 |
2 |
Addressing
modes |
|
7 |
1 |
2 |
4 |
Complex Instruction Set Computer |
|
4 |
1 |
1 |
2 |
Stack
instructions |
|
13 |
1 |
4 |
8 |
Peripheral
I/O |
|
16 |
4 |
4 |
8 |
Interrupt |
|
4 |
|
|
4 |
Defense of the
Final Project[1] |
|
52 |
9 |
13 |
30 |
Total
|
1. [IS95]
2. [Egg95] Lewis C. Eggebechet.
Interfacing to the IBM personal computer. ISBN 0-672-22722-3, 1995.