MC404: Basic Organization of Computers and Assembly Language

DateNotice
08/07Consolidated notes spreadsheet.
18/03Everything has changed. We will work together to reorganize our semester. See the new dates and schedule in the calendar below. The course and material of the course will be published in Google Classroom.
16/02Don't miss the important dates of the Graduation calendar.

Introduction to computer organization and representation of information in memory. Study of the instruction set of relevant processors. Development, implementation and testing of programs using assembly languages. Physical address space and address mapping for memory and peripherals. Programming of input and output devices. Treatment of interruptions.

The recommended bibliography for the activities of this discipline is: Noam Nisan and Shimon Schocken. The Elements of Computing Systems. MIT Press. 2008.

Book materials and chapters can be downloaded directly from the book page.

Simulators can be downloaded and installed by following these instructions, see also a local copy. Enjoy and read the HDL guide.

For activities on the ARM processor, I recommend online manuals (1 / 2 / 3 / 4 / 5).

ARM Simulator: Visual

ARM slides: 1, 2, 3

All evaluations of this course will be carried out online and will have a minimum period of 24 hours for completion. Each student must answer their assessment individually.

The dynamics of the discipline will be governed for weeks. Every Wednesday I will post videos and reading recommendations online, along with a set of activities to be carried out until the following Tuesday (until 23:59 pm). All students automatically receive a 24-hour grace period for submitting activities to cover any submission problems in the last hours. However, no problem justification can be given during the grace period.

The evaluation activities will be divided into three categories with their weights below:

  • Video quiz: Short questions about each video posted in the course, totaling a weight of 3 in the course grade. Test 1, which was carried out on 11/03, will be corrected and added to the note above as an extra score with a weight of 0,5.
  • Practical activities: The activities that were previously carried out in the laboratories will now need to be delivered through Google Classroom, totaling weight 4 in the discipline grade.
  • Online evidence: Two tests will be placed during the semester totaling weight 3 in the discipline grade.

Exam: Arithmetic average between the semester grade and the exam.

Minimum grade for exam: 2,5

Any attempted fraud during the semester will be punished to the extent of my authority, including a zero score in the discipline.

Activities will be organized in weeks. All new material will be made available on Wednesdays. I shared the course agenda with Google Classroom with links to Google Meet at each online service meeting. We will cover all class schedules with online meetings. The existence of more than one event at the same time is just to facilitate the distribution of calls between the monitors. Attendance at online appointments is not mandatory and the focus will only be on answering questions at these synchronous times. All material made available on video will be pre-recorded so that everyone can watch at the time they want.

Extra activities related to chapter 4:

  1. Calculate the absolute value of a number. Consider that the number is at R0.
  2. Add all the elements of a vector. Consider that the base address is at R0 and the size at R1.
  3. Find the smallest element of a vector. Consider that the base address is at R0 and the size at R1.
  4. Draw a point on the screen and move it through the keys on the keyboard.

Test files for extra tests.

DateDescription
04 / marPresentation of the course. Logic Gates
11 / marLogic Gates. Test 1
25 / marBinary arithmetic
01 / AprBinary arithmetic
08 / AprSequential logic
15 / AprSequential logic
22 / AprMachine language
29 / AprMachine language
06 / MayProcessor Architecture
13 / MayProcessor Architecture
20 / MayExam 1
27 / MayARM - general concepts and first instructions
June 03thSimple execution structures, memory model
June 10thFunctions and stack
June 17thInterruptions and exceptions
June 24thExam 2