Sim8085 (1) (1)_merged
Sim8085 (1) (1)_merged
LXI H,0030H
LXI D,0080H
MVI C,05H
XX: MOV A,M
STAX D
INX H
INX D
DCR C
JNZ XX
HLT
Input values are:
Memory Location Content
0030H 54H
0031H 12H
0032H 37H
0033H 45H
0034H 87H
LXI H,0040H
LXI D,0074H
MVI C,05H
XX: MOV A,M
STAX D
INX H
DCX D
DCR C
JNZ XX
HLT
Input values are:
Memory Location Content
0030H 54H
0031H 12H
0032H 37H
0033H 45H
0034H 87H
LXI H,0030H
MOV A,M
MVI C,00H
MVI B,08H
YY: RAR
JC XX
INR C
XX: DCR B
JNZ YY
MOV A,C
STA 0040H
HLT
Input value:
Memory Location Content
0030H F2H
Output value:
Memory Location Content
0040H 03H
4. Write an assembly language program to number of 1’s in a 8 bit number
LXI H,0030H
MOV A,M
MVI C,00H
MVI B,08H
YY: RAR
JNC XX
INR C
XX: DCR B
JNZ YY
MOV A,C
STA 0040H
HLT
Input value:
Memory Location Content
0030H A5H
Output value:
Memory Location Content
0040H 04H
5. Write an assembly language program to multiply two 8 bit numbers.
LXI H,0050H
MOV B,M
INX H
MOV C,M
MVI A,00H
MVI D,00H
XX: ADD B
JNC YY
INR D
YY: DCR C
JNZ XX
STA 0061H
MOV A,D
STA 0060H
HLT
Input values are:
Memory Location Content
0050H 02H
0051H 04H
LXI H,0050H
MOV A,M
INX H
CMP M
JNC XX
MOV A,M
XX: STA 0060H
HLT
Output value:
Memory Location Content
0060H B4H
7. Write an assembly language program to find the minimum value which is stored
in consecutive memory location
LXI H,0050H
MOV A,M
INX H
CMP M
JC XX
MOV A,M
XX: STA 0060H
HLT
Output value:
Memory Location Content
0060H 92H
8. Write an assembly language program to find the minimum value which is stored
in n consecutive memory locations
LXI H,0030H
MOV C,M
INX H
MOV A,M
DCR C
XX: INX H
CMP M
JC YY
MOV A,M
YY: DCR C
JNZ XX
STA 0040H
HLT
Output value:
Memory Location Content
0040H 07H
9. Write an assembly language program to find the maximum value which is stored
in n consecutive memory locations
LXI H,0030H
MOV C,M
INX H
MOV A,M
DCR C
XX: INX H
CMP M
JNC YY
MOV A,M
YY: DCR C
JNZ XX
STA 0040H
HLT
Output value:
Memory Location Content
0040H B4H
10. Write an assembly language program to count the occurrences of a particular no
in the given range
LXI H,0040H
MVI C,07H
MVI B,00H
LDA 0060H
YY: CMP M
INX H
JNZ XX
INR B
XX: DCR C
JNZ YY
MOV A,B
STA 0070H
HLT
0060H 03H
Output value:
Memory Location Content
0040H B4H
11. Write an assembly language program to find even numbers in a given array.
LXI H, 0040H
LXI D, 0060H
MVI C, 0AH
BACK: MOV A, M
ANI 01H
JNZ SKIP
MOV A, M
STAX D
INX D
SKIP: INX H
DCR C
JNZ BACK
HLT
LXI H, 0040H
MOV A,M
INX H
MOV B,M
L1: CMP B
JZ OUT
JC L2
SUB B
JMP L1
L2: MOV C,B
MOV B,A
MOV A,C
JMP L1
OUT: STA 0050H
HLT
Output value:
Memory Location Content
0050H 02H
1A: Addition of two 8-bit numbers
LDA 3050H
MOV B,A
LDA 3051H
ADD B
STA 3052H
HLT
LDA 3050H
MOV B,A
LDA 3051H
SUB B
STA 3052H
HLT
LHLD 3050H
XCHG
LHLD 3052H
DAD D
SHLD 3054H
HLT
LHLD 3050H
XCHG
LHLD 3052H
MOV A,E
SUB L
STA 3054H
MOV A, D
SUB H
STA 3055H
HLT
LHLD 3050H
XCHG
MOV C,D
MVI D,00H
LXI H,0000H
NEXT:DAD D
DCR C
JNZ NEXT
SHLD 3070H
HLT
3B: Multiplication of two 8-bit numbers using Shift and Add method
LXI H, 2000H
MOV E,M
MVI D, 00H
INX H
MOV A,M
LXI H,0000H
MVI B,08H
BACK: DAD H
RAL
JNC SKIP
DAD D
SKIP: DCR B
JNZ BACK
SHLD 3050H
HLT
MVI E,00H
LDA 3051H
ADI 00H
JZ EXIT
MOV B,A
LDA 3050H
BACK: CMP B
JC NEXT
SUB B
INR E
JMP BACK
NEXT: STA 3053H
MOV A,E
STA 3052H
EXIT: HLT
LXI B, 0000H
LHLD 3052H
XCHG
LHLD 3050H
MOV A,L
BACK: SUB E
MOV L,A
MOV A,H
SBB D
MOV H,A
JC NEXT
INX B
JMP BACK
NEXT: DAD D
SHLD 3056H
MOV L,C
MOV H,B
SHLD 3054H
HLT
5A: Block Data Shifting
LXI H, 3050H
MVI C,05H
LXI D,3150H
NEXT: MOV A,M
STAX D
INX H
INX D
DCR C
JNZ NEXT
HLT
LXI H,3050H
MVI C,05H
LXI D,3150H
NEXT: MOV B,M
LDAX D
MOV M,A
MOV A,B
STAX D
INX H
INX D
DCR C
JNZ NEXT
HLT
LXI H, 3050H
MVI C,05H
MVI A,FFH
BACK: CMP M
JC NEXT
MOV A,M
NEXT: INX H
DCR C
JNZ BACK
MOV M,A
HLT
EXPT 7
7A: ASCENDING ORDER
MVI B, 04H ;outer loop count
BACK2: LXI H, 2000H ;pointer
MVI C, 04H ;inner loop count
BACK1: MOV A,M ;A=1st number
INX H ;M=2ND location
CMP M ;A-M
JC SKIP ;if 1st is smaller
JZ SKIP ;if equal
MOV D,M ;D=2nd number
MOV M,A ;1ST no is at 2nd location
DCX H ;M points to 1st location
MOV M,D ;2nd number is now at 1st location
INX H ;M points to 2nd number
SKIP: DCR C ;dec count
JNZ BACK1 ;inner loop
DCR B ;dec count
JNZ BACK2 ;outer loop
HLT ;end program
EXPT 8:
8A: COUNTING ODD NUMBERS
LXI H, 3050H
MVI C, 0AH
MVI D, 00H
BACK: MOV A, M
ANI 01H
JZ SKIP
INR D
SKIP: INX H
DCR C
JNZ BACK
MOV A, D
STA 3070H
HLT
8B: SUM OF EVEN NUMBERS
LDA 3000H
MOV C, A
LXI H, 3001H
MVI B, 00H
BACK: MOV A, M
ANI 01H
JNZ SKIP
MOV A,B
ADD M
MOV B,A
SKIP: INX H
DCR C
JNZ BACK
STA 3020H
HLT
EXPT 9: ADDITION
MOV A, #15H
MOV Ro, #20H
ADD A, Ro
MOV DPTR, 2003H
MOVX @DPTR, A
HERE: SJMP HERE
LOOP:
MOV A, M
STAX D
INX H
INX D
DCR C
JNZ LOOP
HLT
Write a program to Reverse the N no. o Array of LDA 3050H ; A = 3050
numbers MOV B, A ; B = 1st element 3050
LDA 3054H ; A = Last element 3054
STA 3050H ; Last element to 3050
MOV A, B ; Load first element into A
STA 3054H ; First element to Last location
LDA 3051H ; A = 2nd Element
MOV B, A ; B = 2nd Element
LDA 3053H ; A = Second last element
STA 3051H ; Store the Second last element into
3052
MOV A, B ; Load 2nd element into A
STA 3053H ; store that 2nd Element into 3053H
HLT
Descending sort of n number of array LXI H, 2000H
MOV C, M
DCR C
LOOP1:
MOV D,C
LXI H, 2001H
LOOP2:
MOV A, M
INX H
CMP M
JNC SKIP
MOV B, M
MOV M, A
DCX H
MOV M, B
INX H
SKIP:
DCR D
JNZ LOOP2
DCR C
JNZ LOOP1
HLT
To Reverse the ‘N’ No of array ; TO REVERSE THE ARRAY OF N ELEMENTS
LXI H, 2000H
MOV B, M
LOOP:
DCX H ; TO EXACTLY POINT TO THE LAST
NUMBER
HLT
Division of 16 bit by 8 bit LXI B, 3050H ; BC = Address of divisor
LHLD 3052H ; HL = Dividend (from 3052H
and 3053H)
XCHG ; DE = Dividend
LOOP:
MOV A, E
SUB L ;A=E-L
MOV A, D
SBB H ; A = D - H - CY
MOV A, D
SBB H
MOV D, A
JMP LOOP
END_LOOP:
; Store Quotient at 3054H
MOV L, C
MOV H, B
SHLD 3054H
HLT
3B: Multiplication of two 8-bit numbers using Shift LXI H, 2000H
and Add method MOV E,M
MVI D, 00H
INX H
MOV A,M
LXI H,0000H
MVI B,08H
BACK: DAD H
RAL
JNC SKIP
DAD D
SKIP: DCR B
JNZ BACK
SHLD 3050H
HLT
LARGEST NUMBER LXI H,3050H
MVI C,05H
MVI A,00H
BACK: CMP M
JNC NEXT
MOV A,M
NEXT: INX H
DCR C
JNZ BACK
MOV M,A
HLT
SMALLEST NUMBER LXI H, 3050H
MVI C,05H
MVI A,FFH
BACK: CMP M
JC NEXT
MOV A,M
NEXT: INX H
DCR C
JNZ BACK
MOV M,A
HLT
COUNTING ODD NUMBERS LXI H, 3050H
MVI C, 0AH
MVI D, 00H
BACK: MOV A, M
ANI 01H
JZ SKIP
INR D
SKIP: INX H
DCR C
JNZ BACK
MOV A, D
STA 3070H
HLT
SUM OF EVEN NUMBERS LDA 3000H
MOV C, A
LXI H, 3001H
MVI B, 00H
BACK: MOV A, M
ANI 01H
JNZ SKIP
MOV A,B
ADD M
MOV B,A
SKIP: INX H
DCR C
JNZ BACK
STA 3020H