COSC 2410
Course Information:
Course Name:
COSC 2410 - Computer Organization and Programming
Prerequisites:
COSC 1410 - Introduction to Computer Science
Professor:
Dr. Dragan Mirkovic
Professor email:
mirkovic@cs.uh.edu
Professor office:
TBD 221 PGH
Lectures:
1-2:30 T/TH 232 PGH
TA:
Colin Puri
TA email:
automata@cs.uh.edu
TA office:
4 - 5 T/TH 566 PGH
Labs:
11:30-1, 2:30-4 T/TH 563 PGH
Textbooks:
Required:
Assembly Language Programming for the IBM PC Family
Recommended:
Assembly Language for Intel-Based Computers
Course Web Pages:
Dr. Dragan Mirkovic's course web page:
Course page
TA's lab web page:
Lab page
Links:
Course FAQ
Intel
MSDN
Assembly Tutorial
Optimized for Microsoft IE in 1024x768
Home Files Syllabus Calendar
5/7/2004
    Reminder that your final project is due by 8:00 p.m. on 5/13/2004 at my office. I will not accept your final project unless you have also taken your program 4 from me :)
    I have updated the FAQ section to answer those questions some of you are having concerning the FPU in the programming section.
4/11/2004
    I have extended the project until 4/13/2004

    Don't forget to program modularly! As I have always said, if you don't do this then I will take points off and I will not help you debug very much if you have problems. Use common sense and don't make spaghetti code.

4/8/2004
    If you are using PWB to compile the p4-xxxx.asm file, you may encounter problems from the line "include constants.inc" you can change this to "include consts.inc" and change the name of your include file to "consts.inc."

    If you are not using PWB to compile your program, i.e. you are using "ml" at the command prompt, then you should have no problems.

2/25/2004
    Program 3 has been extended until Tuesday, 2/30/2004. Program 4 will still be introduced on that day.
2/19/2004
    Program 2 is assigned today

    On the programming assignment 2, you are not allowed to use any pre-made functions except GetDec and PutDec. In order for you to do this, you will need to use the interrupts. You can find examples in the sample code contained in the files section as well as in the help files for PWB and MASM under the assembly section for their exact use and setup (Hint: use function 0Ah, interrupt 21h).

2/8/2004
    Some questions were asked about Program 1, so I will repeat it here with he answers

    How do I link "util.lib" to my project?
    There are several ways but first the file "util.lib" should be in the project build directory where you are creating your executable. In your source code you can either specify to include the library file by typing "includelib util.lib" in the ".nolist .... .list" section before you compile or you can specify the util.lib in your make file where you add your source files in the compilation list.

    Do we have to be concerned with error checking (i.e. the user inputs 'A' instead of -1)?
    No. But expect to received signed integers. Therefore, perform the appropriate assembly commands to ensure signed arithmetic is preserved (of course, GetDec and PutDec work on 16-bit signed numbers as is explained on the CD of the book...).

    What variable sizes are we to be concerned with?
    16 bit variables are to be used. These variables can be signed (as can be surmised from the use of GetDec, PutDec, and the sample input from the second part)

    Can we use commands we haven't been taught about in class yet?
    Of course!

    Do we have to worry about the remainder after division?
    No

2/5/2004
    Program 0 is due today. This is the only day that I will officially collect it.

    Program 1 is assigned today and I will introduce it (it can also be found in the files section of this web pag). I have posted some programming samples and exercises to help you program in assembly, so look under the files section of this webpage.
1/20/2004
    This web page contains all the useful information you need to suceed in the COSC 2410 lab. The page contains links to the Dr. Dragan Mirkovic's web page as well as his email and office information. All of this information can be found to the left.

    To start, we will be using Microsofts Macro Assembler or MASM. Your required book should contain a copy for you to install. To edit any files and compile them you may use the Programmers Workbench application that is included. Although, this is not required. You can use any program you see fit so long as when you turn your programs in that they can be compiled and run without a problem.

    You will find all important annoucements made on this main page.

    Getting started

      The following are the textbooks, sample code, and information on where to go if you have questions. I have also provided quick links to these books on the left of the web page so that you may access that at any time

      If you need a copy of the class syllabus, you find it located in the files section.

      Textbooks

      Required and Recommended Textbooks
      REQUIRED

      Assembly Language: Programming for the IBM PC Family
      3rd Edition
      William B. Jones
      Scott/Jones Publishing
      http://www.scottjonespub.com/assem.html


      RECOMMENDED

      Assembly Language for Intel-Based Computers
      4th edition
      Kip R. Irvine
      Prentice-Hall Inc. (Pearson Education)
      http://www.nuvisionmiami.com/books/asm/index.html

      An Assembly Program

      I have created the first assignment which is due the next time lab meets. The assignment will be handed out in lab but you can also download. Enter this program, follow the instructions, compile, link, and then execute it. Consult the FAQ if you have and problems or questions.


      Any additional files that you may need throughout the length of this course will be found under the files section (a link is provided at the top of the page)

      Questions

      If you have any questions then please consult the frequently asked questions (FAQ) to look for a solution. Many common questions and answers to those questions can be found there. If the FAQ does not contain the solution that you are looking for then please ask, but look for the answer in the FAQ first.