Detailed Description and Outline

To understand the principles and techniques of machine-level programming. To learn to use computers for real-time data acquisition and control of input-output devices. To design and implement complex programs.

Topics:

Use of lab equipment and software.

Assembly language programming: addressing; loops; arithmetic, subroutines, stack, recursion; macros; program design and testing; interfacing to high level language.

Review of computer organization, number representations.

Input-output and multitasking; interrupt-driven I/O: display control, line graphics; asynchronous serial data communication; priority, scheduling semaphore.

Data structures: array, queue, linked list, binary tree, hash table.

Ethical issues in computing: ownership of software, privacy of data, professional responsibility, social impacts.

Special topics: selections from logical and string instructions, loop invariant, floating point processor, linking/loading.

Credit is not given for both ECE 390 and CS 232.