Microprocessors and Microcontroller Lab (EC3P004)
Name : Sidharth A Narayanan
Roll No : 20EC01016
Experiment No : 3
Date : 25th Aug 2022
Code to load data
LXI H,F000H
MVI B,14
LOOP: MOV M,B
INX H F000 14 F100
F101
14
13
DCR B F001
F002
13
12 F102 12
JNZ LOOP F003 11 F103
F104
11
10
F004 10
F005 0F F105 0F
Solution 1(a): F006 0E F106 0E
F007 0D F107 0D
Transferring data F008 0C
After Data F108 0C
Transfer
F009 0B F109 0B
LXI H,F000H F00A
F00B
0A
9
F10A
F10B
0A
9
LXI D,F100H F00C 8 F10C 8
MVI B,14 F00D
F00E
7
6
F10D
F10E
7
6
LOOP2: MOV A,M F00F 5 F10F 5
INX H F010
F011
4
3
F110
F111
4
3
STAX D F012 2 F112 2
INX D F013 1 F113 1
DCR B
JNZ LOOP2
HLT
F010 14
F011
F012
13
12
For part (b) copying values in the descending F013 11
order of address to prevent loss of data
F014 10
F015 0F
F016 0E
Solution 1(b): F017 0D
F018 0C
LXI H,F013H F019 0B
LXI D,F023H F01A
F01B
0A
9
MVI B,14 F01C 8
LOOP2: MOV A,M F01D
F01E
7
6
DCX H F01F 5
STAX D F020
F021
4
3
DCX D F022 2
DCR B F023 1
JNZ LOOP2
HLT
Data loaded in memory (could be done without code)
LXI H,F000H
MVI M,35H
INX H
MVI M,47H
Solution 2: Finding sum of BCD numbers
LXI H,F000H
MOV A,M Data in memory after execution
INX H
MOV B,M
INX H
ADD B
DAA
MOV M,A
HLT
Look up table loaded through code (Code applicable only till 81 )
MVI B,00H
MVI C,01H
MVI E,09H DAA is used so the square roots of
MVI H,F0H values like 8 and 9 are stored in F064
MVI A,00H and F081 instead of the correspoding
hexadecimally accurate F040 and
LOOP: MOV L,A F051. This enables the user to provide
MOV M,B the input in BCD
MOV D,C
LOOP2: INR A
DAA
DCR D
JNZ LOOP2
INR B
INR C
INR C
DCR E
JNZ LOOP
MOV L,A
MOV M,B
Solution 3: Using Lookup table to find √
LXI H,9000H
MVI M,64H
MOV B,M
INR B
LXI H,EFFH
LOOP3: INX H
DCR B Data in memory after execution
JNZ LOOP3
MOV A,M
STA 9001H
HLT
Data loaded in memory (could be done without code)
LXI H,F000H
MVI M,23H
INX H
MVI M,AFH
INX H
MVI M,58H
INX H
MVI M,52
Solution 4: Code to sum two 8-bit
numbers (no carry)
LXI H,F003H
LDA F001H
ADD M
STA F005H
LDA F000H
JNC SKIPINR
INR A Data in memory after execution
SKIPINR: DCX
H
ADD M
STA F004H
HLT