Assembly Language -- Overview - PowerPoint PPT Presentation

About This Presentation
Title:

Assembly Language -- Overview

Description:

Title: Chapter 2, Jones Author: Greg Chapman Last modified by: Greg Chapman Created Date: 7/30/2003 9:40:10 PM Document presentation format: On-screen Show – PowerPoint PPT presentation

Number of Views:117
Avg rating:3.0/5.0
Slides: 23
Provided by: GregCh1
Category:

less

Transcript and Presenter's Notes

Title: Assembly Language -- Overview


1
Assembly Language -- Overview
  • CISP 310
  • Prof. Chapman

2
Assembly Language Is
  • Not A High-Level Language

3
High-Level Languages (HLL)
.c file
void main() do something
4
High-Level Languages (HLL)
.c file
C language program
Programmers focus is on getting the syntax and
structured logic correct in the source code
5
High-Level Languages
.cpp file
C language program Object-oriented (OO)
Programmers focus is on getting the syntax and
OO logic correct
6
HLL Development Techniques
  • Compiler catches syntax mistakes
  • Compiler translates from text into
    processor-specific binary codes (object file)

7
HLL Development Techniques
  • Memory for data storage and program code itself
    is automatically allocated
  • Linker creates .exe file

8
Assembly is Not a HLL
  • An assembly programmer has to deal directly with
    the processor memory (RAM)
  • The instructions are much more cryptic like move
    data to a different memory address

9
Assembly is Not a HLL
  • We must write code to enable I/O between
    keyboard, files, and monitor (generally using
    operating system procedures)
  • We must use a different design philosophy besides
    OO

10
Assembly is Not a HLL
  • Loop and if logic is implemented differently in
    assembly than with HLL

11
HLL OO Procedure
Lets look at the code that defines the effect of
clicking this Button control (VB.NET language)
12
' called when Call Peedy button is clicked
Private Sub btnCall_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs)
Handles btnCall.Click m_objMSpeaker.Show(
0) ' move Peedy to a specified location
m_objMSpeaker.MoveTo(Convert.ToInt16(Cursor
.Position.X - 100), Convert.ToInt16(Cursor.Positio
n.Y 130)) m_objMSpeaker.Play("Wave")
' tell Peedy what to say
m_objMSpeaker.Speak("Hello, I'm Peedy. Please say
or select the name of the person whose phone
number you would like to find.", "")
m_objMSpeaker.Speak("If you wish to say the name,
press the Scroll Lock key then speak the name.",
"") m_objMSpeaker.Play("RestPose")
cboName.Enabled True btnCall.Enabled
False End Sub ' btnCall_Click
13
HLL Translated Into Assembly
  • Every high-level instruction is equivalent to a
    group of many assembly instructions
  • Each assembly instruction is cryptic

14
This HLL statement
m_objMSpeaker.Speak("Hello, I'm Peedy. Please say
or select the name of the person whose
phone number you would like to find.", "")

Eight Assembly statements
000000f5 mov esi,dword ptr
ebx000000ECh 000000fb push dword ptr
ds02050024h 00000101 mov ecx,esi
00000103 mov edx,dword ptr
ds020529C4h 00000109 mov eax,dword
ptr ecx 0000010b mov eax,dword ptr
eax0Ch 0000010e mov eax,dword ptr
eax000001ACh 00000114 call dword ptr
eax5Ch
15
Sample Assembly Instruction
000000f5 mov esi,dword ptr
ebx000000ECh
16
Assembly Language Is
  • Not Self-Documenting

17
What Does This Accomplish?
000000f5 mov esi,dword ptr
ebx000000ECh 000000fb push dword ptr
ds02050024h 00000101 mov ecx,esi
00000103 mov edx,dword ptr
ds020529C4h 00000109 mov eax,dword
ptr ecx 0000010b mov eax,dword ptr
eax0Ch 0000010e mov eax,dword ptr
eax000001ACh 00000114 call dword ptr
eax5Ch 00000117 nop
Huh?
18
Whats Difficult About Assembly?
  • Cannot easily see purpose of code segment (see
    previous slide)
  • Not portable (separate assembly instructions for
    Intel, Motorola, processors)

19
Whats Right With Assembly?
  • Every language is based on machine code, and
    assembly is closest to machine code
  • Assembly is necessary to write high-level
    language translators Java/C/C/VB.NET/Fortran/)

20
Whats Right With Assembly?
  • We can write I/O code to communicate between our
    program and peripherals (cameras, iPods, etc.)
  • We can write instructions that are optimized for
    our processor, creating very very small and very
    very fast programs

21
What You Will Learn
  • At the end of this course, you will be able to
    create simple command-line programs that accept
    input from the keyboard and display text output
    to the monitor
  • You will finally understand the structure of
    memory and the inner workings of the processor
    chip

22
Ending Metaphor
  • HLL programmers authors who develop the content
    of a book but leave the details of typesetting,
    printing, sales, and distribution to someone else
  • Assembly programmers authors who can both write
    and publish, sell, and distribute their own
    books. They understand programming at a deeper
    level than a HLL programmer.
Write a Comment
User Comments (0)
About PowerShow.com