SlideShare a Scribd company logo
Types of Instructions
Types of Instructions
• Different assembly language instructions are
  mainly categories into the following main
  types:

3.Data transfer instructions

5.Arithmetic instructions

7.Logical and program control instructions
1)Data trtansfer instruction:
• These instructions are responsible of transfer of
  data among operands.

• i) MOV instruction:
    copy data from one operand to another.

     general Syntax :-
        MOV destination ,source
i)Mov instruction (conti..)
• Data is copies from source to destination in
  such a way that source operand is not
  changed.

• The source operand may be
         immediate data(constant)
         a register
            or
         a memory operand
• The following data transfers are possible:
   register to register
   register to memory
   memory to register

• limitations on types of operands:
iii. CS and IP may never be destination.

v. immediate data and segment registers may
   not be moved to segment registers.
i. The source and destination operand must be
   of same size.

iii. If the source operand is immediate data, it
     must not exceed the destination operand
     size.

   255 (FFh) for a 8-bit destination
         or
   65’535 (FFFFh) for 16-bit destination
• MOV doesn't allow memory to memory
  transfer.
• data must be transfer to a register first.

• e.g to copy var1 to var2, we have to write:
     mov ax, var1
     mov var2, ax
Types of operands:
i) Register operand:
    A mov that involves only registers is the fastest
   type that take only two clock cycles.

clock cycles:-
o CPU’s smallest unit of time measurement
o     It varies from 50 to 210 nano seconds
o     it depends upon type of CPU processor.
• Register should be used when an instruction
  must execute quickly.

• Any register may be used as a source
  operand.

• Any register, except CS and IP may be a
  destination operand.
Examples:
• Mov ax, bx

• Mov dl, al

• Mov bx ,cs
ii) Immediate operands:
• An immediate value i.e. Integer constant may
  be moved to any register
    ( except a segment register or IP).

• And may also be moved to any memory
  operand (variable).
• In immediate value can not be larger then the
  destination operand.

• Examples:
   mov     bl , 01
   mov ax, 1000h
   mov total ,1000h
iii)Memory operand:
• a variable may be coded as one of the
  operands in a mov instruction.

• This causes the contents of memory at the
  variable’s address to be used.
• If an 8-bit variable name “count” contains the
  number ‘1’ ,

• then the following MOV will copy the contents
  of count into AL:

      Mov al, count
In similar way ,BL register’s contents may
be copied into the variable count as:

Mov al, count                   AL

Count
            01                        01
mov count, bl
•   BL                   Count

         01                   01
Some illegal Mov operations are:
1. Moves between two memory operands.

3. Moves of segment registers or immediate
   values to segment registers.

5. Moves to CS and IP.

7. Moves between register of different sizes.

9. Moves to immediate operands (constant).
iii)Loading instructions :-
• specific register instructions.
• used to load bytes or chains of bytes onto a
  register.
• LEA INSTRUCTION (Load Effective Address):

• Purpose: To load the address of the source
  operator.
• Syntax:
   LEA destination, source
LEA instruction (conti..)
• The illustration of one of the facilities we
  have with this command :

      MOV SI, OFFSET VAR1
Is equivalent to:
        LEA SI, VAR1

• MOV......OFFSET instruction is more efficient
  because the offset of operand is calculated by
  MASM at assembly time.
LEA instruction (conti..)
• LEA calculate offset of operand at runtime.
• Slows the program down.

• but LEA instruction may be used effectively
  with more advanced addressing modes such
  as “BASED MODE”.

• It is very probable that for the programmer it
  is much easier to create extensive programs
  by using LEA instruction.
iii)XCHG instruction

• The xchg (exchange) instruction swaps two
  values.

• This instruction is used to exchange the
  contents of two registers or of a register and
  a variable .

• The general form is
   xchg operand1 operand2
EXCHG instruction (conti..)

DIFFERENT FORMS OF REGISTER AND MEMORY
   OPERANDS ARE:-
