Instructor: Chintan
Patel
Office: ITE 322
Office Hours: Mon.-Wed., 11.00
AM - 12.30 PM
Telephone: 410-455-3963
E-mail: cpatel2@cs.umbc.edu
(preferred)
Teaching Assistants: Jitin Tharian,
Pushkar Pulastya and Pei Huang
Office Hours:
Pei Huang : Mon. and
Wed. 10:00-11:30 AM ITE 371
Pushkar Pulastya: Tues. 1:00-4:00
PM ITE 371
Jitin Tharian: Thrs. 1:00-4:00 PM
ITE 371
E-mail: hp3@umbc.edu,
pushkar1@cs.umbc.edu
, jitin1@cs.umbc.edu
Meeting Time and location
Mon.-Wed. 3:30 - 4:45 PM ACIV 151
Lab Discussion (All Sections):
Fri. 11:00 AM - 1:00 PM BIOL 120
Lab Section 0101: Fri. 2:00
- 3:00 PM Section 0102: Fri. 3:00-4:00 PM, Section 0103:
Fri. 4:00-5:00 PM ITE 375
Announcements
Check this section regularly
for important class announments.
Midterm Exam will be in ACIV 151 (regular classroom) on Monday May 17th from 1:00 - 3:00 PM.
As discussed in class here is the link to the ABET student survey. Make sure you fill this survey out before end of next week.
CMPE 310 ABET Student Survey
04/23: Class is canceled on Monday (4/26) and Wednesday (4/28). We will have a discusssion section meeting to cover up these classes on Friday (4/30).
03/22: Check project 3 clarification below.
03/08: Midterm Exam will be on Wed. March 17th in class. You can expect
questions from Lectures 1 through 9, all the assembly lecture notes and
the first 2 projects.
02/17: Office hours for the TA's have been updated. Please check the new
times above.
02/04: There will be no discussion or lab on this Friday 02/06. Labs will
begin from next week.
Course Material
Lecture 1: Introduction
Lecture 2: 80x86 Architecture Basics
Lecture 3: OS Essentials
Lecture
4: 80x86 Microprocessor Register Architecture
Lecture
5: Protected Mode Memory Addressing
Lecture
6: Paging
Lecture
7: Advanced Topics
Lecture
8: 8086 Chip Set
Lecture
9: Memory I
End of Midterm
Exam material
Lecture
10: Memory II
Lecture
11: Memory III
Lecture
12: Basic IO I
Lecture
13: Basic IO II
Lecture
14: Basic IO III
Lecture
15: Basic IO IV
Lecture
16: Interrupts
Lecture
17: Disk Storage, Video and DMA
Lecture
18: Bus Standards
End of course material
Lab Lecture Notes
Addressing Modes Slides from Dr. Chang
Arithmetic and Flow-of-Control Instructions
Projects
Project Help:
Macros
for your use (Courtesy Dr. Jim Plusquellic)
Assignments:
Instructions
on using submit
Project
1:
Hamming Distance (Due
March 1 Monday)
Project
2:
Adding Integers (Due
March 8 Monday)
Project
3:
Processing and Adding Single Precision
Floats (Extended to March 29 Mon. before
class)
Project
4 : Calculating DFT of a time domain
waveform (Due April 19 Monday)
Project
5 : Calculating area under a waveform
(Due May 3 Monday)
Homeworks
Homework 1 (Due April 14 Wed.)
Interface sixteen (16) 16K x 4 SRAM
chips in two data banks each of 8-bit. The system has a 20-bit address
and 16-bit data bus.
Show all
your work and draw a diagram using any word-processing tool of your choice.
Handwritten homeworks will not be accepted. The total is 50 points.
NASM Documentation
NASM
Documentation : HTML and PDF
Using
gdb for Assembly Language Debugging
Floating
point printf example
Code
to get the command line if you are using GCC
Completely
fill out and include the cover page (doc
or pdf) with each lab submission.
Labs will not be accepted without it. Late submission penalty is 20% lab
grade per day late. The definition for a late lab is if you don't hand
in your hardcopy when you walk into your class (or don't submit the
softcopy before coming to class) you have a late submission. Weekends will
be considered as late days.
Update (02/23) : Your program should print
out the original two strings and the hamming distance between them. You
can use printf to print out the hamming distance. Here is the code
for printing an integer value using printf. Use main instead of _start
in you .asm file and use gcc instead of ld to link.
You can use fopen
to open a file handle for "only" the output file.
Mini
Lecture on Discrete Fourier Transform
C
Starter Code for Project 4
Sample
Input
Corresponding
Sample Output
Help on using atan2
Sample
Input
Corresponding
Sample Output
The starting memory location for
the SRAM is address 0x00000 and the address increases contiguously from
this location.
- use a separate /CS signal for
each chip
- A0 = /BLE
- use the /BLE, /BHE, /WR, and /RD
signals in your answer
The design should be such that should
be able to write a 16-bit value in both banks, a 8-bit value in the low
bank or a 8-bit value in the high bank.
NASM Example I (hello.asm)
NASM Example II and gdb demo file
(Converts user input to upper case) (Courtesy of Dr. Richard Chang)
Instructions
on how to compile
Documentation
on the 0x80 system call interface
IA-32
Intel Architecture Software Developer's Manual : Best source for information
on any instructions.
The following documentation is provide
courtesy of Dr. Richard Chang
System
calls in Linux Assembly