program
DESCRIPTION
8085 pgmsTRANSCRIPT
-
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