CSC235 Computer Organization & Assembly Language

Slides:



Advertisements
Similar presentations
Assembly Language for x86 Processors 6 th Edition Chapter 1: Introduction to ASM (c) Pearson Education, All rights reserved. You may modify and copy.
Advertisements

Assembly Language for Intel-Based Computers, 4 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify and.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
 Computer hardware components are the physical pieces of the computer.  The major hardware components of a computer are: – The central processing.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
Assembly Language for Intel-Based Computers, 4th Edition
Assembly Language for Intel-Based Computers, 5 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify.
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.
Assembly Language for Intel-Based Computers, 5 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify.
Computers & Logic An Overview. Hardware Hardware is the equipment, or the devices, associated with a computer. For a computer to be useful, however, it.
Assembly Language for Intel-Based Computers, 5th Edition
Assembly Language for Intel-Based Computers, 5 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify and copy this slide show for your personal use, or for.
CCSE251 Introduction to Computer Organization
CSU0014 Assembly Languages Homepage: Textbook: Kip R. Irvine, Assembly Language for Intel-Based Computers,
Summer 2014 Chapter 1: Basic Concepts. Irvine, Kip R. Assembly Language for Intel-Based Computers 6/e, Chapter Overview Welcome to Assembly Language.
Assembly Language for x86 Processors 7th Edition
Levels of Architecture & Language CHAPTER 1 © copyright Bobby Hoggard / material may not be redistributed without permission.
Chapter 1: Basic Concepts
Cosc 2150: Computer Organization
Computer Programming A program is a set of instructions a computer follows in order to perform a task. solve a problem Collectively, these instructions.
Assembly Language for x86 Processors 7 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify and copy this.
Chapter 19 Number Systems. Irvine, Kip R. Assembly Language for Intel-Based Computers, Translating Languages English: Display the sum of A times.
Introduction to Programming Instructor: Yong Tang Brookhaven National Laboratory Working on accelerator control (BNL Phone #)
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
Levels of Abstraction Computer Organization. Level of Abstraction u Provides users with concepts/tools to solve problem at that level u Implementation.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Chapter 1 An Overview of Computers and Programming Languages.
©2013 Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved. Introduction to Computers and Computing.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
Computer Operation. Binary Codes CPU operates in binary codes Representation of values in binary codes Instructions to CPU in binary codes Addresses in.
Computer Organization IS F242. Course Objective It aims at understanding and appreciating the computing system’s functional components, their characteristics,
Microprocessors CSE- 341 Dr. Jia Uddin Assistant Professor, CSE, BRAC University.
Suffolk County Community College Mathematics and Computer Science Ammerman Campus CST 121Spring 2013 Section 151CRN: Computer Organization And System.
Computer Organization and Architecture Lecture 1 : Introduction
Software Development Environment
Computer Operations Part 2.
Why don’t programmers have to program in machine code?
Computer Organization
Assembly Language for x86 Processors 6th Edition
Assembly Language (CSW 353)
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
CSCI-235 Micro-Computer Applications
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
GC101 Introduction to computers and programs
Introduction
Microprocessor and Assembly Language
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Chapter 1: An Overview of Computers and Programming Languages
Assembly Language for x86 Processors 6th Edition
TRANSLATORS AND IDEs Key Revision Points.
Programming Languages
Computer Science I CSC 135.
T Computer Architecture, Autumn 2005
Programming Languages
Assembly Language for Intel-Based Computers
Introduction to Micro Controllers & Embedded System Design
A primer on Computers and Programs
Computer Organization
Overview of Computer Architecture and Organization
Programming Languages
Computer Organization and Assembly Language
Introduction to Computer Programming
Java Programming Introduction
Computer Systems An Introducton.
Computer Organization and Assembly Language
Presentation transcript:

CSC235 Computer Organization & Assembly Language Introduction, Virtual Machines

Modern computing machines Complex devices Built using very large scale integrated circuits (VLSI) Complex architectures Programmable “User friendly” high level languages: C++, Java, Python… But a lot goes on to support this…

Goal of this course: Take a peak “under the hood” of a modern computer Not absolutely necessary to use a computer But… it will make you a better computer scientist! Use a “ground-up” approach to learn about: Digital Logic and Circuit Design Machine architecture Low level programming

Course Overview: Digital Logic Circuit Design Examine basic principles of digital logic Boolean operations Binary Arithmetic Circuit Design Design basic logic circuits that implement logical and mathematical functions Using “Logisim” Combinatorial and sequential circuit design

Course Overview (cont): Machine architecture Examine major components of a computer Central Processing Unit (CPU) Arithmetic Logic Unit (ALU), Control Unit (CU), … Memory Discuss implementation using digital circuits Concentrate on the Intel x86 family of processors Underlying processor for Windows PC’s and Apple MAC’s

Course Overview (cont): Low level programming Machine code Assembly Language Basis for higher level languages like C++ and Java MASM (Microsoft Macro Assembler) Windows based assembler Visual Studio Use core libraries supplied with Irvine textbook

Virtual Machines Begin with the concept of a “Virtual Machine” An abstraction Computer is thought of as having multiple layers Layers are a combination of software and hardware Each level builds on capabilities of the lower level Start with a simple 2 level abstraction…

Virtual Machines Tanenbaum: Virtual machine concept Programming Language analogy: Each computer has a native machine language (language L0) that runs directly on its hardware A more human-friendly language is usually constructed above machine language, called Language L1 Programs written in L1 can run two different ways: Interpretation – L0 program interprets and executes L1 instructions one by one Translation – L1 program is completely translated into an L0 program, which then runs on the computer hardware Irvine, Kip R. Assembly Language for Intel-Based Computers 7/e, 2015.

Modern computing machines Digital Large scale integrated circuits Complex architectures Binary arithmetic Why? Easier to make circuits with only 2 states as opposed to 10 (decimal) More on this later… Programmable But at a very low level Instructions, as well as data, are binary codes/numbers Require many steps to accomplish even simple tasks Not “user friendly”

Translating Languages English: Display the sum of A times B plus C. C++: cout << (A * B + C); Assembly Language: mov eax,A mul B add eax,C call WriteInt Intel Machine Language: A1 00000000 F7 25 00000004 03 05 00000008 E8 00500000 Irvine, Kip R. Assembly Language for Intel-Based Computers 7/e, 2015.

Specific Machine Levels (descriptions of individual levels follow . . . ) Irvine, Kip R. Assembly Language for Intel-Based Computers 7/e, 2015.

High-Level Language Level 4 Application-oriented languages C++, Java, Pascal, Visual Basic . . . Programs compile into assembly language (Level 3) Irvine, Kip R. Assembly Language for Intel-Based Computers 7/e, 2015.

Assembly Language Level 3 Instruction mnemonics that have a one-to-one correspondence to machine language Programs are translated into Instruction Set Architecture Level - machine language (Level 2) Irvine, Kip R. Assembly Language for Intel-Based Computers 7/e, 2015.

Instruction Set Architecture (ISA) Level 2 Also known as conventional machine language Executed by Level 1 (Digital Logic) Irvine, Kip R. Assembly Language for Intel-Based Computers 7/e, 2015.

Digital Logic Level 1 CPU, constructed from digital logic gates System bus Memory Implemented using MOS transistors Irvine, Kip R. Assembly Language for Intel-Based Computers 7/e, 2015. Modified John Carelli