Week 1
Chapter 1: Basic Concepts
Class 1
Chapter Overview
• Welcome to Assembly Language
• Virtual Machine Concept
• Data Representation
• Boolean Operations
2
Welcome to Assembly Language
• Some Good Questions to Ask
• Assembly Language Applications
3
Questions to Ask
• Why am I learning Assembly Language?
• What background should I have?
• What is an assembler?
• What hardware/software do I need?
• What types of programs will I create?
• What do I get with this book?
• What will I learn?
4
Welcome to Assembly Language (cont)
• How does assembly language (AL) relate to machine
language?
• How do C++ and Java relate to AL?
• Is AL portable?
• Why learn AL?
5
Assembly Language Applications
• Some representative types of applications:
• Business application for single platform
• Hardware device driver
• Business application for multiple platforms
• Embedded systems & computer games
6
Comparing ASM to High-Level Languages
7
What's Next
• Welcome to Assembly Language
• Virtual Machine Concept
• Data Representation
• Boolean Operations
8
Virtual Machine Concept
• Virtual Machines
• Specific Machine Levels
9
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
10
Translating Languages
English: Display the sum of A times B plus C.
C++: cout << (A * B + C);
Assembly Language: Intel Machine Language:
mov eax,A A1 00000000
mul B F7 25 00000004
add eax,C
03 05 00000008
call WriteInt
E8 00500000
11
Specific Machine Levels
12
Level 4 - High-Level Language
• Application-oriented languages
• C++, Java, Pascal, Visual Basic . . .
• Programs compile into assembly language
(Level 4)
13
Level 3 - Assembly Language
• Instruction mnemonics that have a one-to-
one correspondence to machine language
• Programs are translated into Instruction Set
Architecture Level - machine language
(Level 2)
14
Level 2 - Instruction Set Architecture (ISA)
(see Book's Page 8 for details)
• Also known as conventional machine
language
• Executed by Level 1 (Digital Logic)
15
Level 1 - Digital Logic
• CPU, constructed from digital logic gates
• System bus
• Memory
• Implemented using bipolar transistors
16
What's Next
• Welcome to Assembly Language
• Virtual Machine Concept
• Data Representation
• Boolean Operations
17
Data Representation
• Binary Numbers
• Translating between binary and decimal
• Binary Addition
• Integer Storage Sizes
• Hexadecimal Integers
• Translating between decimal and hexadecimal
• Hexadecimal subtraction
• Signed Integers
• Binary subtraction
• Character Storage
18
Binary Numbers
• Digits are 1 and 0
• 1 = true
• 0 = false
• MSB – most significant bit
• LSB – least significant bit
MSB LSB
• Bit numbering: 1011001010011100
15 0
19
Binary Numbers
• Each digit (bit) is either 1 or 0 1 1 1 1 1 1 1 1
• Each bit represents a power of 2: 27 26 25 24 23 22 21 20
Every binary
number is a
sum of powers
of 2
20