0% found this document useful (0 votes)
265 views

8 Bit Addition: To Add Two 8 Bit Numbers

The program adds two 16-bit numbers stored in memory locations starting at 9000H. It loads the first 8-bit number into the A register and the next 8-bit number into the C register. It then adds the 8-bit numbers at the current memory location to the A register. If there is a carry, it increments the C register. This process is repeated for all 8-bit numbers in the 16-bit values. The result is stored in the A and C registers.

Uploaded by

jogeorge85
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
265 views

8 Bit Addition: To Add Two 8 Bit Numbers

The program adds two 16-bit numbers stored in memory locations starting at 9000H. It loads the first 8-bit number into the A register and the next 8-bit number into the C register. It then adds the 8-bit numbers at the current memory location to the A register. If there is a carry, it increments the C register. This process is repeated for all 8-bit numbers in the 16-bit values. The result is stored in the A and C registers.

Uploaded by

jogeorge85
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

8 BIT ADDITION

AIM
To add two 8 bit numbers.
PROGRAM
ADDRESS
LOCATION

MNEUMONICS

OPCODE

COMMENT

8000

LXI H,9000H

21,00,90

[HL]9000H

8003

MOV A,M

7E

[A][M]

8004

INX H

23

[H][H]+1

8005

ADD M

86

[A][A]+[M]

8006

INX H

23

[H][H]+1

8007

MOV M,A

77

[M][A]

8008

HLT

76

END

INPUT
9000 07h
9001 01h
OUTPUT
9002 08h
1

8 BIT SUBTRACTION
AIM
To subtract two 8 bit numbers.
PROGRAM

ADDRESS
LOCATION

MNEUMONICS

OPCODE

COMMENT

8000

LXI H,9000H

21,00,90

[HL]9000H

8003

MOV A,M

7E

[A][M]

8004

INX H

23

[H][H]+1

8005

SUB M

96

[A][A]-[M]

8006

INX H

23

[H][H]+1

8007

MOV M,A

77

[M][A]

8008

HLT

76

END

INPUT
9000 07h
9001 02h

OUTPUT
9002 05h

8 BIT MULTIPLICATION
AIM
To multiply two 8 bit numbers.
PROGRAM

ADDRESS
LOCATION

MNEUMONICS

OPCODE

COMMENT

8000

LXI H,9000H

21, 00,90

[HL]9000H

8003

MOV C,M

4E

[C][M]

8004

INX H

23

[H][H]+1

8005

MOV B,M

46

[B][M]

8006

MVI A,00

3E,00H

[A]00H

8008

ADD C

81

[A][A]+[C]

8009

DEC B

05

[B][B]-1

800A

JNZ 8008

C2,08,80

800D

STA 9050H

32,50,90

JUMP IF NON
ZERO TO 8008H

8010

HLT

76

9050[A]
END

INPUT
9000 02h
9001 02h
OUTPUT9050 04h
3

8 BIT DIVISION
AIM
To divide two 8 bit numbers.
PROGRAM

ADDRESS
LOCATION

MNEUMONICS

OPCODE

COMMENT

8000

LXI H,9000H

21, 00,90

[HL]9000H

8003

MOV A,M

7E

[A][M]

8004

MVI C,00H

0E,00H

[C]00H

8006

INX H

23

[H][H]+1

8007

SUB M

96

[A][A]-[M]

8008

INR C

0C

[C][C]+1

8009

CMP M

BE

800A

JNC 8007

D2,07,80

COMPARE A
AND M

800D

STA 9050H

32,50,90

8010

MOV A,C

79

8011

STA 9051H

32,51,90

8014

HLT

76

JUMP IF NO
CARRY TO 8007H
9050[A]
[A][C]
9051[A]
END

NUMBER OF 1S IN A BINARY NUMBER

ADDRESS
MNUMONICS
LOCATION

OPCODE

COMMENT

8000

LXI H,9000H

21,00,90

[HL]9000H

8003

MOV A,M

7E

[A][M]

8004

MVI C,08H

0E,08H

[C]08H

8006

MVI D,00H

16,00H

[D]00H

8008

RLC

07

8009

JNC 800D

D2,0D,80

ROTATE LEFT
WIT CARRY

800C

INR B

14

JUMP IF NO
CARRY TO
800D

800D

DCR C

0D

[B][B]+1

800E

JNZ 8008

C2,08,80

[C][C]-1

8011

MOV A,D

7A

8012

STA 9050

32,50,90

JUMP IF NON
ZERO TO 8008

8015

HLT

76

[A][D]
9050[A]
END

BLOCK MOVEMENT
AIM
To transfer data from location starting from 9000 to location starting from 7000
5

ADDRESS
LOCATION

MNUMONICS

OPCODE

COMMENT

8000

LXI H,9000H

21,00,90

[HL]9000H

8003

MOV C,M

4E

[C][M]

8004

LXI D,7000H

11,00,70

[DE]7000H

8007

INX H

23

[HL][HL]+1

8008

MOV A,M

7E

[A][M]

8009

STAX D

12

[DE][A]

800A

INX D

13

[DE][DE]+1

