Introduction to Computer Organization and Machine Level Programming

First Semester AY 2019-2020

About

Catalog Description
Course Number CMSC 131
Course Title Introduction to Computer Organization and Machine Level Programming
Description An introduction to computer organization and interfaces between hardware and software. Microcomputer systems: basic computer organization, memory addressing, CPU-memory-I/O relationships, interfacing interrupt mechanisms. Assembly Language Programming: Machine vs. Assembly language, data structure representations, program control implementations, subroutines, parameter passing, recursion, direct-video graphics, serial port communications.
Prerequisites CMSC 21 or COI
Credit 3 units
Aim

The aim of this course is to introduce students to computer organization, assembly language and systems programming.

Objectives
At the end of this course the student should be able to:
  1. describe the basic organization of microprocessor-based systems;
  2. develop correct, efficient and easily maintainable programs written in a low-level language; and
  3. understand the various interactions between hardware and software in a working system.
Topics
  • A tour of computer systems
  • Representing and manipulating information
  • Machine-level representation of programs
  • Optimizing program performance
  • Memory hierarchy
  • Linking
  • Exceptional control flow
  • Virtual memory
  • System-level I/O
  • Lab: 64-bit Assembly Language Programming in Ubuntu 16.04 and Win 10
Evaluation/Grading(Tentative)
(A) 3 Long Exams 45%
(B) Quizzes/Homeworks 10%
(C) Laboratory 45%
(D) Prefinal A+B+C
(E) Final Exam 100%
(F) Final Grade 20%xE+80%xD
Passing grade is 55%. No grade of 4.0 will be given. Grading scale is shown below.
0.00 54.99 5.0
55.00 59.99 3.0
60.00 64.99 2.75
65.00 69.99 2.5
70.00 74.99 2.25
75.00 79.99 2.0
80.00 84.99 1.75
85.00 89.99 1.5
90.00 94.99 1.25
95.00 100 1.0
Attendance Policy

Attendance will be checked every meeting. Students with seven(7) or more absences will be automatically dropped from the class.

Collaboration Policy

Honor Code
  • Properly acknowledge help received.
  • No looking at solutions/programs from previous years.
  • No sharing of code with other students.
  • Be ready to explain your code.
Google Classroom:

Staff

Name Role Email
Joseph Anthony C. Hermocilla Lecture/Laboratory jchermocilla@up.edu.ph

Lecture

(9:00-10:00, Wednesday and Friday, ICS LH 4)
Meeting Date Topic Readings Homework
1 8/7/19 W Introduction (by Prof. R. Mercado)
2 8/9/19 F (no meeting)
3 8/14/19 W Basic Computer Organization (by Prof. R. Mercado)
4 8/16/19 F Introduction to x86 Assembly Language Programming
5 8/21/19 W Information Representation [CS:APP2e] Ch. 2a
6 8/23/19 F Representing integral types and strings
7 8/28/19 W Boolean Algebra
8 8/30/19 F Signed and Unsigned Integers; Addition and Subtraction
9 9/4/19 W IEEE 754 floating point, x86 processors [CS:APP2e] Ch. 2b, [CS:APP2e] Ch. 3a
10 9/6/19 F Disassembly of machine code
11 9/11/19 W Memory Addressing Modes [CS:APP2e] Ch. 3b
12 9/13/19 F (no meeting due to power outage)
13 9/18/19 W EXAM 1
14 9/20/19 F Condition Codes
15 9/25/19 W Conditional MOVs
16 9/27/19 F Implementing Loops
17 10/2/19 W Switch and Jump Tables [CS:APP2e] Ch. 3c
18 10/4/19 F Introduction to the stack and procedures
19 10/9/19 W Demonstration of stack frames in linux (32-bit)
20 10/11/19 F Implementing Recursion and 64-bit procedures [CS:APP2e] Ch. 3d
21 10/16/19 W Implementing Arrays
22 10/18/19 F Implementing Structures
23 10/23/19 W EXAM 2
24 10/25/19 F Alignment and Unions [CS:APP2e] Ch. 3e
25 10/30/19 W Memory Hierarchy [CS:APP2e] Ch. 6a
26 11/6/19 W SSD
27 11/8/19 F Cache Memories [CS:APP2e] Ch. 6b
28 11/13/19 W E-way associative cache
29 11/15/19 F Case study: Matrix Multiplication
30 11/20/19 W Linking [CS:APP2e] Ch. 7
31 11/22/19 F Relocation
32 11/27/19 W Shared libraries
33 11/29/19 F (no meeting)
34 12/4/19 W EXAM 3

Laboratory

(10:00-13:00, Friday, ICS PCL 8)
Meeting Date Topic Readings Homework
1 8/9/19 F
2 8/16/19 F
3 8/23/19 F
4 8/30/19 F
5 9/6/19 F
6 9/13/19 F
7 9/20/19 F
8 9/27/19 F
9 10/4/19 F
10 10/11/19 F
11 10/18/19 F
12 10/25/19 F
13 11/8/19 F
14 11/15/19 F
15 11/22/19 F
16 11/29/19 F

Resources

Textbook
Supplementary Textbooks
Similar Courses on Assembly Programming and Systems Programming
Software and Others