Brigham Young University Homepage

IT

Information Technology

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:

  1. Program computer system components using assembly language and a high level language such as ‘C’.
  2. Have a solid understanding of the parts of a computer system and how they work together to create the computer.
  3. Understand how to apply appropriate computer architectures, from micro controllers to super computers, to real world problems.
  4. Have an understanding of how software APIs may be used by programmers.

Prerequisites by topic:

  1. High level language programming experience.
  2. Binary and Hex number systems and math.
  3. Digital Electronics.
  4. Beginning assembly language experience.
  5. Basic understanding of CPU organization and architecture.

Outcomes:

  1. Be able to program a computer system using assembly language.
  2. Know how the parts of a computer system interconnect.
  3. Be able to program peripherals of a computer system using assembly language and the ‘C’ language.
  4. Understand how peripherals are mapped into various computer systems.
  5. 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.
  6. Demonstrate how to decompose a programming problem so the logic is separate and not dependent on a particular physical device.
  7. Demonstrate knowledge of performance issues associated with computer system organization such as bus widths and speed, and memory speed vs CPU speed.
  8. Be able to install an interrupt vector and program an interrupt handler routine.
  9. 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:

  1. Borland Turbo Assembler (DOS Version) 30 stations
  2. Borland Turbo C++ (DOS Version) 30 stations
  3. Borland Turbo Debugger (DOS Version) 30 stations
  4. 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)

Brigham Young University, Provo, UT 84602 - (801)422-4636 - Copyright 2007, All Rights Reserved XHTML CSS 508