State University of New York at Binghamton
Watson School of Engineering and Applied Science

Department of Computer Science

CS-323: Microcomputer Systems I
Fall, 1997

Lecture: M,W,F 9:40-10:40 A.M., EB-Q3
Laboratory, W 2:20-4:20, EB-H1

Professor Richard R. Eckert

EB-N6, 777-4365, 777-4802


CS-323: Microcomputer Systems I. Credits 4. Microprocessor architecture and microcomputer system hardware. Advanced assembly language programming and use of advanced assembler functions. Microprocessor support chips: memory, programmable ports, DMA controllers, USARTs, CRT controllers and disk controllers. Comparison of contemporary microprocessor systems. Supervised laboratory work involves microprocessor programming and interfacing experiments.

PREREQUISITE: CS-220 or experience with assembly language programming; CS-210 or experience with logic design.


Barry Brey, The Intel Microprocessors: 8086/8088, 80186/188, 80286, 80386, 80486, Pentium, and Pentium Pro Processor: Architecture, Programming, and Interfacing, Fourth Edition, Prentice Hall, 1997.


John Uffenbeck, The 80x86 Family: Design, Programming, and Interfacing, Second Edition, Prentice Hall, 1998.


Parts kits, wire cutters, and logic design circuit drawing templates will be available from Unicorn Electronics, Valley Plaza Drive, Johnson City, NY.


Term Examinations (2)….........40%

Laboratory Exercises…...........40%
Final Examination..…...............20%



To understand microprocessor-based computational systems. Levels of understanding include: architectures of individual microprocessor chips; microcomputer system hardware; interfacing with memory, I/O devices and mass storage devices; software necessary to effectively use microprocessor-based systems. Laboratory exercises using IBM PCs and a single-board computer with an associated prototyping facility reinforce both hardware and software concepts discussed in class. The Intel 80x86/88 family of microprocessors is emphasized. Upon termination of the course, the student should be able to design, effectively use, and interface with a complete microprocessor-based computer system.


In general, students will work in groups of two or three (depending on the amount of working equipment available). Laboratory exercises should be performed during the scheduled lab period, during which the teaching assistant and/or professor will be present. Circuit breadboards may be checked out of the laboratory. Lab reports (one per group) will be due one week after the Wednesday upon which the assigned lab exercise has been performed (see schedule below). If turned in late, the grade will be reduced by 5% per day late. Under no circumstances will reports be accepted more than one week late. Lab reports should be brief and should include well-documented, error-free, assembled program listings; flow charts where appropriate; circuit diagrams of any hardware design used; answers to any questions appearing in the lab instruction sheets.


1. Review of Intel microprocessors: history, basic architectures, system architectures, programming model, data formats, instruction set, addressing modes, data movement (Ch. 1-7); Lab # 1: Assembly language program to perform direct character I/O and disk I/O on the IBM PC.

2. Macros, multi-module programming, linkage with high level language program modules, creating libraries (notes, references, Ch. 7); Lab # 1, continued.

3. Designing a microprocessor-based cpu module: 8086/88 internal organization, electrical signals, operating modes, bus cycles, timing, buffering, bus structure, support chips, wait and hold states (Ch. 8); Lab # 2: Use of the SDK-86 Trainer and Machine Language Programming.

4. Main memory system design: RAM/ROM/PROM/EPROM/EEPROM physical characteristics, timing, interfacing with the cpu module; address decoding; static vs. dynamic RAM (Ch. 9); Lab # 3: 8086 bus signals and timing.

5. Main memory system design, continued (Ch. 9); Lab # 4: 8086 Bus Signals and Timing, continued.

********** TERM EXAMINATION # 1 **********

6. Basic Input/output: synchronous vs. asynchronous, parallel vs. serial, simple port hardware, memory-mapped I/O, polling, handshaking (Ch. 10); Lab # 5: Microprocessor-Memory Interface.

7. Basic I/O, continued; the 8255 Programmable Peripheral Interface, the 8253/54 programmable Interval Timer (Ch. 10); Lab # 5, continued.

8., Interrupt-driven I/O; the 8259 Programmable Interrupt Controller (Ch. 10, 11); Lab # 6: Simple I/O Ports.

9. Asynchronous serial communications, software & hardware UARTs, the 8251 USART; A/D, D/A Converters (notes, references, Ch. 10); Lab # 6, continued.

10. Direct Memory Access, the 8237 DMA controller, shared bus operation (Ch. 12); Lab # 7: Using Programmable Ports: the 8255 PPI.

11. Keyboard and CRT display interfaces: hardware and software (notes, references, Ch. 10 - 12); Lab # 8: Serial Data Communications-a Software UART.

12. Secondary storage: floppy, hard disk, technology, interfacing with a disk controller; optical secondary storage media (notes, references, Ch. 12); Lab # 9: Digital to Analog Conversion and/or special project.

********** TERM EXAMINATION # 2 **********

