Lecture Schedule

Subject to time table

Semester

 

Credit Hours

Three

Pre-requisite

Electronics

Digital Logic & Computer Architecture

Instructors

Sayyed Auwn Muhammad

Contact

auwn.muhammad@gmail.com

Office

Faculty

Office Hours

TBA (to be allocated)

Course Objectives

This course will consider the structure and function of computers at the Low Level i.e. Register Level and how data & Logic is manipulated at this level. Main topics of the course are: organization of computer hardware, the functions of assembler, linker, and loader, basic assembly language instruction set, memory management, addressing modes, stack and procedures, low-level I/O interfacing. Students will learn to design, implement, and debug programs in assembly language and also perform the interfacing for the real time application connection with the microprocessor.

 

Expected Outcomes

Upon completion of this course, students will:

Understand Low Level details & Assembly language concepts.

Know how to use interfacing (Serial, Parallel and USB) for solving real time problems.

Textbooks

 

REQUIRED:

· The Intel Microprocessors 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, and Pentium Pro Processor Architecture, Programming, and Inter- facing by Brey. Barry B., Barry B. Brey

Microprocessors and Interfacing Programming and Hardware by Douglas V. Hall

 

OPTIONAL:

· Assembly Language Programming and Organization of IBM PC by Ytha Yu and Charles Marut, McGraw- Hill, 1992

· Introduction to 80x86 Assembly Language and Computer Architecture by Richard C. Detmer

· The 8051 Microcontroller Architecture, Programming and Applications by Kenneth J Ayala

Pentium® Processor Family Developer’s Manual Volume 3: Architecture and Programming Manual

 

Grading Policy

Theory: (100)

Quizzes & Assignments:                                    25

Mid term:                                                        25

Final:                                                50

Lab Work: (50)

Project                                                                30

Labs                                                                    20

Lectures

Readings

Part I Assembly Language

2*

Introduction to Assembly language:

Basic computer architecture (Bus, registers etc) Different Types of Registers and Instruction Groups & Types. Flag register and Assembly Language 1st program, Assembler, Linker etc.

3*

Addressing Modes & Memory Models:

Segmented memory model, Tiny, Small, Large, Physical address calculation, Data declaration, Direct addressing Mode. Register Indirect addressing Other addressing Modes, Segment association and address wraparound and Summary of addressing modes.

3*

Jump & Arithmetic Instructions:

Signed Vs Unsigned data, Bit manipulation and Shift and Rotate instructions Multiplication in Assembly Language, Extended operations: Extended Operations, Bitwise logical operations, Comparisons and conditions, conditional Jumps. Unconditional jumps, Relative addressing, Types of Jumps and sorting example

3*

Stack and Introduction to Procedures:

Subroutines, Call and RET instructions, Macros, Writing 1st subroutine, Introduction to Stacks, Saving and restoring registers Parameter passing through stacks, Stack clearing by Callee or Caller, Local Variables Vs Global Variables

3*

Text Display and keyboard Programming:

Introduction to Display memory, Display memory formation and display examples, Number Printing in Assembly Language, Div instruction, Screen Printing at desired Location Introduction to String, Array Instructions, String Instructions with examples

2*

BIOS and DOS Interrupts:

Introduction to Interrupts, Reserved Interrupts, Hooking an interrupt, BIOS and DOS interrupts with examples, Hardware Interrupts, I/O ports and Keyboard controller. Keyboard controller, Interrupt chaining, Unhooking an interrupt, Stay and Resident Programs

Part II Interfacing (Mid Term)

1

Introduction to PPI:

Architecture, Addressing, functions, hardware concepts

3*

8255 PPI (Programmable Peripheral Interface) (Parallel Port Interface):

Addressing the 8255,Interfacing the 8255,Address and Data Buses, 8255 Logic Circuit

4*

Digital Interfacing: (Chapter 9 of Douglas V. Hall)

Programmable Parallel Ports and Handshake Input/Output, Interfacing a Microprocessor to Keyboards, Interfacing to Alphanumeric Displays, 8279 Circuit Connections and Operation Overview Interfacing to 18-segment and Dot-matrix Led Displays Interfacing a Microcomputer to Nonmultiplexed LCD Displays, Interfacing Microcomputer Ports to High-power Devices

3*

Interfacing using high level languages:

Introduction to Parallel ports ,Serial Ports interfacing with High Level Languages (Calling conventions etc) Introduction to Serial Port Programming (USB) , Device Connections,

2*

Device Drivers:

Device Driver Context, Device concepts in Linux and Windows, Device Drivers Development, Devices Interactions, Signaling and messaging and interfacing, Buffering, Double Buffering, DMA Concepts

2*

Programmable ICs  and Microcontroller Programming and concepts:

PIC, The 8051 microcontroller architecture, programming and interfacing concepts