80x86 instruction set l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
80x86 Instruction Set PowerPoint Presentation
Download Presentation
80x86 Instruction Set

Loading in 2 Seconds...

play fullscreen
1 / 29

80x86 Instruction Set - PowerPoint PPT Presentation


  • 159 Views
  • Uploaded on

80x86 Instruction Set. Dr. Qiang Lin. Most of assembler instructions presented are supported by all of the following Intel processors: 80186, 80286, 80386, 80486, Pentium (80586) Five major instruction categories: Transfer and Set Arithmetic Logic Jump Miscellaneous. Overview.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '80x86 Instruction Set' - issac


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
overview
Most of assembler instructions presented are supported by all of the following Intel processors:

80186, 80286, 80386, 80486, Pentium (80586)

Five major instruction categories:

Transfer and Set

Arithmetic

Logic

Jump

Miscellaneous

Overview
transfer instructions examples 1
Example 1:

MOV AX,0006h ; Move immediate data to AX register

MOV BX,AX ; Move AX register data to BX register

This small program moves the value of 0006H to the AX register, then it

moves the content of AX (0006h) to the BX register

Example 2:

MOV AX,2000h ; Move immediate data to AX register

MOV DS,AX ; Load DS segment register

MOV SI, 100h ; Load immediate data to SI index register

MOV DI, 120h ; Load immediate data to DI index register

MOV CX, 10h ; Load immediate data to CX register

MOV AH, [SI], ; Move memory data pointed by [SI] to AH register

MOV [DI], AH ; Move AH register to memory located at [DI]

Transfer Instructions Examples 1
set instructions example
Bool := ((A <= B) and (D = E)) or (F <> G)

MOV AX, A

CMP AX, B

SETLE BL

MOV AX, D

CMP AX, E

SETE BH

AND BL, BH

MOV AX, F

CMP AX, G

SETNE BH

OR BL, BH

MOV Bool, BH

Set Instructions Example
transfer instructions examples 2
Example 1:

PUSH DS ; Push current DS content to stack

MOV AX,0 ; Move immediate data to AX register

PUSH AX ; Push 0 to stack

MOV AL, 0A1H

CBW

CWD

Example 2:

IN AL, 60h ; Read keyboard port

MOV DX,378h ; Point at LPT1: data port

IN AL, DX ; Read data from printer port

INC AX ; Bump ASCII code by one

OUT DX, AL ; Write data in AL to printer port

Transfer Instructions Examples 2
arithmetic instructions examples 1
Example 1: J = K + M

MOV AX, K

ADD AX,M

MOV J, AX

Example 2: J = K + M + N + P

MOV AX, K

ADD AX,M

ADD AX,N

ADD AX,P

MOV J, AX

Arithmetic Instructions Examples 1
arithmetic instructions examples 2
Example 1: J = K - J

MOV AX, K

SUB J, AX

MOV J, AX

Example 1: J = J - (K + M)

MOV AX, J

SUB AX, K

SUB AX, M

MOV J, AX

or

MOV AX, K

ADD AX, M

SUB J, AX

Arithmetic Instructions Examples 2
arithmetic instructions examples 3
Example 1: ((J*7 + K) * 6 + M) * 2

MOV BX, J

IMUL BX, 7

ADD BX, K

IMUL BX, 6

ADD BX, M

ADD BX, BX

Example 2: J = K/ M (unsigned)

MOV AX, K

MOV DX, 0 ; Zero extend unsigned value in AX to DX

DIV M

MOV J, AX

Arithmetic Instructions Examples 3
shl sal sar instructions
SHL/SAL

Move each bit in destination operand one bit to left by No. of times specified by count operand

Zeros fill vacated positions at L.O. bit; H.O. bit shifts into carry flag

SHL AH, 4 ; Move L.O. bits to H.O. position

SAR

Move each bit in destination operand one bit to right by No. of times specified by count operand

H.O. bit fills vacated position at H.O. bit; L.O. bit shifts into carry flag

SAR AH, 4

SHL\SAL\SAR Instructions
80x86 logic instructions 2
Except NOT, AND, OR and XOR instructions affect flags as follows:

Clear carry flag

Clear overflow flag

Set zero flag if result is zero and clear it otherwise

Copy H.O. bit of result into sign flag

Set parity flag according to parity (number of one bits) in result

Scramble auxiliary carry flag

NOT instruction does not affect any flags

80x86 Logic Instructions 2
slide22

SHR\SHLD\SHRD Instructions

  • SHR
  • SHLD/SHRD
    • Provide double precision shift left and right operations, respectively
    • Available only on 80386 and later processors with forms of

SHLD operand1, operand2, immediate

SHLD operand1, operand2, CL

SHRD operand1, operand2, immediate

SHRD operand1, operand2, CL

slide23

SHRD Instruction Example

  • Let
    • ax contains a value in range 0..99 representing a year (1900..1999)
    • bx contains a value in the range 1..31 representing a day, and
    • cx contains a value in the range 1..12 representing a month
  • Pack these data into dx as follows:

SHRD DX, AX, 7

SHRD DX, BX, 5

SHRD DX, CX, 4

80x86 miscellaneous instructions
80x86 Miscellaneous Instructions
  • LEA - Loads specified 16 or 32 bit general purpose register with effective
  • address of the specified memory location using formats of:
  • LEA reg16, mem or LEA reg32, mem(only for 80386 or later processors)
    • Examples:
        • LEA AX, [BX]
        • LEA BX, 3[BX]
        • LEA AX, 3[BX]
        • LEA BX, 4[BP+SI]
        • LEA AX, -123[DI]
jump instructions examples 1
Example

POP AX

JMP AX

Example

CALL SUB

CALL DwordTbl[BX]

Example

SUB: PUSH AX

PUSH BX

….

POP BX

POP AX

RET

Jump Instructions Examples 1