• Xchg reg , reg
• Xchg reg , mem
• Xchg ax , reg16
• Xchg eax, reg32
 ( Available only on 80386 and later processors)
EXCHG instruction (conti..)
• Provides the most efficient way to exchange
  two 8-bit ,16-bit OR 32-bit operands.

• Because we don’t need a third register or
  variable to hold a temporary value.

• Quit suitable in sorting applications where it
  provides an advantage of speed.
•                EXCHG instruction (conti..)


• One or both operand may be register,
               OR
• a register may be combined with a memory
  operand ,

• But two memory operands may not be used
  together .
EXCHG instruction (conti..)



MOV   AL, VAL1   ; LOAD THE AL REGISTER

XCHG VAL2 ,AL

  ; EXCHANGE THE AL AND VAL2

MOV VAL1 , AL ; STORE AL BACK INTO VAL1
MEMORY
    EXCHG instruction (conti..)

                                  0A        Val1
    AX         00
                                  14
                                            val2

•
                                            val1
                                   0A
    AX         00           14
                                            val2
                                   0A



                                             val1
    AX          00          14         14

                                   0A        val2
EXCHG instruction (conti..)
         Some valid example:
• XCHNG EAX, EBX
     (;exchange two 32-bit registers)

• XCHNG AX, BX
     (;exchange two 16-bit registers)
EXCHG instruction (conti..)

• XCHNG ah , al
    ; exchange two 8-bit registers

• XCHG var , bx
    ; exchange 16-bit memory operand with
  BX
EXCHG instruction (conti..)

• Note that the order of the xchg's operands
  does not matter.

• Both operands must be the same size.

• The xchg instruction does not modify any flags
.MODEL SMALL
.STACK 100H
.DATA
VAL1 DB 0AH
VAL2 DB 14H

.CODE
MAIN PROC
  MOV AX, @DATA ;INITIALIZE DS REGISTER
  MOV DS,AX

 MOV AL, VAL1 ; LOAD THE AL REGISTER
 XCHG VAL2 ,AL ; EXCHANGE THE AL AND VAL2
 MOV VAL1 , AL ; STORE AL BACK INTO VAL1

  MOV AX,4C00H
  INT 21H
MAIN ENDP
END MAIN
2)Arithematic Instructions
• The Intel instruction set has instructions for
    integer arithmetic using 8,16 or 32-bits
    operands.
• The basic arithematic instructions are given
    below:
iii. INC and DEC instructions
iv. ADD instructions
v. SUB instructions
vi. MUL and IMUL instructions
i. INC and DEC instructions
• These INC and DEC are actually unary
  operators and their operands may be either
  8,16, 32-bits register or memory variables.

• INC is used to add 1 to the value of a single
  operand.

• DEC is used to subtract 1 from the value of a
  single operand.
INC and DEC instructions conti..




• These instructions have the following general
  form:
        INC destination
        DEC destination

• These instructions are faster than ADD and
  SUB instructions
ii) ADD instruction:
• This instruction adds 8 ,16 or 32-bits source
  operand to a destination operand of the same
  size.

• The syntax of this instruction is:
        ADD destination, source
ADD instruction conti..
The source operand is unchanged by the
  operation .
• Source operand may be a
       register,
       memory operand
        or immediate operand
• whereas destination may be a
     register or memory operand.
ADD instruction conti..

• A segment register may not be the destination
  and only one memory operand may be used.

• The size of source and destination operand
  must be the same, in this binary instruction,
  Add is a binary operator.
iii)Sub Instruction:
• This instruction subtracts a source operand
  from a destination operand.

• The syntax of this instruction is:
       SUB destination, source
SUB instruction conti..

• The sizes of both operands must match and
  only one may be the memory operand.
• A segment register may not be the
  Destination operand.
• All status flags are affected by this binary
  instructing SUB is a binary operand.
