Introduction to CS-215 Computer Organization & Assembly Language: Module 0.

Slides:



Advertisements
Similar presentations
CS 215 Introduction to Assembly Language and Computer Architecture.
Advertisements

Slide 2-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 2 Using the Operating System 2.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Systems Software.
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
MCT260-Operating Systems I Operating Systems I Introduction to Operating Systems.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. slide 1 CS 125 Introduction to Computers and Object- Oriented Programming.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
Introduction to Computers and Programming. Some definitions Algorithm: –A procedure for solving a problem –A sequence of discrete steps that defines such.
1  1998 Morgan Kaufmann Publishers Lectures for 2nd Edition Note: these lectures are often supplemented with other materials and also problems from the.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
1 Introduction to computers Overview l · Grading Policy »Cheating Rules (serious concern) »Examinations and Fixation of Timings »Quizzes »Homework Assignments.
CIS 260 Computer Programming I in C Prof. Timothy Arndt.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Course: Introduction to Computers
Lesson 4 Computer Software
Computer Architecture Lecture 01 Fasih ur Rehman.
Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview.
CS-2710 Computer Organization Dr. Mark L. Hornick web: faculty-web.msoe.edu/hornick – CS-2710 info syllabus, homework, labs… –
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Computer Programming Basics Assistant Professor Jeon, Seokhee Assistant Professor Department of Computer Engineering, Kyung Hee University, Korea.
Introduction to Computer Systems Topics: Theme Four great realities of computer systems Chap 1 in “Computer Systems” book “The Class That Gives.
CISC105 General Computer Science Class 1 – 6/5/2006.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
CPS120: Introduction to Computer Science Introduction to Computers.
Chapter 1 Introduction to Computers and C++ Programming Goals: To introduce the fundamental hardware and software components of a computer system To introduce.
Advanced Computer Architecture 0 Lecture # 1 Introduction by Husnain Sherazi.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
COMPUTER ORGANIZATIONS CSNB123. COMPUTER ORGANIZATIONS CSNB123 Why do you need to study computer organization and architecture? Computer science and IT.
Computer Organization and Design Computer Abstractions and Technology
Chapter 1 Computer Systems. Why study Computer Architecture? Examples Web Browsing - how does the browser access pages from a server? How can we create.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
School of Computer Science & Information Technology G6DICP Introduction to Computer Programming Milena Radenkovic.
COMPUTER ARCHITECTURE. Recommended Text 1Computer Organization and Architecture by William Stallings 2Structured Computer Organisation Andrew S. Tanenbaum.
CSCI 211 Intro Computer Organization –Consists of gates for logic And Or Not –Processor –Memory –I/O interface.
1 Programming Fundamentals How to Program in C++ How to Program in C++
Tolo-e-aftab higher education 1 th semester Bcs 1/2/1392 MINISTRY OF HIGHER EDUCATION.
Chapter 1 Computer Abstractions and Technology. Chapter 1 — Computer Abstractions and Technology — 2 The Computer Revolution Progress in computer technology.
C o n f i d e n t i a l 1 Course: BCA Semester: III Subject Code : BC 0042 Subject Name: Operating Systems Unit number : 1 Unit Title: Overview of Operating.
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
Beginning Snapshots Chapter 0. C++ An Introduction to Computing, 3rd ed. 2 Objectives Give an overview of computer science Show its breadth Provide context.
Application Software System Software.
A.Abhari CPS1251 Topic 1: Introduction to Computers Computer Hardware Computer components Connecting Computers Computer Software Operating System (OS)
Computer and Programming. Computer Basics: Outline Hardware and Memory Programs Programming Languages and Compilers.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO CS 219 Computer Organization.
Interrupt driven I/O Computer Organization and Assembly Language: Module 12.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Yaohang Li.
September st Evening Vocational School of Trikala our IT lessons …
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Computer Architecture Organization and Architecture
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
System Programming and administration
Introduction to Computers and Java
Computer Science I CSC 135.
CSC Classes Required for TCC CS Degree
T Computer Architecture, Autumn 2005
Chapter 3 Hardware and software 1.
Introduction to Computer Systems
Chapter 3 Hardware and software 1.
Introduction to Microprocessor Programming
Introduction to Computer Systems
Java Programming Introduction
Presentation transcript:

Introduction to CS-215 Computer Organization & Assembly Language: Module 0

Course topics u Computer Organization  Computer Components  CPU, memory, I/O devices, bus  Representing information  Integers, real numbers, text characters, machine code  Arithmetic operations u Assembly Language  Basic features  Translation (C++  assembly language)  Data structures  Procedures  Programmed I/O

Course activities u 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 ?  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 activities u 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 u Text: A Programmer's View of Computer Architecture, Goodman & Miller u Website:  Syllabus  Lecture slides  Assignments  Language and simulator resources u Desire2Learn (D2L)  Announcements  Dropbox (assignment submission)  Discussion board

Focus: MIPS R2000 Assembly Language u 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 u Why MIPS R2000  Simple, easily learned language  Straight-forward architecture  Freely available GUI simulator: SPIM

PCSpim u Initially developed at UW-Madison by James Larus u More stable than its Unix counterpart  Xspim is on both miller and grid u Has a graphic interface for easy debugging  More on PCSpim later

Why study assembly language? u Developing a more accurate model of computation is the main goal of this course u 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? u A model is a partial representation of a system  incomplete  specific purpose u Multiple models for different purposes  Model of the city of Milwaukee for  MCTS bus driver  MMSD engineer  Bicyclist  Commercial airline pilot

Level of detail u Eliminating distracting detail enables focus on aspects of interest, get higher level perspectives  street maps for navigation do not show buildings and topography u 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

Abstraction u Modeling is about abstraction:  building general, high-level concept pictures u Models often abstract away variation  Access to UWM computers requires authentication  The authentication abstraction filters out mechanism  login-password, fingerprint recognition, ID badge, etc. u Different abstractions, levels of abstraction depending on aspects of interest, degree of expertise

Learning is model refinement u 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 u 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 u This is a useful model for word-processing, , web browsing, copying CD’s, etc. u Programming requires a more detailed model

CS-201 model of computation u 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 Computer

A more complex model of computation u A computer executes machine instructions, and can control a variety of input/output devices u Compiler  language definition  settings  implementation details u Operating system  resource allocation  device management u CPU  machine instructions  addressing modes CPU Operating System Compiler C++ Program