program

20
 1 8 BIT ADDITION AIM To add two 8 bit numbers. PROGRAM ADDRESS LOCATION MNEUMONICS OPCODE COMMENT 8000 8003 8004 8005 8006 8007 8008 LXI H,9000H MOV A,M INX H ADD M INX H MOV M,A HLT 21,00,90 7E 23 86 23 77 76 [HL]  9000H [A]  [M] [H]  [H]+1 [A]  [A]+[M] [H]  [H]+1 [M]  [A] END INPUT 9000 07h 9001 01h OUTPUT 9002 08h

Upload: jogeorge85

Post on 07-Oct-2015

6 views

Category:

Documents


0 download

DESCRIPTION

8085 pgms

TRANSCRIPT

  • 1

    8 BIT ADDITION

    AIM

    To add two 8 bit numbers.

    PROGRAM

    ADDRESS

    LOCATION

    MNEUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8005

    8006

    8007

    8008

    LXI H,9000H

    MOV A,M

    INX H

    ADD M

    INX H

    MOV M,A

    HLT

    21,00,90

    7E

    23

    86

    23

    77

    76

    [HL]9000H

    [A][M]

    [H][H]+1

    [A][A]+[M]

    [H][H]+1

    [M][A]

    END

    INPUT

    9000 07h

    9001 01h

    OUTPUT

    9002 08h

  • 2

    8 BIT SUBTRACTION

    AIM

    To subtract two 8 bit numbers.

    PROGRAM

    ADDRESS

    LOCATION

    MNEUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8005

    8006

    8007

    8008

    LXI H,9000H

    MOV A,M

    INX H

    SUB M

    INX H

    MOV M,A

    HLT

    21,00,90

    7E

    23

    96

    23

    77

    76

    [HL]9000H

    [A][M]

    [H][H]+1

    [A][A]-[M]

    [H][H]+1

    [M][A]

    END

    INPUT

    9000 07h

    9001 02h

    OUTPUT

    9002 05h

  • 3

    8 BIT MULTIPLICATION

    AIM

    To multiply two 8 bit numbers.

    PROGRAM

    INPUT

    9000 02h

    9001 02h

    OUTPUT9050 04h

    ADDRESS

    LOCATION

    MNEUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8005

    8006

    8008

    8009

    800A

    800D

    8010

    LXI H,9000H

    MOV C,M

    INX H

    MOV B,M

    MVI A,00

    ADD C

    DEC B

    JNZ 8008

    STA 9050H

    HLT

    21, 00,90

    4E

    23

    46

    3E,00H

    81

    05

    C2,08,80

    32,50,90

    76

    [HL]9000H

    [C][M]

    [H][H]+1

    [B][M]

    [A]00H

    [A][A]+[C]

    [B][B]-1

    JUMP IF NON

    ZERO TO 8008H

    9050[A]

    END

  • 4

    8 BIT DIVISION

    AIM

    To divide two 8 bit numbers.

    PROGRAM

    ADDRESS

    LOCATION

    MNEUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8006

    8007

    8008

    8009

    800A

    800D

    8010

    8011

    8014

    LXI H,9000H

    MOV A,M

    MVI C,00H

    INX H

    SUB M

    INR C

    CMP M

    JNC 8007

    STA 9050H

    MOV A,C

    STA 9051H

    HLT

    21, 00,90

    7E

    0E,00H

    23

    96

    0C

    BE

    D2,07,80

    32,50,90

    79

    32,51,90

    76

    [HL]9000H

    [A][M]

    [C]00H

    [H][H]+1

    [A][A]-[M]

    [C][C]+1

    COMPARE A

    AND M

    JUMP IF NO

    CARRY TO 8007H

    9050[A]

    [A][C]

    9051[A]

    END

  • 5

    NUMBER OF 1S IN A BINARY NUMBER

    BLOCK MOVEMENT

    AIM

    To transfer data from location starting from 9000 to location starting from 7000

    ADDRESS

    LOCATION

    MNUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8006

    8008

    8009

    800C

    800D

    800E

    8011

    8012

    8015

    LXI H,9000H

    MOV A,M

    MVI C,08H

    MVI D,00H

    RLC

    JNC 800D

    INR B

    DCR C

    JNZ 8008

    MOV A,D

    STA 9050

    HLT

    21,00,90

    7E

    0E,08H

    16,00H

    07

    D2,0D,80

    14

    0D

    C2,08,80

    7A

    32,50,90

    76

    [HL]9000H

    [A][M]

    [C]08H

    [D]00H

    ROTATE LEFT

    WIT CARRY

    JUMP IF NO

    CARRY TO

    800D

    [B][B]+1

    [C][C]-1

    JUMP IF NON

    ZERO TO 8008

    [A][D]

    9050[A]

    END

  • 6

    INPUT

    9000 03h

    9001 08h

    9002 09h

    9003 04h

    OUTPUT

    7000 08h

    7001 09h

    7002 04h

    ADDRESS

    LOCATION

    MNUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8007

    8008

    8009

    800A

    800B

    800C

    800D

    LXI H,9000H

    MOV C,M

    LXI D,7000H

    INX H

    MOV A,M

    STAX D

    INX D

    DCR C

    JNZ 8007

    HLT

    21,00,90

    4E

    11,00,70

    23

    7E

    12

    13

    0D

    C2,07,80

    76

    [HL]9000H

    [C][M]

    [DE]7000H

    [HL][HL]+1

    [A][M]

    [DE][A]

    [DE][DE]+1

    [C][C]-1

    JUMP IF NON

    ZERO TO 8007

    END

  • 7

    LOOK UP TABLE

    AIM

    To find square of a number using look up table.

    PROGRAM

    ADDRESS

    LOCATION

    MNUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8005

    8006

    8007

    800A

    LXI H ,9000H

    MOV A,M

    ADD L

    MOV L,A

    MOV A,M

    STA 9050

    HLT

    21,00,90

    7E

    85

    6F

    7E

    32,50,90

    76

    LOAD HL PAIR WITH

    9000H

    MOVE CONTENT IN

    LOCATION TO A

    REGISTER

    [A]+[L]=[A]

    MOVE CONTENT IN

    A TO L REGISTER

    MOVE CONTENT IN

    LOCATION TO A

    REGITER

    STORE RESULT IN

    9050H

    END

  • 8

    INPUT

    9000 04h

    9001 01h

    9002 04h

    9003 09h

    9004 16h

    9005 25h

    9006 36h

    9007 49h

    9008 64h

    9009 81h

    OUTPUT

    9050 16h

    SORT AN ARRAY IN ASCENDING ORDER

    AIM

    To store numbers in an array in ascending order.

    PROGRAM

    ADDRESS

    LOCATION

    MNUMONICS OPCODE COMMENT

  • 9

    8000

    8003

    8004

    8005

    8008

    8009

    800A

    800B

    800C

    800D

    800E

    800F

    8012

    8013

    8014

    8015

    8016

    8017

    801A

    801B

    801D

    LXI H,9050H

    MOV B,M

    DEC B

    LXI H,9050H

    MOV C,M

    DCR C

    INX H

    MOV A,M

    INX H

    MOV D,M

    CMP D

    JC 8016

    MOV M,A

    DCX H

    MOV M,D

    INX H

    DCR C

    JNZ 800B

    DCR B

    JNZ 8005

    HLT

    21,50,90

    46

    05

    21,50,90

    4E

    0D

    23

    7E

    23

    56

    BA

    DA,16,80

    77

    2B

    72

    23

    0D

    C2,0B,80

    05

    C2,05,80

    76

    [HL]9050H

    [B][M]

    [B][B]-1

    [HL]9050H

    [C][M]

    [C][C]-1

    [HL][HL]+1

    [A][M]

    [HL][HL]+1

    [D][M]

    COMPARE A AND

    D

    JUMP IF CARRY

    TO 8016

    [M][A]

    [HL][HL]-1

    [M][D]

    [HL][HL]+1

    [D][D]-1

    JUMP IF NON

    ZERO TO800B

    [B][B]-1

    JUMP IF

    NONZERO TO

    8005

    END

  • 10

    INPUT

    9050 06h

    9051 04h

    9052 08h

    9053 03h

    9054 09h

    9055 02h

    9056 06h

    OUTPUT

    9051 02h

    9052 03h

    9053 04h

    9054 06h

    9055 08h

    9056 09h

    RESULT

    Program to store numbers in an array in ascending order is executed and output

    is verified.

  • 11

    SORT AN ARRAY IN DESCENDING ORDER

    AIM

    To store numbers in an array in descending order.

    PROGRAM

    ADDRESS

    LOCATION

    MNUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8005

    8008

    8009

    800A

    800B

    800C

    800D

    800E

    800F

    8012

    8013

    8014

    8015

    8016

    LXI H,9050H

    MOV B,M

    DEC B

    LXI H,9050H

    MOV C,M

    DCR C

    INX H

    MOV A,M

    INX H

    MOV D,M

    CMP D

    JNC 8016

    MOV M,A

    DCX H

    MOV M,D

    INX H

    DCR C

    21,50,90

    46

    05

    21,50,90

    4E

    0D

    23

    7E

    23

    56

    BA

    D2,16,80

    77

    2B

    72

    23

    0D

    [HL]9050H

    [B][M]

    [B][B]-1

    [HL]9050H

    [C][M]

    [C][C]-1

    [HL][HL]+1

    [A][M]

    [HL][HL]+1

    [D][M]

    COMPARE A AND

    D

    JUMP IF NO

    CARRY TO 8016

    [M][A]

    [HL][HL]-1

    [M][D]

    [HL][HL]+1

  • 12

    INPUT

    9050 05h

    9051 03h

    9052 04h

    9053 02h

    9054 05h

    9055 10h

    OUTPUT

    9051 10h

    9052 05h

    9053 04h

    9054 03h

    9055 02h

    RESULT

    8017

    801A

    801B

    801D

    JNZ 800B

    DCR B

    JNZ 8005

    HLT

    C2,0B,80

    05

    C2,05,80

    76

    [D][D]-1

    JUMP IF NON

    ZERO TO800B

    [B][B]-1

    JUMP IF

    NONZERO TO

    8005

    END

  • 13

    Program to store numbers in an array in descending order is executed and

    output is verified.

    ODD OR EVEN NUMBER

    AIM

    To check whether the given number is odd or even.

    PROGRAM

    ADDRESS

    LOCATION

    MNEUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8006

    8009

    LX H,9000H

    MOV A,M

    ANI,01H

    STA 9050

    HLT

    21,00,90

    7E

    E6,01H

    32,50,90

    76

    [HL]9000H

    [A][M]

    [A][A] +01H

    9050[A]

    END

    INPUT

    9000 02h

    OUTPUT

    9050 00h

    RESULT

  • 14

    Program to check whether the given number is odd even is executed and output

    is verified.

    LARGEST NUMBER IN AN ARRAY

    AIM

    To find largest number in an array.

    PROGRAM

    ADDRESS

    LOCATION

    MNEUMONICS OPCODE

    COMMENT

    8000

    8003

    8004

    8005

    8006

    8007

    8008

    800B

    800C

    800F

    8012

    8015

    LXI H,9000H

    MOV B,M

    INX H

    MOV A,M

    INX H

    DCR B

    JZ 8012

    CMP M

    JNC 8006

    JMP 8005

    STA 9050H

    HLT

    21,00,90

    46

    23

    7E

    23

    05

    CA,12,80

    BE

    D2,06,80

    C3,05,80

    32,50,90

    76

    [HL]9000H

    [B][M]

    [HL][HL]+1

    [A][M]

    [HL][HL]+1

    [B][B]-1

    JUMP IF ZERO TO

    8012

    COMPARE A AND

    M

    JUMP IF NO

    CARRY TO

    8006

    JUMP TO 8005

    9050[A]

    END

  • 15

    SMALLEST NUMBER IN AN ARRAY

    AIM

    To find smallest number in an array.

    PROGRAM

    13. Write a program to find smallest number in an array

    ADDRESS

    LOCATION

    MNEUMONICS OPCODE

    COMMENT

    8000

    8003

    8004

    8005

    8006

    8007

    8008

    800B

    800C

    800F

    8012

    8015

    LXI H,9000H

    MOV B,M

    INX H

    MOV A,M

    INX H

    DCR B

    JZ 8012

    CMP M

    JC 8006

    JMP 8005

    STA 9050H

    HLT

    21,00,90

    46

    23

    7E

    23

    05

    CA,12,80

    BE

    DA,06,80

    C3,05,80

    32,50,90

    76

    [HL]9000H

    [B][M]

    [HL][HL]+1

    [A][M]

    [HL][HL]+1

    [B][B]-1

    JUMP IF ZERO TO

    8012

    COMPARE A AND

    M

    JUMP IF CARRY

    TO

    8006

    JUMP TO 8005

    9050[A]

    END

  • 16

    ADDITION OF TWO 16-BIT NUMBERS

    AIM

    To add two 16-bit numbers.

    PROGRAM

    ADDRESS

    LOCATION

    MNUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8006

    8007

    8008

    8009

    800A

    800D

    800E

    8011

    8012

    8015

    8016

    8017

    8018

    801B

    LXI H,9000H

    MOV A,M

    MVI D,00H

    INX H

    MOV C,M

    INX H

    ADD M

    JNC 8012

    INR C

    JNC 8012

    INR D

    STA 9050

    INX H

    MOV A,C

    ADD M

    JNZ 801C

    INR D

    21,00,90

    7E

    16,00H

    23

    4E

    23

    86

    D2,12,80

    0C

    D2,12,80

    14

    32,50,90

    23

    79

    86

    D2,1C,80

    14

    [HL]9000H

    [A][M]

    [D]00H

    [HL][HL]+1

    [C][M]

    [HL][HL]+1

    [A][A]+[M]

    JUMP IF NO

    CARRY TO 8012

    [C][C]+1

    JUMP IF NO

    CARRY TO8012

    [D][D]+1

    9050[A]

    [HL][HL]+1

    [A][C]

    [A][A]+[M]

    JUMP IF NON

    ZERO TO 801C

  • 17

    SUBTRACTION OF TWO 16 BIT NUMBERS

    AIM

    To subtract two 16 bit numbers.

    PROGRAM

    801C

    801F

    8020

    8023

    STA 9051

    MOV A,D

    STA 9052

    HLT

    32,51,90

    7A

    32,52,90

    76

    [D][D]+1

    9051[A]

    [A][D]

    9052[A]

    END

    ADDRESS

    LOCATION

    MNUMONICS OPCODE COMMENT

    8000

    8003

    8005

    8006

    8007

    8008

    8009

    800A

    800B

    800E

    800F

    LXI H,9000H

    MVI E,00H

    MOV D,M

    INX H

    MOV C,M

    INX H

    MOV A,D

    SUB M

    JNC 8012

    DEC C

    INR E

    21,00,90

    1E,00H

    56

    23

    4E

    23

    7A

    96

    D2,12,80

    0D

    1C

    [HL]9000H

    [E]00H

    [D][M]

    [HL][HL]+1

    [C][M]

    [HL][HL]+1

    [A][A]+[D]

    [A][A]-[M]

    JUMP IF NO

    CARRY TO 8012

    [C][C]-1

  • 18

    RESULT

    Program to subtract two 16 bit numbers is executed and output is verified.

    8010

    8011

    8012

    8015

    8016

    8017

    8018

    801B

    801C

    801D

    801E

    8021

    8022

    8025

    CMA

    INR A

    STA 9050

    MOV A,C

    INX H

    SUB M

    JNC 801E

    INR E

    CMA

    INR A

    STA 9051

    MOV A,E

    STA 9052

    HLT

    2F

    3C

    32,50,90

    79

    23

    96

    D2,1E,80

    1C

    2F

    3C

    32,51,90

    7B

    32,52,90

    76

    [E][E]+1

    COMPLIMENT A

    [A][A]+1

    9050[A]

    [A][C]

    [HL][HL]+1

    [A][A]-[M]

    JUMP IF NO

    CARRY TO 801E

    [E][E]+1

    COMPLIMENT A

    [A][A]+1

    9051[A]

    [A][E]

    9052[A]

    END

  • 19

    SUM OF 16 BIT ARRAY

    AIM

    To find the sum of 16 bit array.

    PROGRAM

    ADDRESS

    LOCATION

    MNUMONICS OPCODE COMMENT

    8000

    8003

    8004

    8005

    8006

    8007

    8008

    8009

    800A

    800C

    800D

    800E

    8011

    8012

    8013

    8014

    LXI H,9000H

    MVI E,M

    MOV C,M

    INX H

    MOV A,M

    INX H

    MOV B,M

    DEC C

    MVI D,00H

    INX H

    ADD M

    JNC 8013

    INR D

    INR A

    INX H

    DCR E

    21,00,90

    5E

    4E

    23

    7E

    23

    46

    1D

    16,00H

    23

    86

    D2,13,80

    14

    3C

    23

    1D

    [HL]9000H

    [E][M]

    [C][M]

    [HL][HL]+1

    [A][M]

    [HL][HL]+1

    [B][M]

    [D][D]-1

    [D]00H

    [HL][HL]+1

    [A][A]+[M]

    JUMP IF NO

    CARRY TO 8013

    [D][D]-1

    [A][A]+1

    [HL][HL]+1

  • 20

    8015

    8018

    801B

    801C

    801F

    8020

    8021

    8022

    8025

    8026

    8027

    8028

    8029

    802C

    802F

    8030

    8033

    JNZ 800C

    STA 9050

    MOV A,B

    LXI H,9003

    DCR C

    INX H

    ADD M

    JNC 8027

    INR D

    INR A

    INX H

    DCR C

    JNZ 8020

    STA 9051

    MOV A,D

    STA 9052

    HLT

    C2,0C,80

    32,50,90

    78

    21,03,90

    0D

    23

    86

    D2,27,80

    14

    3C

    23

    0D

    C2,20,80

    32,51,90

    7A

    32,52,90

    76

    [E][E]-1

    9050[A]

    [A][B]

    [HL]9003H

    [C][C]-1

    [HL][HL]+1

    [A][A]+[M]

    JUMP IF NO

    CARRY TO 8027

    [D][D]+1

    [A][A]+1

    [HL][HL]+1

    [D][D]-1

    JUMP IF NON

    ZERO TO8020

    9051[A]

    [A][D]

    9052[A]

    END