iv)MUL and IMUL instructions:
• These instructions are used to multiply an 8-
  bit or 16-bit operand by AL or AX.

• If an 8-bit source operand is supplied ,if will
  automatically multiplied and the result will be
  stored in AX.
MUL and IMUL instructions conti..


• If a 16-bit operand is source operand is
  supplied it will be automatically multiplied by
  AX and the result will be stored in DX and AX
  so that the higher bits are in DX.
• The syntax of these instructions are:
        MUL source
        IMUL source
• The source operand may be a register or
  memory operand.

 mul reg
 mul mem

• but may not be an immediate data.
• The IMUL (integer multiply) instruction
  multiplies signed binary values.
• Its sign extends the result through highest bit
  of AX or AX:DX ,depending on size of the
  source operand.
• A result of -10h ,for example ,would be
  extended into AH if an 8-bits operation had
  taken place or into DX for accomplishing a 16-
  bit operation.
• DIV INSTRUCTION
    Purpose: Division without sign.
• Syntax:
    DIV source

• The divider can be a byte or a word and it is
  the operator which is given the instruction.

• If the divider is 8 bits, the 16 bits AX register is
  taken as dividend and
• if the divider is 16 bits the even DX:AX
  register will be taken as dividend, taking the
  DX high word and AX as the low.

• If the divider was a byte then the quotient will
  be stored on the AL register and the residue
  on AH, if it was a word then the quotient is
  stored on AX and the residue on DX.
IDIV INSTRUCTION
• Purpose: Division with sign.
• Syntax:
• IDIV source

• It basically consists on the same as the DIV
  instruction,
• the only difference is that this one performs
  the operation with sign.
• For its results it used the same registers as the
  DIV instruction.
2)LOGICAL INSTRUCTIONS:
• generates their result either as true or false.

• Zero ,Carry and Sign flags are particularly associated
  with showing the results of Boolean and comparison
  instructions.

• Boolean instructions are based on boolean algebra
  operations .

• these operations allow modification of individual bits
  in binary numbers.
 AND results into 1 when both the input bit
  are 1.

 OR results into 1 when either input bit is 1.

 XOR results into 1 when the input bits are
  different and is known as exclusive OR.

     NOT results into the reverse of input bit
    i.e. 1 becomes 0 and 0 becomes 1.
ii. The   AND instruction
iii.The   OR instruction
iv.The    XOR instruction
v. The    NOT instruction
vi.The    NEG instruction

More Related Content

PPTX
Microprocessor 8085 complete
Shubham Singh
 
PPT
Assembly Language Basics
Education Front
 
PPT
Introduction to Data Structures Sorting and searching
Mvenkatarao
 
PPT
Instruction format
Sanjeev Patel
 
PPT
One Dimensional Array
dincyjain
 
PPTX
Compilers
Bense Tony
 
PPTX
Part I:Introduction to assembly language
Ahmed M. Abed
 
PPTX
Assembly language
shashank puthran
 
Microprocessor 8085 complete
Shubham Singh
 
Assembly Language Basics
Education Front
 
Introduction to Data Structures Sorting and searching
Mvenkatarao
 
Instruction format
Sanjeev Patel
 
One Dimensional Array
dincyjain
 
Compilers
Bense Tony
 
Part I:Introduction to assembly language
Ahmed M. Abed
 
Assembly language
shashank puthran
 

What's hot (20)

PPTX
Memory Organization
Kamal Acharya
 
PPT
Data transfer and manipulation
Sanjeev Patel
 
PPTX
Floating point arithmetic operations (1)
cs19club
 
PPTX
General register organization (computer organization)
rishi ram khanal
 
PPS
Computer instructions
Anuj Modi
 
PPTX
Pipelining and vector processing
Kamal Acharya
 
PDF
Unit II arm 7 Instruction Set
Dr. Pankaj Zope
 
PPT
Instruction cycle
shweta-sharma99
 
