Computer Engineering Department

Term 021

 

COE 205

 

Assembly Language & Computer Architecture

 

Lab Project

Design of a test-bench program for PC

  

Introduction:

The primary objective of this project is to see how much knowledge in assembly language programming the student has gained during the whole term.

 

However, the main objectives intended after this project may be summarized as:

 

1-     Review of most of 8086 assembly language taken in COE 205.

2-     String Manipulation

3-     Use of TSR programs

4-     Use of Video functions

5-     BIOS access through software interrupts.

6-     Structured programming using procedures and Macros.

7-     Use of the Mouse

 

References:

1.      Textbook, lecture notes and lab manual.

2.      Randall Hyde, “The Art of Assembly Language Programming”,

http://webster.cs.ucr.edu/Page_asm/ArtofAssembly/ArtofAsm.html\

 

Project Work:

An important point is that the student is required to search for ways to find characteristics of the hardware components of the PC. This can be done through the web or the library. Any useful information will be put on the following link:

 

http://www.ccse.kfupm.edu.sa/~kamel/COE205/Project/Project.htm

 

In this project, you are required to write a program that identifies the main hardware components of your PC by reading the BIOS and the different peripheral devices attached to your PC. Lab experiments related to video and mouse should constitute the starting point for your project.

 

The program starts by displaying a menu that contains the following options:

 

1.      Identify Hardware components

2.      Processor

3.      Hard drive

4.      Memory

5.      Mouse

6.      Serial Port

7.      Parallel Port

8.      Exit.

Design and presentation of the menu are left for the programmer. Bear in mind that such menu should be interactive and easy to use. The use of a graphics menu and the mouse as a pointing and interfacing device is appreciable. The choices in the menu are processed as explained below:

 

Choice 1:

The program displays a list of all components attached to your PC.

 

Choice 2:

The program identifies the type of processor in your PC.

            Eg:             Processor:        PIII

Manufacturer: Intel

Speed:                500 MHz

 

Choice 3:

The program identifies the type of hard drive in your PC.

            Hard drive type:

            Manufacturer:

            Size:

 

Choice 4:

The program identifies the memory size of your PC.

 

Choice 5:

The program identifies the type of mouse attached to your PC.

            Mouse attached:            Y/N

            Mouse Type:                2 or 3 buttons

            Manufacturer:               If Possible

 

Choice 6:

The program gives you the number and hardware addresses of serial ports in your PC.

Number of Serial Ports:

Addresses:

 

Choice 7:

The program gives you the number and hardware addresses of parallel ports in your PC.

Number Parallel Port:

Addresses:

 

Choice 8:

The program simply exits to the main menu

 

 

 

Guidelines:

Make your program well structured, use procedures and MACROs that you should put in a separate file and include at the beginning of your program. Use comments as much as you think this will make your program understandable, and separate your procedures by such comments. Make your program interactive, in the sense that the user can use it easily.  The use of different colors for different options and different windows is appreciated.

At the end of your work submit a hard copy and a soft copy of your program, including both source and executable files on a floppy disc.

 

Hints:

To be able to write such a program start using a simple approach, and fix yourself very simple targets that you should achieve first. Then build upon the program you have written, and keep all the modified versions of your program by giving them names that should be meaningful, like pgm1ver1.asm or p11.asm for program 1 version 1 …. Submit only he last version that contains the finalized work, and any attached files like the MACRO file or the procedure file. 

 

Bonus:

Extra marks are given for a program that tests the memory access time. This time is estimated by repeatedly writing into a block of memory then reading it. The read/write time is related to the amount of time, the size of the block to be read/written number and the number of times the operation is repeated. To have an estimate of the time the programmer should use the internal PC timer.

Another bonus is given if the whole program is made as a TSR and activated by a hot key sequence. For any new device tested (scanner, USB ports …. ) extra marks are given.

 

Mark Distribution:

The project counts for 50% of the lab, i.e. 10% of the course, and is marked as follows:

 

 

Section

Mark

Program       /15

Clarity and Presentation

2.5

Use of Procedures

5

Use of Macros/Include File

5

Comments

2.5

Interactivity /20

Menu

5

Graphics

5

Use of the Mouse

5

Ease of Use

5

Working

Program /65

 

Identify Hardware Components

10

Processor

10

Hard drive

10

Memory

10

Mouse

9

Serial Ports

8

Parallel Ports

8

.5

Overall Mark

 

100