13. An overview of the 80286, 80386, 80486, Pentium and Pentium Pro microprocessors: protected mode programming (Ch. 15-17); Lab # 9, continued.

14. 80x86/Pentium, protected mode programming, continued (Ch. 15-17); Lab # 9, continued; Lab # 10: Protected mode direct keyboard I/O program.

15. Bus Interfaces (ISA, EISA, MCA, VESA, PCI), Building a complete system: the IBM-PCs and compatibles; the 80x87 Numeric Coprocessing Unit (notes, references, Ch. 13, 14); Lab # 10, continued.


Abel, IBM PC Assembler Language & Programming, Third Edition, Prentice Hall, 1987, ISBN 0-13-24603-8.

Antonakos, The Pentium Microprocessor, Prentice Hall, 1997, ISBN 0-02-303614-1.

Brey, The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium and Pentium Pro Processor: Architecture, Programming, and Interfacing, Fourth Edition, Prentice Hall, 1997, ISBN 0-13-260670-4.

Brumm & Brumm, 80386: A Programming and Design Handbook, Tab Books, 1987, ISBN 0-8306-2937-8.

Clements, Principles of Computer Hardware, Second Edition, PWS-Kent, 1993, ISBN 0-534-93133-2.

Duncan, Advanced MS-DOS, Microsoft Press, 1986.

Eggebrecht, Interfacing to the IBM Personal Computer, Second Edition, SAMS, 1992, ISBN 0-672-22722-3.

Goody, The Intelligent Microcomputer, SRA, 1984.

Haskell, Introduction to Computer Engineering, Prentice Hall, 1993, ISBN 0-13-489436.

Hu & Barad, CEDES: Object-Oriented Hardware Design Using C++, Franklin, Beedle & Associates, 1997, ISBN 1-887902-15-5.

Intel Corp., iAPX 86/88 User's Manual: Hardware Reference, 1985.

Intel Corp., iAPX 86/88 User's Manual: Programmer's Reference, 1985.

Intel Corp., iAPX 286 Programmer's Reference Manual, 1985.

Intel Corp., iAPX 286 Hardware Reference Manual, 1983.

Intel Corp., 80386 Programmer's Reference Manual, 1986.

Intel Corp., 80386 Hardware Reference Manual, 1986.

Intel Corp., 80386 System Software Writer's Guide, 1987.

Intel Corp., 80387 Programmer's Reference Manual, 1987.

Leventhal, Introduction to Microprocessors: Software, Hardware, Programming, Prentice-Hall, 1978.

Liu & Gibson, Microcomputer Systems: the 8086/8088 Family Architecture, Programming, & Design, 2nd Ed., Prentice-Hall, 1986.

Malvino, Digital Computer Electronics: An introduction to Microcomputers, Second Edition, McGraw Hill, 1983, ISBN 0-07-039901-8.

Mazidi & Mazidi, The 80x86 IBM PC & Compatible Computers, Volumes I & II: Assembly Language, Design and Interfacing, Prentice Hall, 1995, ISBN 0-13-321399-4.

Morse & Albert, The 80286 Architecture, Wiley, 1986, ISBN 0-471-83185-9.

Morse, Isaacson, Albert, The 80386/387 Architecture, Wiley, 1987, ISBN 0-471-85352-6.

Nelson, Nagle, Carroll, Irwin, Digital Logic Circuit Analysis & Design, Prentice Hall, 1995, ISBN 0-13-463894-8.

Protopapas, Microcomputer Hardware Design, Prentice-Hall, 1988.

Rafiquzzaman, Microprocessors and Microcomputer Development Systems, Harper & Row, 1984.

Rafiquzzaman, Microprocessors and Microcomputer-Based System Design, Second Edition, CRC Press, 1995, ISBN 0-8493-4475-1.

Rigby & Dalby, Computer Interfacing, Prentice Hall, 1995, ISBN 0-13-288374-0

Triebel, The 80386DX Microprocessor: Hardware, Software, & Interfacing, Prentice Hall, 1992, ISBN 0-13-249566.

Triebel & Singh, The 8088 and 8086 Microprocessors: Programming, Interfacing, Software, Hardware, and Applications, Second Edition, Prentice Hall, 1997, ISBN 0-13-367897-0.

Tocci, Digital Systems, Prentice-Hall, 1984.

Uffenbeck, The 80x86 Family: Design, Programming, and Interfacing, Prentice Hall, 1998, ISBN 0-13-362955-4

Wakerly, Digital Design: Principles & Practices, Second Edition, Prentice Hall, 1994, ISBN 0-13-211459-3.

Williams, Digital Technology, SRA, 1986.

Zaks, From Chips to Systems, Sybex, 1981.

Zaks & Lesea, Microprocessor Interfacing Techniques, Sybex, 1979.

Fulcher, An Introduction to Microcomputer Systems: Architecture and Interfacing, Addison-Wesley, 1989.