800B

DCR C

0D

[C][C]-1

800C

JNZ 8007

C2,07,80

800D

HLT

76

JUMP IF NON
ZERO TO 8007
END

INPUT
9000 03h
9001 08h
9002 09h
9003 04h

OUTPUT
7000 08h
7001 09h
7002 04h

LOOK UP TABLE

AIM
To find square of a number using look up table.
PROGRAM

ADDRESS
LOCATION

MNUMONICS

OPCODE

COMMENT

8000

LXI H ,9000H

21,00,90

LOAD HL PAIR WITH


9000H

8003

MOV A,M

7E

8004

ADD L

85

[A]+[L]=[A]

8005

MOV L,A

6F

MOVE CONTENT IN
A TO L REGISTER

8006

MOV A,M

7E

8007

STA 9050

32,50,90

MOVE CONTENT IN
LOCATION TO A
REGISTER

MOVE CONTENT IN
LOCATION TO A
REGITER
STORE RESULT IN
9050H

800A

HLT

76
END

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

8000

LXI H,9050H

21,50,90

[HL]9050H

8003

MOV B,M

46

[B][M]

8004

DEC B

05

[B][B]-1

8005

LXI H,9050H

21,50,90

[HL]9050H

8008

MOV C,M

4E

[C][M]

8009

DCR C

0D

[C][C]-1

800A

INX H

23

[HL][HL]+1

800B

MOV A,M

7E

[A][M]

800C

INX H

23

[HL][HL]+1

800D

MOV D,M

56

[D][M]

800E

CMP D

BA

800F

JC 8016

DA,16,80

COMPARE A AND
D

8012

MOV M,A

77

8013

DCX H

2B

8014

MOV M,D

72

8015

INX H

23

8016

DCR C

0D

8017

JNZ 800B

C2,0B,80

801A

DCR B

05

801B

JNZ 8005

C2,05,80

JUMP IF NON
ZERO TO800B

801D

HLT

76

[B][B]-1

JUMP IF CARRY
TO 8016
[M][A]
[HL][HL]-1
[M][D]
[HL][HL]+1
[D][D]-1

JUMP IF
NONZERO TO
8005
END
9

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.

10

SORT AN ARRAY IN DESCENDING ORDER


AIM
To store numbers in an array in descending order.
PROGRAM
ADDRESS
LOCATION

MNUMONICS

OPCODE

COMMENT

8000

LXI H,9050H

21,50,90

[HL]9050H

8003

MOV B,M

46

[B][M]

8004

DEC B

05

[B][B]-1

8005

LXI H,9050H

21,50,90

[HL]9050H

8008

MOV C,M

4E

[C][M]

8009

DCR C

0D

[C][C]-1

800A

INX H

23

[HL][HL]+1

800B

MOV A,M

7E

[A][M]

800C

INX H

23

[HL][HL]+1

800D

MOV D,M

56

[D][M]

800E

CMP D

BA

800F

JNC 8016

D2,16,80

COMPARE A AND
D

8012

MOV M,A

77

8013

DCX H

2B

8014

MOV M,D

72

8015

INX H

23

8016

DCR C

0D
11

JUMP IF NO
CARRY TO 8016
[M][A]
[HL][HL]-1
[M][D]
[HL][HL]+1

8017

JNZ 800B

C2,0B,80

[D][D]-1

801A

DCR B

05

801B

JNZ 8005

C2,05,80

JUMP IF NON
ZERO TO800B

801D

HLT

76

[B][B]-1
JUMP IF
NONZERO TO
8005
END

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

12

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

LX H,9000H

21,00,90

[HL]9000H

8003

MOV A,M

7E

[A][M]

8004

ANI,01H

E6,01H

[A][A] +01H

8006

STA 9050

32,50,90

9050[A]

8009

HLT

76

END

INPUT
9000 02h

OUTPUT
9050 00h
RESULT

13

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
MNEUMONICS
LOCATION

OPCODE

COMMENT

8000

LXI H,9000H

21,00,90

[HL]9000H

8003

MOV B,M

46

[B][M]

8004

INX H

23

[HL][HL]+1

8005

MOV A,M

7E

[A][M]

8006

INX H

23

[HL][HL]+1

8007

DCR B

05

[B][B]-1

8008

JZ 8012

CA,12,80

800B

CMP M

BE

JUMP IF ZERO TO
8012

800C

JNC 8006

D2,06,80

800F

JMP 8005

C3,05,80

8012

STA 9050H

32,50,90

JUMP IF NO
CARRY TO

8015

HLT

76

8006

COMPARE A AND
M

JUMP TO 8005
9050[A]
END

14

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
MNEUMONICS
LOCATION

OPCODE

COMMENT

8000

LXI H,9000H

21,00,90

[HL]9000H

8003

MOV B,M

46

[B][M]

8004

INX H

23

[HL][HL]+1

8005

MOV A,M

7E

[A][M]

8006

INX H

23

[HL][HL]+1

8007

DCR B

05

[B][B]-1

8008

JZ 8012

CA,12,80

800B

CMP M

BE

JUMP IF ZERO TO
8012

