Chapter 1

Document technical information

Format ppt
Size 528.9 kB
First found May 22, 2018

Document content analysis

Category Also themed
Language
English
Type
not defined
Concepts
no text concepts found

Persons

Organizations

Places

Transcript

Introduction
Chapter 1
S. Dandamudi
Outline
• A user’s view of computer
systems
• What is assembly language?
• Why program in assembly
language?
– Time-efficiency
– Space-efficiency
– Accessibility to hardware
– Relationship to machine
language
• Advantages of high-level
languages
– Faster program development
– Easier maintenance
– Portability
• Typical applications
• Why learn assembly
language?
• Performance: C versus
assembly language
– Multiplication example
2005
To be used with S. Dandamudi,
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 2
A User’s View of Computer Systems
(cont’d)
2005
To be used with S. Dandamudi,
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 3
A User’s View of Computer Systems
• Depends on the degree of abstraction provided
by the underlying software
• We consider a hierarchy of five levels
– Moving to the top of hierarchy shields the user from
the lower-level details
– The top two levels are system independent
– The lower four levels are system dependent
• Assembly and machine languages are specific to a particular
processor
• One-to-one correspondence between assembly language
and machine language
2005
To be used with S. Dandamudi,
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 4
What Is Assembly Language?
• Low-level language
• Each instruction performs a much lower-level task compared to a
high-level language instruction
• One-to-one correspondence between assembly
language and machine language instructions
• For most assembly language instructions, there is a machine
language equivalent
• Assembler translates assembly language instructions to machine
language instructions
• Directly influenced by the instruction set and
architecture of the processor (CPU)
2005
To be used with S. Dandamudi,
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 5
What Is Assembly Language?
(Cont’d)
• Some example assembly language instructions:
inc
mov
and
add
result
class_size,45
mask1,128
marks,10
MIPS Examples
andi $t2,$t1,15
addu $t3,$t1,$t2
move $t2,$t1
• Some points to note:
• Assembly language instructions are cryptic
• Mnemonics are used for operations
– inc for increment, mov for move (i.e., copy)
• Assembly language instructions are low level
– Cannot write instructions such as
mov
marks, value
2005
To be used with S. Dandamudi,
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 6
What Is Assembly Language?
(Cont’d)
• Some simple high-level language instructions
can be expressed by a single assembly
instruction
Assembly Language
C
inc
result
result++;
mov
class_size,45
class_size = 45;
and
mask1,128
mask1 &= 128;
add
marks,10
marks += 10;
2005
To be used with S. Dandamudi,
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 7
What Is Assembly Language?
(Cont’d)
• Most high-level language instructions need more
than one assembly instruction
C
Assembly Language
size = value;
sum += x + y + z;
2005
To be used with S. Dandamudi,
mov
AX,value
mov
size,AX
mov
AX,sum
add
add
add
mov
AX,x
AX,y
AX,z
sum,AX
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 8
What Is Assembly Language?
(Cont’d)
• Readability of assembly language instructions is
much better than the machine language
instructions
• Machine language instructions are a sequence of 1s and 0s
Assembly Language
inc
Machine Language
(in Hex)
result
FF060A00
mov
class_size,45
and
mask,128
2005
add
marks,10
To be used with S. Dandamudi,
C7060C002D00
80260E0080
83060F000A
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 9
What Is Assembly Language?
(Cont’d)
• MIPS examples
Assembly Language
Machine Language
(in Hex)
nop
00000000
move
$t2,$t15
000A2021
andi
addu
$t2,$t1,15
$t3,$t1,$t2
312A000F
012A5821
2005
To be used with S. Dandamudi,
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 10
Advantages of High-level
Languages
• Program development is faster
• High-level instructions
– Fewer instructions to code
• Programs maintenance is easier
• For the same reasons as above
• Programs are portable
• Contain few machine-dependent details
– Can be used with little or no modifications on different types
of machines
• Compiler translates to the target machine language
“Introduction• toAssembly
Assembly
language programs
are not portable Chapter 1: Page 11
S. Dandamudi
2005
To be used with S. Dandamudi,
Language Programming,”
Why Program in Assembly
Language?
• Two main reasons:
– Efficiency
• Space-efficiency
• Time-efficiency
– Accessibility to system hardware
• Space-efficiency
– Assembly code tends to be compact
• Time-efficiency
– Assembly language programs tend to run faster
• Only a well-written assembly language program runs faster
– Easy to write an assembly program that runs slower than its highlevel language equivalent
2005
To be used with S. Dandamudi,
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 12
Typical Applications
• Application that need one of the three advantages of the
assembly language
• Time-efficiency
– Time-convenience
• Good to have but not required for functional correctness
– Graphics
– Time-critical
• Necessary to satisfy functionality
• Real-time applications
– Aircraft navigational systems
– Process control systems
– Robot control software
– Missile control software
2005
To be used with S. Dandamudi,
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 13
Typical Applications (cont’d)
• Accessibility to system hardware
– System software typically requires direct control
of the system hardware devices
• Assemblers, linkers, compilers
• Network interfaces, device drivers
• Video games
• Space-efficiency
– Not a big plus point for most applications
– Code compactness is important in some cases
2005
To be used with S. Dandamudi,
– Portable and hand-held device software
S. Dandamudi
– Spacecraft control software
Language Programming,”
“Introduction to Assembly
Chapter 1: Page 14
Why Learn Assembly Language?
• Some applications require programming in assembly
language
• Typically only a small part of an application is coded in assembly
language (rest written in a high-level language)
– Such programs are called mixed mode programs
• Assembly language can be used as a tool to learn
computer organization
• You will know more about the organization and internal workings
of a computer system
• Personal satisfaction of learning something
2005 complicated and useful
To be used with S. Dandamudi,
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 15
Performance: C versus Assembly
Language
5
Time (seconds)
4
3
C version
2
AL version
1
0
0
20
40
60
80
100
Number of calls (in millions)
2005
To be used with S. Dandamudi,
Last slide
“Introduction to Assembly
Language Programming,”
S. Dandamudi
Chapter 1: Page 16

Similar documents

×

Report this document