Computer Engineering Department
Term 021
COE 205
Assembly Language & Computer Architecture
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:
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 |