Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC235 Computer Organization & Assembly Language

Similar presentations


Presentation on theme: "CSC235 Computer Organization & Assembly Language"— Presentation transcript:

1 CSC235 Computer Organization & Assembly Language
Introduction, Virtual Machines

2 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…

3 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

4 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

5 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

6 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

7 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…

8 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.

9 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”

10 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: A F E Irvine, Kip R. Assembly Language for Intel-Based Computers 7/e, 2015.

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

12 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.

13 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.

14 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.

15 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


Download ppt "CSC235 Computer Organization & Assembly Language"

Similar presentations


Ads by Google