800C

JC 8006

DA,06,80

800F

JMP 8005

C3,05,80

8012

STA 9050H

32,50,90

JUMP IF CARRY
TO

8015

HLT

76

8006

COMPARE A AND
M

JUMP TO 8005
9050[A]
END

15

ADDITION OF TWO 16-BIT NUMBERS


AIM
To add two 16-bit numbers.
PROGRAM
ADDRESS
LOCATION

MNUMONICS

OPCODE

COMMENT

8000

LXI H,9000H

21,00,90

[HL]9000H

8003

MOV A,M

7E

[A][M]

8004

MVI D,00H

16,00H

[D]00H

8006

INX H

23

[HL][HL]+1

8007

MOV C,M

4E

[C][M]

8008

INX H

23

[HL][HL]+1

8009

ADD M

86

[A][A]+[M]

800A

JNC 8012

D2,12,80

800D

INR C

0C

JUMP IF NO
CARRY TO 8012

800E

JNC 8012

D2,12,80

[C][C]+1
JUMP IF NO
CARRY TO8012

8011

INR D

14

8012

STA 9050

32,50,90

8015

INX H

23

8016

MOV A,C

79

8017

ADD M

86

8018

JNZ 801C

D2,1C,80

801B

INR D

14

16

[D][D]+1
9050[A]
[HL][HL]+1
[A][C]
[A][A]+[M]
JUMP IF NON
ZERO TO 801C

801C

STA 9051

32,51,90

[D][D]+1

801F

MOV A,D

7A

9051[A]

8020

STA 9052

32,52,90

[A][D]

8023

HLT

76

9052[A]
END

SUBTRACTION OF TWO 16 BIT NUMBERS


AIM
To subtract two 16 bit numbers.
PROGRAM
ADDRESS
LOCATION

MNUMONICS

OPCODE

COMMENT

8000

LXI H,9000H

21,00,90

[HL]9000H

8003

MVI E,00H

1E,00H

[E]00H

8005

MOV D,M

56

[D][M]

8006

INX H

23

[HL][HL]+1

8007

MOV C,M

4E

[C][M]

8008

INX H

23

[HL][HL]+1

8009

MOV A,D

7A

[A][A]+[D]

800A

SUB M

96

[A][A]-[M]

800B

JNC 8012

D2,12,80

800E

DEC C

0D

JUMP IF NO
CARRY TO 8012

800F

INR E

1C

17

[C][C]-1

8010

CMA

2F

[E][E]+1

8011

INR A

3C

COMPLIMENT A

8012

STA 9050

32,50,90

[A][A]+1

8015

MOV A,C

79

9050[A]

8016

INX H

23

[A][C]

8017

SUB M

96

[HL][HL]+1

8018

JNC 801E

D2,1E,80

[A][A]-[M]

801B

INR E

1C

801C

CMA

2F

JUMP IF NO
CARRY TO 801E

801D

INR A

3C

801E

STA 9051

32,51,90

8021

MOV A,E

7B

8022

STA 9052

32,52,90

8025

HLT

76

[E][E]+1
COMPLIMENT A
[A][A]+1
9051[A]
[A][E]
9052[A]
END

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

18

SUM OF 16 BIT ARRAY


AIM
To find the sum of 16 bit array.
PROGRAM
ADDRESS
LOCATION

MNUMONICS

OPCODE

COMMENT

8000

LXI H,9000H

21,00,90

[HL]9000H

8003

MVI E,M

5E

[E][M]

8004

MOV C,M

4E

[C][M]

8005

INX H

23

[HL][HL]+1

8006

MOV A,M

7E

[A][M]

8007

INX H

23

[HL][HL]+1

8008

MOV B,M

46

[B][M]

8009

DEC C

1D

[D][D]-1

800A

MVI D,00H

16,00H

[D]00H

800C

INX H

23

[HL][HL]+1

800D

ADD M

86

[A][A]+[M]

800E

JNC 8013

D2,13,80

JUMP IF NO
CARRY TO 8013

8011

INR D

14

8012

INR A

3C

8013

INX H

23

8014

DCR E

1D
19

[D][D]-1
[A][A]+1
[HL][HL]+1

8015

JNZ 800C

C2,0C,80

8018

STA 9050

32,50,90

801B

MOV A,B

78

9050[A]

801C

LXI H,9003

21,03,90

[A][B]

801F

DCR C

0D

[HL]9003H

8020

INX H

23

[C][C]-1

8021

ADD M

86

[HL][HL]+1

8022

JNC 8027

D2,27,80

[A][A]+[M]

8025

INR D

14

8026

INR A

3C

8027

INX H

23

8028

DCR C

0D

8029

JNZ 8020

C2,20,80

[E][E]-1

JUMP IF NO
CARRY TO 8027

[D][D]+1
[A][A]+1
[HL][HL]+1
[D][D]-1

802C

STA 9051

32,51,90

802F

MOV A,D

7A

8030

STA 9052

32,52,90

8033

HLT

76

JUMP IF NON
ZERO TO8020
9051[A]
[A][D]
9052[A]
END

20

You might also like