SlideShare a Scribd company logo
ASSEMBLY FUNDAMENTALS
AHMED M. ABED
TEACHING ASSISTANT – ISLAMIC UNIVERSITY OF GAZA
AABED91@GMAIL.COM
AGENDA
• Fast Review
• Basic Elements of Assembly
INTRODUCTION
BASIC ELEMENTS OF ASSEMBLY
• Integer Constants
• Integer Expression
• Real Number Constants
• Character Constants
• String Constants

• Reserved Words
• Identifiers
• Directives
• Instructions
INTEGER CONSTANTS
• one or more digits, and an optional suffix character (called a radix)
indicating the number‟s base

[{+| −}] digits [radix]

• If no radix is given, the integer constant is assumed to be decimal
RADIX
• Radix may be one of the following (uppercase or lowercase):
Radix

Type

Radix

Type

H

Hexadecimal

R

Real

q/o

Octal

T

Decimal

D

Decimal

Y

Binary

B

Binary
INTEGER EXPRESSION
• An integer expression is a mathematical expression involving integer
values and arithmetic operators.
REAL NUMBER CONSTANTS
• Real number constants are represented as decimal reals or encoded
(hexadecimal) reals.

• A decimal real contains an optional sign followed by an integer
• A decimal point, an optional integer that expresses a fraction, and an
optional exponent
CHARACTER AND STRING CONSTANTS
• A character constant is a single character enclosed in single or double
quotes.
• „A‟
• “A”

• A string constant is a sequence of characters (including spaces)
enclosed in single or double quotes
• „Hi All‟
• “Welcome”
RESERVED WORDS
• Reserved words have special meaning Assembly and can only be
used in their correct context.
• Instruction mnemonics (MOV, ADD, SUB)
• Register names
• Directives
• Attributes, which provide size and usage information for variables and operands
• Operators, used in constant expressions
• Predefined symbols (@)
IDENTIFIERS
• An identifier is a programmer-chosen name. It might identify a
variable, a constant, a procedure, or a code label.
DIRECTIVES
• A directive is a command embedded in the source code that is
recognized and acted upon by the assembler.

• Directives do not execute at runtime.
• The .DATA directive identifies the area of a program containing variables
• The .CODE directive identifies the area of a program containing executable
instructions
INSTRUCTIONS
• An instruction is a statement that becomes executable when a
program is assembled.

• Instructions are translated by the assembler into machine language
bytes.

• Then loaded and executed by the CPU at runtime.
INSTRUCTIONS
• Instruction have four parts:
•
•
•
•

Label (optional)
Instruction mnemonic (required)
Operand(s) (usually required)
Comment (optional)

[label:] mnemonic [operands] [;comment]
INSTRUCTIONS - LABEL
• A label is an identifier that acts as a place marker for instructions and
data.

• Data Labels A data label identifies the location of a variable, providing
a convenient way to reference the variable in code.
• count DWORD 100

• The assembler assigns a numeric address to each label
INSTRUCTIONS - LABEL
• Code Labels A label in the code area of a program (where
instructions are located) must end with a colon (:) character.

• Code labels are used as targets of jumping and looping instructions.
• target:
• mov ax,bx
• ...
• jmp target
INSTRUCTION - INSTRUCTION MNEMONIC
• An instruction mnemonic is a short word that identifies an instruction.
Mnemonic

Description

MOV

Move (assign) one value to another

ADD

Add two values

SUB

Subtract one value from another

MUL

Multiply two values

JMP

Jump to a new location

CALL

Call a procedure
INSTRUCTION - OPERANDS
• Assembly language instructions can have between zero and three
operands.

• Each of which can be a register, memory operand, constant
expression, or input-output port.
INSTRUCTION - OPERANDS
• The INC instruction has one operand:
inc eax

; add 1 to EAX

• The MOV instruction has two operands:
mov count,ebx ; move EBX to count
INSTRUCTION - COMMENTS
• Comments are an important way for the writer of a program to
communicate information about the program‟s design to a person
reading the source code.

• The following information is typically included at the top of a program
listing:
• Description of the program‟s purpose
• Names of persons who created and/or revised the program
• Program creation and revision dates
• Technical notes about the program‟s implementation
INSTRUCTION - COMMENTS
• Comments can be specified in two ways:
• Single-line comments, beginning with a semicolon character (;).
• Block comments, beginning with the COMMENT directive and a user-specified
symbol
COMMENT !
This line is a comment.
This line is also a comment.
!
INSTRUCTION EXECUTION
• Fetch:
• The control unit fetches the next instruction from the instruction queue and
increments the instruction pointer (IP).

• Decode:
• The control unit decodes the instruction‟s function to determine what the
instruction will do.

• Fetch operands:
• If the instruction uses an input operand located in memory, the control unit uses
a read operation to retrieve the operand and copy it into internal registers
INSTRUCTION EXECUTION
• Execute:
• The ALU executes the instruction using the named registers and internal
registers as operands and sends the output to named registers and/or memory