PPTX
Microprogrammed Control Unit
PreethiSureshkumar1
 
PPTX
Computer registers
DeepikaT13
 
PPTX
Associative memory 14208
Ameer Mehmood
 
PPTX
Computer architecture and organization
Tushar B Kute
 
PPTX
Instruction Set Architecture
Dilum Bandara
 
PPTX
priority interrupt computer organization
chnrketan
 
PPTX
memory reference instruction
DeepikaT13
 
PPT
Computer Organization and Assembly Language
fasihuddin90
 
PPTX
Stacks & subroutines 1
deval patel
 
PPS
Virtual memory
Anuj Modi
 
PPT
Architecture of 8086 Microprocessor
Mustapha Fatty
 
Memory Organization
Kamal Acharya
 
Data transfer and manipulation
Sanjeev Patel
 
Floating point arithmetic operations (1)
cs19club
 
General register organization (computer organization)
rishi ram khanal
 
Computer instructions
Anuj Modi
 
Pipelining and vector processing
Kamal Acharya
 
Unit II arm 7 Instruction Set
Dr. Pankaj Zope
 
Instruction cycle
shweta-sharma99
 
Microprogrammed Control Unit
PreethiSureshkumar1
 
Computer registers
DeepikaT13
 
Associative memory 14208
Ameer Mehmood
 
Computer architecture and organization
Tushar B Kute
 
Instruction Set Architecture
Dilum Bandara
 
priority interrupt computer organization
chnrketan
 
memory reference instruction
DeepikaT13
 
Computer Organization and Assembly Language
fasihuddin90
 
Stacks & subroutines 1
deval patel
 
Virtual memory
Anuj Modi
 
Architecture of 8086 Microprocessor
Mustapha Fatty
 
Ad

Viewers also liked (10)

PPT
Chapter 3 INSTRUCTION SET AND ASSEMBLY LANGUAGE PROGRAMMING
Frankie Jones
 
PDF
Lecture 2
GIKI
 
PPT
basic computer programming and micro programmed control
Rai University
 
PPTX
Micro programmed control
Shashank Singh
 
PPTX
Micro Programmed Control Unit
Kamal Acharya
 
PPTX
MicroProgrammed Explained .
Muhammad Umar
 
PPT
15 control-computer organization and archietecture-CO-COA
Jay Patel
 
PDF
Computer architecture
neclinux
 
PPT
Origin of Microprocessor and Classification of Microprocessor
Vijay Kumar
 
PPT
Microprogram Control
Anuj Modi
 
Chapter 3 INSTRUCTION SET AND ASSEMBLY LANGUAGE PROGRAMMING
Frankie Jones
 
Lecture 2
GIKI
 
basic computer programming and micro programmed control
Rai University
 
Micro programmed control
Shashank Singh
 
Micro Programmed Control Unit
Kamal Acharya
 
MicroProgrammed Explained .
Muhammad Umar
 
15 control-computer organization and archietecture-CO-COA
Jay Patel
 
Computer architecture
neclinux
 
Origin of Microprocessor and Classification of Microprocessor
Vijay Kumar
 
Microprogram Control
Anuj Modi
 
Ad

Similar to Types of instructions (20)

PPTX
Microprocessor.pptx
NishatNishu5
 
PPTX
Uc 2(vii)
Ankita Jaiswal
 
PPT
Instructions_introductionM2.1.about.microcontrollerppt
yesmskai
 
PPTX
Arithmetic and logical instructions set
Robert Almazan
 
PDF
Embedded system and arm with different module
SonugowdaChinnu
 
PPTX
Arithmetic instructions
Robert Almazan
 
PPTX
MES_MODULE 2.pptx
Shivakumar M
 
PPT
8051d
Senthil Kumar
 
PPTX
8086 Instruction set
karthiga selvaraju
 
PPTX
8051 instruction set
prakash y
 
