IT 251B
Catalog Data: (2:2:3) F Prerequisite: IT 251A, Peripheral Interconnect
and IO systems. Low-level software architecture incuding assembly language and C
language programming. Low-level security issues.
NEW COURSE. DESCRIPTION IS DRAFT ONLY. CONSULT CLASS COORDINATOR FOR DETAILS.
Textbook(s):
- Brey, Barry B. The Intel Microprocessors: Architecture, Programming and Interfacing,
sixth Ed, Prentice-Hall
Recommended Book(s):
Reference Book(s):
Class website: http://class.et.byu.edu/it241/
Also from old class http://class.et.byu.edu/eit241/
Class Coordinator: Stephen R. Renshaw
Goals: At the completion of this class the students should be able
to do the following:
- Program computer system components using assembly language and a high level language
such as ‘C’.
- Have a solid understanding of the parts of a computer system and how they work together
to create the computer.
- Understand how to apply appropriate computer architectures, from micro controllers
to super computers, to real world problems.
- Have an understanding of how software APIs may be used by programmers.
Prerequisites by topic:
- High level language programming experience.
- Binary and Hex number systems and math.
- Digital Electronics.
- Beginning assembly language experience.
- Basic understanding of CPU organization and architecture.
Outcomes:
- Be able to program a computer system using assembly language.
- Know how the parts of a computer system interconnect.
- Be able to program peripherals of a computer system using assembly language and
the ‘C’ language.
- Understand how peripherals are mapped into various computer systems.
- Be able to identify code that could have low level security problems such as buffer
overflows and understand how to counter these low level security problems.
- Demonstrate how to decompose a programming problem so the logic is separate and
not dependent on a particular physical device.
- Demonstrate knowledge of performance issues associated with computer system organization
such as bus widths and speed, and memory speed vs CPU speed.
- Be able to install an interrupt vector and program an interrupt handler routine.
- Demonstrate knowledge of operating systems API from low level code.
Laboratory projects: The laboratory projects give the students
experiences in assembly language mixed with a high level language programming for
CPU and system level components within a computer system. The students get experiences
with exploring a computer system and operating system API architecture through low
level programming methods.
Laboratory assignments:
- Introduction lab, Using TASM, C++, Turbo Debugger
- From Design to code, Structured code design
- Mov ing It. Using the assembly mov opcode
- Keyboard IO . Program Keyboard IO in assembly language.
- Timer Ticks – Polling, Using polling as an IO method
- Serial Communications in assembly
- Player Piano, using the keyboard interrupt, 8254 timer, speaker (2 week lab)
- Mouse control using Mixed ‘C’ and assembly
- Multitasking
- OS APIs,
Laboratory Equipment and Student Kits:
- Borland Turbo Assembler (DOS Version) 30 stations
- Borland Turbo C++ (DOS Version) 30 stations
- Borland Turbo Debugger (DOS Version) 30 stations
- Microsoft Visual Suite (Windows Version) 30 stations
Computer Equipment used: The majority of the labs will be done
on Intel based computers.(808X type), DOS, Windows and Linux will be used for various
OS API experiences.
Written and oral communication requirements:
- Three periodical article readings in technology are required with a one-page write
up on each.
- Lab reports are required for each lab session, which are complete lab write-ups.
- Class portfolio turned in at completion of semester includes all work for the class.
Math Analysis: Binary and Hex number systems, Boolean math
Lifelong Learning Exercises: As mentioned previously, this class
requires that students engage in outside reading (in technical periodicals) and
submit reports based on this reading.
Library or other Research Projects: None.
Prepared By: Stephen R. Renshaw
Date Revised: draft (May 2005)