• Store output operand:
• If the output operand is in memory, the control unit uses a write operation to
store the data.
INSTRUCTION EXECUTION
loop
fetch next instruction
advance the instruction pointer (IP)

decode the instruction
if memory operand needed, read value from memory
execute the instruction
if result is memory operand, write result to memory
continue loop

More Related Content

PPTX
Part I:Introduction to assembly language
PPTX
Programming the basic computer
PPT
Lec 01 basic concepts
PPTX
Simplified instructional computer
PPTX
Microprocessor chapter 9 - assembly language programming
PPTX
Lecture 4 assembly language
PPTX
Digital Logic Design Lecture 01
PPTX
Intro to assembly language
Part I:Introduction to assembly language
Programming the basic computer
Lec 01 basic concepts
Simplified instructional computer
Microprocessor chapter 9 - assembly language programming
Lecture 4 assembly language
Digital Logic Design Lecture 01
Intro to assembly language

What's hot (20)

PPTX
Introduction to Simplified instruction computer or SIC/XE
DOCX
Compiler Design Material
PPTX
Compiler construction tools
PPTX
Syntax directed-translation
PPT
Lec 04 intro assembly
PPTX
System Programing Unit 1
PPT
Assembler Language Tutorial for Mainframe Programmers
PDF
Assembly Language Programming By Ytha Yu, Charles Marut Chap 1(Microcomputer ...
PPTX
The Phases of a Compiler
DOCX
Techniques & applications of Compiler
PPTX
Presentation compiler design
PDF
Assembly level language
PPTX
Pros and cons of c as a compiler language
PPT
Cpcs302 1
PPT
Compiler Design
PPSX
Spr ch-02
PPTX
Assembly language programming intro
PPT
Chapt 01 Assembly Language
PPT
Assembly language programming(unit 4)
PPT
Chapter One
Introduction to Simplified instruction computer or SIC/XE
Compiler Design Material
Compiler construction tools
Syntax directed-translation
Lec 04 intro assembly
System Programing Unit 1
Assembler Language Tutorial for Mainframe Programmers
Assembly Language Programming By Ytha Yu, Charles Marut Chap 1(Microcomputer ...
The Phases of a Compiler
Techniques & applications of Compiler
Presentation compiler design
Assembly level language
Pros and cons of c as a compiler language
Cpcs302 1
Compiler Design
Spr ch-02
Assembly language programming intro
Chapt 01 Assembly Language
Assembly language programming(unit 4)
Chapter One
Ad

Similar to Part II: Assembly Fundamentals (20)

PPTX
03-IntroAssembly.pptx Introduction to assmebly language
PPT
Assembler
PPTX
Valuable Information on Lexical Analysis in Compiler Design
PPTX
Computer programming and utilization
PDF
Ch12- instruction sets- char & funct.pdf
PPTX
EC8691-MPMC-PPT.pptx
PPT
compiler construvtion aaaaaaaaaaaaaaaaaads
PPT
8051h.ppt microcontroller Assembly Language Programming
PPTX
Introduction to Assembly Language & various basic things
PPTX
C LANGUAGE UNIT-1 PREPARED BY M V BRAHMANANDA REDDY
PPTX
PPTX
PPTX
Chap_________________1_Introduction.pptx
PPTX
Unit ii
PPTX
Compiler Construction
PPT
Unit 1 psp
PPTX
Introduction to C programming
PPTX
Unit 1.pptx
PPTX
Unit 3 sp assembler
PPT
Concept of compiler in details
03-IntroAssembly.pptx Introduction to assmebly language
Assembler
Valuable Information on Lexical Analysis in Compiler Design
Computer programming and utilization
Ch12- instruction sets- char & funct.pdf
EC8691-MPMC-PPT.pptx
compiler construvtion aaaaaaaaaaaaaaaaaads
8051h.ppt microcontroller Assembly Language Programming
Introduction to Assembly Language & various basic things
C LANGUAGE UNIT-1 PREPARED BY M V BRAHMANANDA REDDY
Chap_________________1_Introduction.pptx
Unit ii
Compiler Construction
Unit 1 psp
Introduction to C programming
Unit 1.pptx
Unit 3 sp assembler
Concept of compiler in details
Ad

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Electronic commerce courselecture one. Pdf
PDF
Empathic Computing: Creating Shared Understanding
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Big Data Technologies - Introduction.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
KodekX | Application Modernization Development
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Advanced methodologies resolving dimensionality complications for autism neur...
The AUB Centre for AI in Media Proposal.docx
Electronic commerce courselecture one. Pdf
Empathic Computing: Creating Shared Understanding
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Big Data Technologies - Introduction.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Encapsulation_ Review paper, used for researhc scholars
Digital-Transformation-Roadmap-for-Companies.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Network Security Unit 5.pdf for BCA BBA.
Spectral efficient network and resource selection model in 5G networks
KodekX | Application Modernization Development
Mobile App Security Testing_ A Comprehensive Guide.pdf

Part II: Assembly Fundamentals

  • 1. ASSEMBLY FUNDAMENTALS AHMED M. ABED TEACHING ASSISTANT – ISLAMIC UNIVERSITY OF GAZA AABED91@GMAIL.COM
  • 2. AGENDA • Fast Review • Basic Elements of Assembly
  • 4. BASIC ELEMENTS OF ASSEMBLY • Integer Constants • Integer Expression • Real Number Constants • Character Constants • String Constants • Reserved Words • Identifiers • Directives • Instructions
  • 5. INTEGER CONSTANTS • one or more digits, and an optional suffix character (called a radix) indicating the number‟s base [{+| −}] digits [radix] • If no radix is given, the integer constant is assumed to be decimal
  • 6. RADIX • Radix may be one of the following (uppercase or lowercase): Radix Type Radix Type H Hexadecimal R Real q/o Octal T Decimal D Decimal Y Binary B Binary
  • 7. INTEGER EXPRESSION • An integer expression is a mathematical expression involving integer values and arithmetic operators.
  • 8. REAL NUMBER CONSTANTS • Real number constants are represented as decimal reals or encoded (hexadecimal) reals. • A decimal real contains an optional sign followed by an integer • A decimal point, an optional integer that expresses a fraction, and an optional exponent
  • 9. CHARACTER AND STRING CONSTANTS • A character constant is a single character enclosed in single or double quotes. • „A‟ • “A” • A string constant is a sequence of characters (including spaces) enclosed in single or double quotes • „Hi All‟ • “Welcome”
  • 10. RESERVED WORDS • Reserved words have special meaning Assembly and can only be used in their correct context. • Instruction mnemonics (MOV, ADD, SUB) • Register names • Directives • Attributes, which provide size and usage information for variables and operands • Operators, used in constant expressions • Predefined symbols (@)
  • 11. IDENTIFIERS • An identifier is a programmer-chosen name. It might identify a variable, a constant, a procedure, or a code label.
  • 12. DIRECTIVES • A directive is a command embedded in the source code that is recognized and acted upon by the assembler. • Directives do not execute at runtime. • The .DATA directive identifies the area of a program containing variables • The .CODE directive identifies the area of a program containing executable instructions
  • 13. INSTRUCTIONS • An instruction is a statement that becomes executable when a program is assembled. • Instructions are translated by the assembler into machine language bytes. • Then loaded and executed by the CPU at runtime.
  • 14. INSTRUCTIONS • Instruction have four parts: • • • • Label (optional) Instruction mnemonic (required) Operand(s) (usually required) Comment (optional) [label:] mnemonic [operands] [;comment]
  • 15. INSTRUCTIONS - LABEL • A label is an identifier that acts as a place marker for instructions and data. • Data Labels A data label identifies the location of a variable, providing a convenient way to reference the variable in code. • count DWORD 100 • The assembler assigns a numeric address to each label
  • 16. INSTRUCTIONS - LABEL • Code Labels A label in the code area of a program (where instructions are located) must end with a colon (:) character. • Code labels are used as targets of jumping and looping instructions. • target: • mov ax,bx • ... • jmp target
  • 17. INSTRUCTION - INSTRUCTION MNEMONIC • An instruction mnemonic is a short word that identifies an instruction. Mnemonic Description MOV Move (assign) one value to another ADD Add two values SUB Subtract one value from another MUL Multiply two values JMP Jump to a new location CALL Call a procedure
  • 18. INSTRUCTION - OPERANDS • Assembly language instructions can have between zero and three operands. • Each of which can be a register, memory operand, constant expression, or input-output port.
  • 19. INSTRUCTION - OPERANDS • The INC instruction has one operand: inc eax ; add 1 to EAX • The MOV instruction has two operands: mov count,ebx ; move EBX to count
  • 20. INSTRUCTION - COMMENTS • Comments are an important way for the writer of a program to communicate information about the program‟s design to a person reading the source code. • The following information is typically included at the top of a program listing: • Description of the program‟s purpose • Names of persons who created and/or revised the program • Program creation and revision dates • Technical notes about the program‟s implementation
  • 21. INSTRUCTION - COMMENTS • Comments can be specified in two ways: • Single-line comments, beginning with a semicolon character (;). • Block comments, beginning with the COMMENT directive and a user-specified symbol COMMENT ! This line is a comment. This line is also a comment. !
  • 22. INSTRUCTION EXECUTION • Fetch: • The control unit fetches the next instruction from the instruction queue and increments the instruction pointer (IP). • Decode: • The control unit decodes the instruction‟s function to determine what the instruction will do. • Fetch operands: • If the instruction uses an input operand located in memory, the control unit uses a read operation to retrieve the operand and copy it into internal registers
  • 23. INSTRUCTION EXECUTION • Execute: • The ALU executes the instruction using the named registers and internal registers as operands and sends the output to named registers and/or memory • Store output operand: • If the output operand is in memory, the control unit uses a write operation to store the data.
  • 24. INSTRUCTION EXECUTION loop fetch next instruction advance the instruction pointer (IP) decode the instruction if memory operand needed, read value from memory execute the instruction if result is memory operand, write result to memory continue loop