Computer organization assembly language module 0
1 / 15

Introduction to CS-215 - PowerPoint PPT Presentation

  • Uploaded on

Computer Organization & Assembly Language: Module 0. Introduction to CS-215. Course topics. Computer Organization Computer Components CPU, memory, I/O devices, bus Representing information Integers, real numbers, text characters, machine code Arithmetic operations Assembly Language

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Introduction to CS-215' - irina

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Course topics
Course topics

  • Computer Organization

    • Computer Components

      • CPU, memory, I/O devices, bus

    • Representing information

      • Integers, real numbers, text characters, machine code

    • Arithmetic operations

  • Assembly Language

    • Basic features

    • Translation (C++  assembly language)

    • Data structures

    • Procedures

    • Programmed I/O

Course activities
Course activities

  • Computer Organization

    • Representing information

      • Encode and decode various types of data

        • How is 3.14 represented by a computer?

        • What unsigned integer is represented by the byte 11001010?

    • Arithmetic operations

      • Demonstrate the (addition/subtraction/multiplication/division) of two (integers/real numbers) using one of the algorithms for hardware operations presented in class

        • Requires an understanding of the representations

        • It is not enough to use conventional techniques and convert the result!

Course activities1
Course activities

  • Assembly Language

    • Translation (C++  assembly language)

      • Implement a C++ code fragment in assembly language

    • Procedures

      • Implement a C++ function in assembly language

        • Use activation records

    • Programmed I/O

      • Write code which manages I/O to a device

        • monitor, keyboard

Course resources
Course resources

  • Text: A Programmer's View of Computer Architecture, Goodman & Miller

  • Website:

    • Syllabus

    • Lecture slides

    • Assignments

    • Language and simulator resources

  • Desire2Learn (D2L)

    • Announcements

    • Dropbox (assignment submission)

    • Discussion board

Focus mips r2000 assembly language
Focus: MIPS R2000 Assembly Language

  • The MIPS R2000 is an old CPU from SGI

    • Modern MIPS used in SGI workstations, Sony PS2

    • All MIPS chips use nearly the same assembly language

    • MIPS assembly language is very similar to that of the PowerPC chip, the heart of the Apple Macintosh

  • Why MIPS R2000

    • Simple, easily learned language

    • Straight-forward architecture

    • Freely available GUI simulator: SPIM


  • Initially developed at UW-Madison by James Larus

  • More stable than its Unix counterpart

    • Xspim is on both miller and grid

  • Has a graphic interface for easy debugging

    • More on PCSpim later

Why study assembly language
Why study assembly language?

  • Developing a more accurate model of computation is the main goal of this course

  • A software engineer who understands how a computer works will be able to:

    • design more efficient code

    • Find and fix problems with code that don't stem from the semantics of the source language

    • Correctly diagnose problems in a deployed application

      • hardware, OS, libraries, network, source code, etc.

What is a model
What is a model?

  • A model is a partial representation of a system

    • incomplete

    • specific purpose

  • Multiple models for different purposes

    • Model of the city of Milwaukee for

      • MCTS bus driver

      • MMSD engineer

      • Bicyclist

      • Commercial airline pilot

Level of detail
Level of detail

  • Eliminating distracting detail enables focus on aspects of interest, get higher level perspectives

    • street maps for navigation do not show buildings and topography

  • More detail is NOT necessarily better

    • A detailed schematic of a car engine would not help the average motorist troubleshoot a sputtering engine

      • A flow chart would be better

    • A city map that shows every alley is less useful to a visitor than one that shows just major roads


  • Modeling is about abstraction:

    • building general, high-level concept pictures

  • Models often abstract away variation

    • Access to UWM computers requires authentication

    • The authentication abstraction filters out mechanism

      • login-password, fingerprint recognition, ID badge, etc.

  • Different abstractions, levels of abstraction depending on aspects of interest, degree of expertise

Learning is model refinement
Learning is model refinement

  • The primary purpose of modeling is to improve understanding

    • Observing differences between the model and reality shows us gaps in our understanding

      • This is how learning works, according to educational theory

      • Cognitive dissonance

    • Learn is updating our model to better predict reality

Novice user s model of computation
Novice user’s model of computation

  • A computer is a machine that:

    • Can generate video and sound, like a TV

    • responds to input from a keyboard and a mouse

      • Unlike a TV

    • must be plugged into the Internet to work properly

      • Like a TV needs cable, or an antenna

  • This is a useful model for word-processing, email, web browsing, copying CD’s, etc.

  • Programming requires a more detailed model

Cs 201 model of computation
CS-201 model of computation

  • A computer is a machine that executes a C++ program, by

    • Executing each line of the program sequentially, subject to control structures and function calls

    • Allowing the program to receive text input from the keyboard, or a file

    • Allowing the program to produce text output to the monitor, or a file

C++ Program


A more complex model of computation
A more complex model of computation

  • A computer executes machine instructions, and can control a variety of input/output devices

  • Compiler

    • language definition

    • settings

    • implementation details

  • Operating system

    • resource allocation

    • device management

  • CPU

    • machine instructions

    • addressing modes

C++ Program


Operating System