PPT
13229286.ppt
DrRajalakshmiM
 
PPTX
MICROCONTROLLERS-module2 (7).pptx
AmoghR3
 
PDF
instructions set of 8051.pdf
DhilibanSwaminathan
 
PPTX
Chapter3 8086inst logical 2
HarshitParkar6677
 
PPTX
Chap3 8086 logical
HarshitParkar6677
 
PPTX
microprocesser Chapter three and foure.pptx
TesfalegnYakob
 
PPT
W8_1: Intro to UoS Educational Processor
Daniel Roggen
 
PPTX
Microprocessors-based systems (under graduate course) Lecture 3 of 9
Randa Elanwar
 
PPTX
Instruction sets of 8086
Mahalakshmiv11
 
PPT
8085_Microprocessor(simar).ppt
KanikaJindal9
 
Microprocessor.pptx
NishatNishu5
 
Uc 2(vii)
Ankita Jaiswal
 
Instructions_introductionM2.1.about.microcontrollerppt
yesmskai
 
Arithmetic and logical instructions set
Robert Almazan
 
Embedded system and arm with different module
SonugowdaChinnu
 
Arithmetic instructions
Robert Almazan
 
MES_MODULE 2.pptx
Shivakumar M
 
8086 Instruction set
karthiga selvaraju
 
8051 instruction set
prakash y
 
13229286.ppt
DrRajalakshmiM
 
MICROCONTROLLERS-module2 (7).pptx
AmoghR3
 
instructions set of 8051.pdf
DhilibanSwaminathan
 
Chapter3 8086inst logical 2
HarshitParkar6677
 
Chap3 8086 logical
HarshitParkar6677
 
microprocesser Chapter three and foure.pptx
TesfalegnYakob
 
W8_1: Intro to UoS Educational Processor
Daniel Roggen
 
Microprocessors-based systems (under graduate course) Lecture 3 of 9
Randa Elanwar
 
Instruction sets of 8086
Mahalakshmiv11
 
8085_Microprocessor(simar).ppt
KanikaJindal9
 

Recently uploaded (20)

PPTX
Tips Management in Odoo 18 POS - Odoo Slides
Celine George
 
DOCX
Modul Ajar Deep Learning Bahasa Inggris Kelas 11 Terbaru 2025
wahyurestu63
 
PPTX
BASICS IN COMPUTER APPLICATIONS - UNIT I
suganthim28
 
PPTX
Information Texts_Infographic on Forgetting Curve.pptx
Tata Sevilla
 
PPTX
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
PPTX
Continental Accounting in Odoo 18 - Odoo Slides
Celine George
 
PPTX
How to Track Skills & Contracts Using Odoo 18 Employee
Celine George
 
DOCX
SAROCES Action-Plan FOR ARAL PROGRAM IN DEPED
Levenmartlacuna1
 
PDF
The-Invisible-Living-World-Beyond-Our-Naked-Eye chapter 2.pdf/8th science cur...
Sandeep Swamy
 
PPTX
How to Apply for a Job From Odoo 18 Website
Celine George
 
PPTX
Introduction to pediatric nursing in 5th Sem..pptx
AneetaSharma15
 
PPTX
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Priyanshu Anand
 
PPTX
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
PDF
Antianginal agents, Definition, Classification, MOA.pdf
Prerana Jadhav
 
PPTX
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
PPTX
HEALTH CARE DELIVERY SYSTEM - UNIT 2 - GNM 3RD YEAR.pptx
Priyanshu Anand
 
PPTX
20250924 Navigating the Future: How to tell the difference between an emergen...
McGuinness Institute
 
DOCX
Unit 5: Speech-language and swallowing disorders
JELLA VISHNU DURGA PRASAD
 
PPTX
How to Manage Leads in Odoo 18 CRM - Odoo Slides
Celine George
 
PPTX
Kanban Cards _ Mass Action in Odoo 18.2 - Odoo Slides
Celine George
 
