Computer Science 315

Computer Organization and Assembly Language Programming

This is NOT official class website. Official class website is D2L. This personal website is just for extra notes, sample solution to theory homeworks and more for myself so I can organize my work.


Name Section Office Phone Email Office hours
Paul McNally 401 E338 414-229-5361 macatck@uwm.edu Monday 1:00 - 2:00 & Wednesday 3:00 - 4:00
Seyedamirhossein Hesamian (Amir) 601 & 604 E280 - hesamian@uwm.edu Monday & Wednesday: 10:00 - 11:00
Buket Aydas 602 E280 - baydas@uwm.edu Wednesday: 1:00 - 2:00
Akshay Khanna 603 & 605 E280 - khannaa@uwm.edu Thursday & Friday: 11:00 - 12:00

Weekly schedule

Filter Clear

Week # Theory topics Programming topics Lab assignment Assembly solution Assignments due Discussion Notes
W #1: 1/25/16 Review syllabus Introduction to assembly, MIPS, QtSpim, debug code and Hello World program. Lab 1 - - Lecture 1
W #2: 2/1/16 Number systems, unsigned binary, octal, decimal, hex MIPS code structure, clock cycle, improve code efficiency and IF statements Lab 2 (A)
Lab 2 (B)
Lab 2 (C)
Lab 1 - Lecture 2 (A)
Lecture 2 (B)
Lecture 2 (C)
W #3: 2/8/16 Signed number system (sign magnitude, 1's complement, 2's complement) & addition of signed binary Simple arithmetic, multiplication, division and LOOPs Lab 3 (A)
Lab 3 (B)
Lab 2 (A)
Lab 2 (B)
Lab 2 (C)
Homework 1 Lecture 3
Signed Binary
W #4: 2/15/16 Subprograms, passing arguments IN and OUT using registers (WITHOUT using stack), use of static variable and use of [subprogram_template.s] that is on D2L Subprograms in practice and following convention Lab 4 Lab 3 (A)
Lab 3 (B)
Homework 2
Program 1
Lecture 4 (A)
Lecture 4 (B)
W #5: 2/22/16 Arrays (static & dynamic), 2's complement multiplication and logical operations and overview common issues (or mistakes) from Program-1 Static & Dynamic arrays and subprogram in practice Lab 5 (A)
Lab 5 (B)
Lab 4
Program 1
Homework 3
Program 2
Lecture 5 (A)
Lecture 5 (B)
Lecture 5 (C)
Lecture 5 (D)
Extra Practice (E)
Lecture 5 (F)
W #6: 2/29/16 Exam 1 (first midterm): programming section in first part of the class More array manipulations. get_element(), swap_element() Lab 6 Lab 5 (A)
Lab 5 (B)
Program 2
- -
W #7: 3/7/16 Passing arguments IN & OUT using stack. Showcase the possibilities of stack, subprogram call another subprogram or even recursion Stack in practice (IMPORTANT LAB ASSIGNMENT / CONCEPT) Lab 7 Factorial Extr.
Lab 6
- Lecture 7
W #8: 3/14/16 Spring break. Spring break, no required lab assignment. Lab 7 Ext. is optional. Read announcement (3/11/16) for more details. Lab 7-Ext. - - -
W #9: 3/21/16 Floating point representation (FPS), addition & subtraction Continue working on Lab 7 (passing arguments IN & OUT using stack) if you have not finished it already. Otherwise, working on Lab 7-Ext. - - Homework 4
Program 3
Lecture 9
Lab Exercises
W #10: 3/28/16 Floating point multiplication Working on Lab 8 which is about floating point instructions in MIPS as well as conversion between integer to floating point. Lab 8 Lab 7
Lab 7-Ext.
- Lecture 10 (A)
Lecture 10 (B)
PPT 11 (B)
W #11: 4/4/16 2 dimensional arrays (or matrix) Working on Lab 9 parts: A & B which are about two dimensional arrays in row major and column major respectively Lab 9 (A)
Lab 9 (B)
- - Lecture 11

Announcements (in chronological order)