Tips Management in Odoo 18 POS - Odoo Slides
Celine George
 
Modul Ajar Deep Learning Bahasa Inggris Kelas 11 Terbaru 2025
wahyurestu63
 
BASICS IN COMPUTER APPLICATIONS - UNIT I
suganthim28
 
Information Texts_Infographic on Forgetting Curve.pptx
Tata Sevilla
 
INTESTINALPARASITES OR WORM INFESTATIONS.pptx
PRADEEP ABOTHU
 
Continental Accounting in Odoo 18 - Odoo Slides
Celine George
 
How to Track Skills & Contracts Using Odoo 18 Employee
Celine George
 
SAROCES Action-Plan FOR ARAL PROGRAM IN DEPED
Levenmartlacuna1
 
The-Invisible-Living-World-Beyond-Our-Naked-Eye chapter 2.pdf/8th science cur...
Sandeep Swamy
 
How to Apply for a Job From Odoo 18 Website
Celine George
 
Introduction to pediatric nursing in 5th Sem..pptx
AneetaSharma15
 
family health care settings home visit - unit 6 - chn 1 - gnm 1st year.pptx
Priyanshu Anand
 
Applications of matrices In Real Life_20250724_091307_0000.pptx
gehlotkrish03
 
Antianginal agents, Definition, Classification, MOA.pdf
Prerana Jadhav
 
HISTORY COLLECTION FOR PSYCHIATRIC PATIENTS.pptx
PoojaSen20
 
HEALTH CARE DELIVERY SYSTEM - UNIT 2 - GNM 3RD YEAR.pptx
Priyanshu Anand
 
20250924 Navigating the Future: How to tell the difference between an emergen...
McGuinness Institute
 
Unit 5: Speech-language and swallowing disorders
JELLA VISHNU DURGA PRASAD
 
How to Manage Leads in Odoo 18 CRM - Odoo Slides
Celine George
 
Kanban Cards _ Mass Action in Odoo 18.2 - Odoo Slides
Celine George
 

Types of instructions

  • 2. Types of Instructions • Different assembly language instructions are mainly categories into the following main types: 3.Data transfer instructions 5.Arithmetic instructions 7.Logical and program control instructions
  • 3. 1)Data trtansfer instruction: • These instructions are responsible of transfer of data among operands. • i) MOV instruction: copy data from one operand to another. general Syntax :- MOV destination ,source
  • 4. i)Mov instruction (conti..) • Data is copies from source to destination in such a way that source operand is not changed. • The source operand may be  immediate data(constant)  a register or  a memory operand
  • 5. • The following data transfers are possible:  register to register  register to memory  memory to register • limitations on types of operands: iii. CS and IP may never be destination. v. immediate data and segment registers may not be moved to segment registers.
  • 6. i. The source and destination operand must be of same size. iii. If the source operand is immediate data, it must not exceed the destination operand size.  255 (FFh) for a 8-bit destination or  65’535 (FFFFh) for 16-bit destination
  • 7. • MOV doesn't allow memory to memory transfer. • data must be transfer to a register first. • e.g to copy var1 to var2, we have to write: mov ax, var1 mov var2, ax
  • 8. Types of operands: i) Register operand: A mov that involves only registers is the fastest type that take only two clock cycles. clock cycles:- o CPU’s smallest unit of time measurement o It varies from 50 to 210 nano seconds o it depends upon type of CPU processor.
  • 9. • Register should be used when an instruction must execute quickly. • Any register may be used as a source operand. • Any register, except CS and IP may be a destination operand.
  • 10. Examples: • Mov ax, bx • Mov dl, al • Mov bx ,cs
  • 11. ii) Immediate operands: • An immediate value i.e. Integer constant may be moved to any register ( except a segment register or IP). • And may also be moved to any memory operand (variable).
  • 12. • In immediate value can not be larger then the destination operand. • Examples: mov bl , 01 mov ax, 1000h mov total ,1000h
  • 13. iii)Memory operand: • a variable may be coded as one of the operands in a mov instruction. • This causes the contents of memory at the variable’s address to be used.
  • 14. • If an 8-bit variable name “count” contains the number ‘1’ , • then the following MOV will copy the contents of count into AL: Mov al, count
  • 15. In similar way ,BL register’s contents may be copied into the variable count as: Mov al, count AL Count 01 01
  • 16. mov count, bl • BL Count 01 01
  • 17. Some illegal Mov operations are: 1. Moves between two memory operands. 3. Moves of segment registers or immediate values to segment registers. 5. Moves to CS and IP. 7. Moves between register of different sizes. 9. Moves to immediate operands (constant).
  • 18. iii)Loading instructions :- • specific register instructions. • used to load bytes or chains of bytes onto a register. • LEA INSTRUCTION (Load Effective Address): • Purpose: To load the address of the source operator. • Syntax: LEA destination, source
  • 19. LEA instruction (conti..) • The illustration of one of the facilities we have with this command : MOV SI, OFFSET VAR1 Is equivalent to: LEA SI, VAR1 • MOV......OFFSET instruction is more efficient because the offset of operand is calculated by MASM at assembly time.
  • 20. LEA instruction (conti..) • LEA calculate offset of operand at runtime. • Slows the program down. • but LEA instruction may be used effectively with more advanced addressing modes such as “BASED MODE”. • It is very probable that for the programmer it is much easier to create extensive programs by using LEA instruction.
  • 21. iii)XCHG instruction • The xchg (exchange) instruction swaps two values. • This instruction is used to exchange the contents of two registers or of a register and a variable . • The general form is xchg operand1 operand2
  • 22. EXCHG instruction (conti..) DIFFERENT FORMS OF REGISTER AND MEMORY OPERANDS ARE:- • Xchg reg , reg • Xchg reg , mem • Xchg ax , reg16 • Xchg eax, reg32 ( Available only on 80386 and later processors)
  • 23. EXCHG instruction (conti..) • Provides the most efficient way to exchange two 8-bit ,16-bit OR 32-bit operands. • Because we don’t need a third register or variable to hold a temporary value. • Quit suitable in sorting applications where it provides an advantage of speed.
  • 24. EXCHG instruction (conti..) • One or both operand may be register, OR • a register may be combined with a memory operand , • But two memory operands may not be used together .
  • 25. EXCHG instruction (conti..) MOV AL, VAL1 ; LOAD THE AL REGISTER XCHG VAL2 ,AL ; EXCHANGE THE AL AND VAL2 MOV VAL1 , AL ; STORE AL BACK INTO VAL1
  • 26. MEMORY EXCHG instruction (conti..) 0A Val1 AX 00 14 val2 • val1 0A AX 00 14 val2 0A val1 AX 00 14 14 0A val2
  • 27. EXCHG instruction (conti..) Some valid example: • XCHNG EAX, EBX (;exchange two 32-bit registers) • XCHNG AX, BX (;exchange two 16-bit registers)
  • 28. EXCHG instruction (conti..) • XCHNG ah , al ; exchange two 8-bit registers • XCHG var , bx ; exchange 16-bit memory operand with BX
  • 29. EXCHG instruction (conti..) • Note that the order of the xchg's operands does not matter. • Both operands must be the same size. • The xchg instruction does not modify any flags
  • 30. .MODEL SMALL .STACK 100H .DATA VAL1 DB 0AH VAL2 DB 14H .CODE MAIN PROC MOV AX, @DATA ;INITIALIZE DS REGISTER MOV DS,AX MOV AL, VAL1 ; LOAD THE AL REGISTER XCHG VAL2 ,AL ; EXCHANGE THE AL AND VAL2 MOV VAL1 , AL ; STORE AL BACK INTO VAL1 MOV AX,4C00H INT 21H MAIN ENDP END MAIN
  • 31. 2)Arithematic Instructions • The Intel instruction set has instructions for integer arithmetic using 8,16 or 32-bits operands. • The basic arithematic instructions are given below: iii. INC and DEC instructions iv. ADD instructions v. SUB instructions vi. MUL and IMUL instructions
  • 32. i. INC and DEC instructions • These INC and DEC are actually unary operators and their operands may be either 8,16, 32-bits register or memory variables. • INC is used to add 1 to the value of a single operand. • DEC is used to subtract 1 from the value of a single operand.
  • 33. INC and DEC instructions conti.. • These instructions have the following general form: INC destination DEC destination • These instructions are faster than ADD and SUB instructions
  • 34. ii) ADD instruction: • This instruction adds 8 ,16 or 32-bits source operand to a destination operand of the same size. • The syntax of this instruction is: ADD destination, source
  • 35. ADD instruction conti.. The source operand is unchanged by the operation . • Source operand may be a register, memory operand or immediate operand • whereas destination may be a register or memory operand.
  • 36. ADD instruction conti.. • A segment register may not be the destination and only one memory operand may be used. • The size of source and destination operand must be the same, in this binary instruction, Add is a binary operator.
  • 37. iii)Sub Instruction: • This instruction subtracts a source operand from a destination operand. • The syntax of this instruction is: SUB destination, source
  • 38. SUB instruction conti.. • The sizes of both operands must match and only one may be the memory operand. • A segment register may not be the Destination operand. • All status flags are affected by this binary instructing SUB is a binary operand.
  • 39. iv)MUL and IMUL instructions: • These instructions are used to multiply an 8- bit or 16-bit operand by AL or AX. • If an 8-bit source operand is supplied ,if will automatically multiplied and the result will be stored in AX.
  • 40. MUL and IMUL instructions conti.. • If a 16-bit operand is source operand is supplied it will be automatically multiplied by AX and the result will be stored in DX and AX so that the higher bits are in DX.
  • 41. • The syntax of these instructions are: MUL source IMUL source • The source operand may be a register or memory operand.  mul reg  mul mem • but may not be an immediate data.
  • 42. • The IMUL (integer multiply) instruction multiplies signed binary values. • Its sign extends the result through highest bit of AX or AX:DX ,depending on size of the source operand.
  • 43. • A result of -10h ,for example ,would be extended into AH if an 8-bits operation had taken place or into DX for accomplishing a 16- bit operation.
  • 44. • DIV INSTRUCTION Purpose: Division without sign. • Syntax: DIV source • The divider can be a byte or a word and it is the operator which is given the instruction. • If the divider is 8 bits, the 16 bits AX register is taken as dividend and
  • 45. • if the divider is 16 bits the even DX:AX register will be taken as dividend, taking the DX high word and AX as the low. • If the divider was a byte then the quotient will be stored on the AL register and the residue on AH, if it was a word then the quotient is stored on AX and the residue on DX.
  • 46. IDIV INSTRUCTION • Purpose: Division with sign. • Syntax: • IDIV source • It basically consists on the same as the DIV instruction, • the only difference is that this one performs the operation with sign. • For its results it used the same registers as the DIV instruction.
  • 47. 2)LOGICAL INSTRUCTIONS: • generates their result either as true or false. • Zero ,Carry and Sign flags are particularly associated with showing the results of Boolean and comparison instructions. • Boolean instructions are based on boolean algebra operations . • these operations allow modification of individual bits in binary numbers.
  • 48.  AND results into 1 when both the input bit are 1.  OR results into 1 when either input bit is 1.  XOR results into 1 when the input bits are different and is known as exclusive OR.  NOT results into the reverse of input bit i.e. 1 becomes 0 and 0 becomes 1.
  • 49. ii. The AND instruction iii.The OR instruction iv.The XOR instruction v. The NOT instruction vi.The NEG instruction