The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by Bhaskar Vijaya, 2019-04-16 05:53:49

mpmc1

mpmc1

Microprocessors and Microcontrollers lab Dept of ECE

Geethanjali College of Engineering and Technology
Cheeryal (v), Keesara (M), Ranga Reddy District.

Microprocessor and Microcontrollers
Laboratory Student Manual
For
III ECE- II SEM

DEPARTMENT OF
ELECTRONICS & COMMUNICATOIN ENGINEERING

2015-2016

INCHARGE HOD
(M.Laxmi) (Dr. P. Srihari)

1|Page

Geethanjali College Of Engineering And Technology, Cheeryal

Microprocessors and Microcontrollers lab Dept of ECE

GEETHANJALI COLLEGE OF ENGINEERING AND TECHNOLOGY
DEPARTMENT OF Electronics and Communication Engineering

(Name of the Subject ) : Microprocessors and Microcontrollers Course file

(JNTU CODE – A60494 )
Programme : UG

Branch : ECE Version No : 2
Year : III Document : GCET
Semester : II No. of pages :120

Classification status (Unrestricted / Restricted ) : Unrestricted
Distribution List : Dept. Library, Dept Office, Concerned Faculty

Prepared by: Updated by:
1) Name : M. Laxmi 1) Name : P.SNEHA NAGA SHILPA
2) Sign : 2) Sign :
3) Desg : Assoc. Professor. 3) Desg : Asst. Professor .
4) Date : 01-07--2014 4) Date : 23-11-2015

Verified by : * For Q.C Only.

1) Name : 1) Name :
2) Sign : 2) Sign :
3) Desg : 3) Desg :
4) Date : 4) Date :

Approved by : (HOD )

1) Name : Dr.P.Srihari
2) Sign :
3) Date :

GCET 2|Page

Microprocessors and Microcontrollers lab Dept of ECE

JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY

HYDERABAD

III year B.Tech. ECE- II SEM L T/P/D C

0 -/3/- 2

(A60494)MICROPROCESSORS AND MICROCONTROLLERS LAB

List of Experiments

The following programs/experiments are written for assembler and execute the
same with8086 and 8051 kits

1. Programs for 16 bit arithmetic operations for 8086 (using various addressing
modes)

2. Program for sorting an array for 8086
3. Program for searching for a number or character in a string for 8086
4. Program for String manipulations for 8086
5. Program for digital clock design using 8086.
6. Interfacing ADC and DAC to 8086.
7. Parallel communication between two microprocessors using 8255.
8. Serial communication between two microprocessor kits using 8251.
9. Interfacing to 8086 and programming to control stepper motor.
10. Programming using arithmetic, logical and bit manipulation instructions of 8051
11. Program and verify Timer/Counter in 8051.
12. Program and verify interrupt handling in 8051.
13. UART operation in 8051.
14. Communication between 8051 kit and PC.
15. Interfacing LCD to 8051.
16. Interfacing matrix or keyboard to 8051.
17. Data transfer from peripheral to memory through DMA controller 8237/8257

Note: Minimum of 12 experiments to be conducted.

GCET 3|Page

Microprocessors and Microcontrollers lab Dept of ECE

The Mission of the institute

Our mission is to become a high quality premier educational institution, to
create technocrats, by ensuring excellence, through enriched knowledge,
creativity and self development.

The Vision of the institute

Geethanjali visualizes dissemination of knowledge and skills to students, who
would eventually contribute to the well being of the people of the nation and
global community.

Vision of the Department
To impart quality technical education in Electronics and Communication Engineering
emphasizing analysis, design/synthesis and evaluation of hardware/embedded
software using various Electronic Design Automation (EDA) tools with accent on
creativity, innovation and research thereby producing competent engineers who can
meet global challenges with societal commitment.

Mission of the Department

i. To impart quality education in fundamentals of basic sciences, mathematics,
electronics and communication engineering through innovative teaching-learning
processes.

ii. To facilitate Graduates define, design, and solve engineering problems in the
field of Electronics and Communication Engineering using various Electronic
Design Automation (EDA) tools.

iii. To encourage research culture among faculty and students thereby facilitating
them to be creative and innovative through constant interaction with R & D
organizations and Industry.

iv. To inculcate teamwork, imbibe leadership qualities, professional ethics and social
responsibilities in students and faculty.

GCET 4|Page

Microprocessors and Microcontrollers lab Dept of ECE

Program Educational Objectives of B. Tech (ECE) Program :
I. To prepare students with excellent comprehension of basic sciences,
mathematics and engineering subjects facilitating them to gain employment or
pursue postgraduate studies with an appreciation for lifelong learning.
II. To train students with problem solving capabilities such as analysis and
design with adequate practical skills wherein they demonstrate creativity and
innovation that would enable them to develop state of the art equipment and
technologies of multidisciplinary nature for societal development.

III. To inculcate positive attitude, professional ethics, effective communication
and interpersonal skills which would facilitate them to succeed in the chosen
profession exhibiting creativity and innovation through research and
development both as team member and as well as leader.

Program Outcomes of B.Tech ECE Program:

1. An ability to apply knowledge of Mathematics, Science, and Engineering to
solve complex engineering problems of Electronics and Communication
Engineering systems.

2. An ability to model, simulate and design Electronics and Communication
Engineering systems, conduct experiments, as well as analyze and interpret
data and prepare a report with conclusions.

3. An ability to design an Electronics and Communication Engineering system,
component, or process to meet desired needs within the realistic constraints
such as economic, environmental, social, political, ethical, health and safety,
manufacturability and sustainability.

4. An ability to function on multidisciplinary teams involving interpersonal skills.
5. An ability to identify, formulate and solve engineering problems of

multidisciplinary nature.
6. An understanding of professional and ethical responsibilities involved in the

practice of Electronics and Communication Engineering profession.
7. An ability to communicate effectively with a range of audience on complex

engineering problems of multidisciplinary nature both in oral and written form.

GCET 5|Page

Microprocessors and Microcontrollers lab Dept of ECE

8. The broad education necessary to understand the impact of engineering
solutions in a global, economic, environmental and societal context.

9. A recognition of the need for, and an ability to engage in life-long learning and
acquire the capability for the same.

10. A knowledge of contemporary issues involved in the practice of Electronics
and Communication Engineering profession

11. An ability to use the techniques, skills and modern engineering tools
necessary for engineering practice.

12. An ability to use modern Electronic Design Automation (EDA) tools, software
and electronic equipment to analyze, synthesize and evaluate Electronics and
Communication Engineering systems for multidisciplinary tasks.

13. Apply engineering and project management principles to one's own work and
also to manage projects of multidisciplinary nature.

Course Overview:

Microelectronics is increasingly pervading all aspects of industry, education and
the home. A leading example of microelectronic techniques is the microprocessor,
and as its use increases the need for knowledge and understanding will also
grow. The microprocessor lab was designed to give an overview over the
programming of such a microprocessor system. The students will write and debug
assembly language programs using the Microsoft Macro Assembler
(TASM)/Turbo Assembler(TASM). This Lab provides students with the opportunity
to gain experience in microprocessor-based system design, assembly language
programming, and I/O interfacing to microprocessors.

Course Outcomes:

After completing this course, the student will be able to:

1. Apply the fundamentals of assembly level programming of microprocessors.
2. Build a program on a microprocessor using instruction set of 8086.

GCET 6|Page

Microprocessors and Microcontrollers lab Dept of ECE

3. Summarize the concepts of Assembly level language programming and its
applications.

4. Develop the assembly level programming using 8086 instruction set.
5. Analyze abstract problems and apply a combination of hardware and software

to address the problem
6. Contrast how different I/O devices can be interfaced to processor and will

explore several techniques of interfacing.
7. Experiment with standard microprocessor interfaces including GPIO, serial

ports, digital-to-analog converters and analog-to-digital converters;
8. Make use of standard test and measurement equipment to evaluate digital

interfaces.

INSTRUCTIONS TO THE STUDENTS:

1. Students are required to attend all labs.

2. Students will work in a group of two in hardware laboratories and
individually in computer laboratories.

3. While coming to the lab bring the lab manual cum observation book,
record etc.

4. Take only the lab manual, calculator (if needed) and a pen or pencil to
the work area.

5. Before coming to the lab, prepare the prelab questions. Read through
the lab experiment to familiarize yourself with the components and
assembly sequence.

6. Utilize 3 hours time properly to perform the experiment and noting
down the readings. Do the calculations, draw the graph and take
signature from the instructor.

7. If the experiment is not completed in the prescribed time, the pending
work has to be done in the leisure hour or extended hours.

8. You will be expected to submit the completed record book according to
the deadlines set up by your instructor.

GCET 7|Page

Microprocessors and Microcontrollers lab Dept of ECE

9. For practical subjects there shall be a continuous evaluation during the
semester for 25 sessional marks and 50 end examination marks.

10. Of the 25 marks for internal, 15 marks shall be awarded for day-to-day
work and 10 marks to be awarded by conducting an internal laboratory
test.

INSTRUCTIONS TO LABORATORY TEACHERS:

1. Observation book and lab records submitted for the lab work are to be
checked and signed before the next lab session.

2. Students should be instructed to switch ON the power supply after the
connections are checked by the lab assistant / teacher.

3. The promptness of submission should be strictly insisted by awarding the
marks accordingly.

4. Ask viva questions at the end of the experiment.
5. Do not allow students who come late to the lab class.
6. Encourage the students to do the experiments innovatively.

GCET 8|Page

Microprocessors and Microcontrollers lab Dept of ECE

MICROPROCESSORS AND MICROCONTROLLERS LAB

LIST OF EXPERIMENTS
CYCLE-I (MICROPROCESSOR PROGRAMS)

1. Study of TASM/MASM
2. 16-bit arithmetic Operations
3. Sorting an Array
4. Searching for Character in a String
5. Sting Manipulations
6. Digital Clock Design
7. Interfacing DAC
8. Interfacing ADC

CYCLE-II (MICROCONTROLLER PROGRAMS)

9. Arithmetic, Logical and Bit Manipulation operations
10. Timer/Counters operations
11. Interrupt Handling
12. UART Operation
13. LCD Interfacing
14. Interfacing Matrix keyboard

CYCLE-III (ADDITIONAL EXPERIMENTS USING KEIL)

15. Serial Transmission from PC to 8051uc
16. Port Programming of 8051

CYCLE-IV (DESIGN & OPEN EXPERIMENTS)

GCET 9|Page

Microprocessors and Microcontrollers lab Dept of ECE

MICROPROCESSORS AND MICROCONTROLLERS LAB

INDEX

Sl.No. NAME OF THE EXPERIMENT PAGE
No.

CYCLE -I 14
0 Study of TASM/MASM

1 Introduction to 8086 microprocessor 19

2 16-bit arithmetic Operations 25

3 Sorting an Array 34
40
4 Searching for Character in a String 43
51
5 Sting Manipulations 53
58
6 Digital Clock Design 61
65
7 Interfacing DAC
8 Interfacing ADC
9 Serial communication between two 8086

microprocessors
10 Interfacing stepper motor

GCET 10 |
Page

Microprocessors and Microcontrollers lab Dept of ECE
11 Interfacing to 8086 and Programming to DMA controller 68

CYCLE-II

12 Introduction to 8051 70
13 Arithmetic, Logical and Bit Manipulation operations 79

14 Timers and Counters 88
15 Interrupt Handling 91

CYCLE-3 (ADDITIONAL EXPERIMENTS USING KEIL) 93
16 Introduction to KEIL µ vision

17 Serial Transmission from PC to 8051uc 99
18 Reading & writing data from/to 8051 ports 100

CYCLE-4 (DESIGN & OPEN EXPERIMENTS)

GCET 11 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

INTRODUCTION TO TASM

EDITOR:

An editor is a program, which allows you to create a file containing the
assembly language statements for your program. As you type in your program, the
editor stores the ASCII codes for the letters and numbers in successive RAM
locations. When you have typed in all of your programs, you then save the file on a
floppy of hard disk. This file is called source file. The next step is to process the
source file with an assembler. In the TASM assembler, you should give your source
file name the extension, .ASM

ASSEMBLER:

An assembler program is used to translate the assembly language mnemonics
for instructions to the corresponding binary codes. When you run the assembler, it
reads the source file of your program the disk, where you saved it after editing on the
first pass through the source program the assembler determines the displacement of
named data items, the offset of labels and pails this information in a symbol table. On
the second pass through the source program, the assembler produces the binary
code for each instruction and inserts the offset etc tha t is calculated during the first
pass. The assembler generates two files on floppy or hard disk. The first file called
the object file is given the extension. OBJ. The object file contains the binary codes
for the instructions and information about the addresses of the instructions. The
second file generated by the assembler is called assembler list file. The list file
contains your assembly language statements, the binary codes for each instructions
and the offset for each instruction. In TASM assembler, TASM source file name ASM
is used to assemble the file. Edit source file name LST is used to view the list file,
which is generated, when you assemble the file.

LINKER:
A linker is a program used to join several object files into one large object file

GCET 12 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

and convert to an exe file. The linker produces a link file, which contains the binary
codes for all the combined modules. The linker however doesn’t assign absolute
addresses to the program, it assigns is said to be relocatable because it can be put
anywhere in memory to be run. In TASM, TLINK source filename is used to link the
file.

DEBUGGER:

A debugger is a program which allows you to load your object code program
into system memory, execute the program and troubleshoot are debug it the
debugger allows you to look at the contents of registers and memory locations after
your program runs. It allows you to change the contents of register and memory
locations and return the program. A debugger also allows you to set a break point at
any point in the program. If you inset a breakpoint the debugger will run the program
upto the instruction where the breakpoint is set and stop execution. You can then
examine register and memory contents to see whether the results are correct at that
point. In TASM, td filename is issued to debug the file.

DEBUGGER FUNCTIONS:

1. Debugger allows us to look at the contents of registers and memory locations.
2. We can extend 8-bit register to 16-bit register which the help of extended register

option.
3. Debugger allows us to set breakpoints at any point with the program.
4. The debugger will run the program upto the instruction where the breakpoint is set

and then stop execution of program. At this point, we can examine registry and
memory contents at that point.
5. With the help of dump we can view register contents.
6. We can trace the program step by step with the help of F7.
7. We can execute the program completely at a time using F8.

DEBUGGER COMMANDS:

GCET 13 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

ASSEMBLE:
To write assembly language program from the given address
A starting address <cr>
Eg: a 100 <cr>
Starts program at an offset of 100.

DUMP:
To see the specified memory contents
D memory location first address last address
(While displays the set of values stored in the specified range, which is given above)
Eg: d 0100 0105 <cr>
Display the contents of memory locations from 100 to 105(including).

ENTER:
To enter data into the specified memory locations(s).
E memory location data data data data data …<cr>
Eg: e 1200 10 20 30 40 ….

Enters the above values starting from memory locations 1200 to 1203, by loading 10

into 1200,20 into 1201 and soon.

GO:
To execute the program
G: one instruction executes (address specified by IP)
G address <cr>: executes from current IP to the address specified
G first address last addresses <cr>: executes a set of instructions specified between
the given addresses

MOVE:
Moves a set of data from source location to destination location
M first address last address destination address
Eg: m100 104 200
Transfers block of data (from 100 to 104) to destination address 200.

GCET 14 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

QUIT:
To exit from the debugger.

Q <cr>

REGISTER:
Shows the contents of Registers
R register name
Eg: r ax
Shows the contents of register.

TRACE:
To trace the program instruction by instruction.
T = 0100 <cr>: traces only the current instruction. (Instruction specified by IP)
T = 0100 02 <cr>: Traces instructions from 100 to 101, here the second argument
specifies the number of instructions to be traced.

UNASSEMBLE:
To unassembled the program.

Shows the opcodes along with the assembly language program.

GCET 15 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

INTRODUCTION TO 8086 MICROPROCESSOR8086

8086 ARCHITECTURE:

GCET 16 |
Page

Microprocessors and Microcontrollers lab Dept of ECE
PIN DIAGRAM:

8086 INSTRUCTION SET SUMMARY:

The following is a brief summary of the 8086 instruction set:

Data Transfer Instructions

MOV : Move byte or word to register or memory

IN, OUT : Input byte or word from port, output word to port

LEA : Load effective address

LDS, LES : Load pointer using data segment, extra segment

PUSH, POP : Push word onto stack, pop word off stack

XCHG : Exchange byte or word

XLAT : Translate byte using look-up table

Logical Instructions

GCET 17 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

NOT : Logical NOT of byte or word (one's complement)
AND : Logical AND of byte or word
OR : Logical OR of byte or word
XOR : Logical exclusive-OR of byte or word
TEST : Test byte or word (AND without storing)

Shift and Rotate Instructions

SHL, SHR : Logical shift left, right byte or word by 1 or CL

SAL, SAR : Arithmetic shift left, right byte or word by 1 or CL

ROL, ROR : Rotate left, right byte or word by 1 or CL

RCL, RCR : Rotate left, right through carry byte or word by 1 or CL

Arithmetic Instructions

ADD, SUB : Add, subtract byte or word
Add, subtract byte or word and carry (borrow)
ADC, SBB : Increment, decrement byte or word
Negate byte or word (two's complement)
INC, DEC : Compare byte or word (subtract without storing)
Multiply, divide byte or word (unsigned)
NEG : Integer multiply or divide byte or word (signed)
Convert byte to word, word to double word (useful before
CMP : multiply/divide)
ASCII adjust for addition, subtraction, multiplication,
MUL, DIV : division (ASCII codes 30-39)
Decimal adjust for addition, subtraction (binary coded
IMUL, IDIV : decimal numbers)

CBW, CWD :

AAA, AAS, AAM, AAD:

DAA, DAS :

Transfer Instructions

JMP : Unconditional jump
Jump if above (not below or equal)
JA (JNBE) : Jump if above or equal (not below)
Jump if below (not above or equal)
JAE (JNB) : Jump if below or equal (not above)
Jump if equal (zero)
JB (JNAE) : Jump if greater (not less or equal)
Jump if greater or equal (not less)
JBE (JNA) : Jump if less (not greater nor equal)
Jump if less or equal (not greater)
JE (JZ) : Jump if carry set, carry not set
Jump if overflow, no overflow
JG (JNLE) :

JGE (JNL) :

JL (JNGE) :

JLE (JNG) :

JC, JNC :

JO, JNO :

GCET 18 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

JS, JNS : Jump if sign, no sign
Jump if no parity (parity odd)
JNP (JPO) : Jump if parity (parity even)
Loop unconditional, count in CX
JP (JPE) : Loop if equal (zero), count in CX
Loop if not equal (not zero), count in CX
LOOP : Jump if CX equals zero

LOOPE (LOOPZ) :

LOOPNE (LOOPNZ) :

JCXZ :

Subroutine and Interrupt Instructions

CALL, RET : Call, return from procedure

INT, INTO : Software interrupt, interrupt if overflow

IRET : Return from interrupt

String Instructions : Move byte or word string
MOVS : Move byte, word string
MOVSB, MOVSW : Compare byte or word string
CMPS : Scan byte or word string
SCAS : Load, store byte or word string
LODS, STOS : Repeat
REP : Repeat while equal, zero
REPE, REPZ : Repeat while not equal (zero)
REPNE, REPNZ

Processor Control Instructions

STC, CLC, CMC : Set, clear, complement carry flag

STD, CLD : Set, clear direction flag

STI, CLI : Set, clear interrupt enable flag

LAHF, SAHF : Load AH from flags, store AH into flags

PUSHF, POPF : Push flags onto stack, pop flags off stack

ESC : Escape to external processor interface

LOCK : Lock bus during next instruction

NOP : No operation (do nothing)

WAIT : Wait for signal on TEST input

HLT : Halt processor

GCET 19 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

CYCLE-I

GCET 20 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

EXPERIMENT NO.1

ARITHMETIC OPERATIONS IN 8086
I.ADDITION OF TWO 16-BIT NUMBERS

OBJECTIVE:
To write an assembly language program for performing addition of two 16-bit signed and

unsigned numbers.

TOOLS REQUIRED: PC installed with TASM

ALGORITHM:

Step I : Initialize the data memory.
Load the first number into AX register.
Step II : Load the second number into BX register.
Add two lower digits.
Step II : Adjust result to valid BCD number.
Store the result in BL.
Step IV : Add the two upper digits with carry.
Adjust result to valid BCD number.
Step V : Store the result in BH.
Display the result.
Step VI : Stop.

Step VI :

Step VIII :

Step IX :

Step X :

Step XI :

GCET 21 |
Page

Microprocessors and Microcontrollers lab Dept of ECE
22 |
FLOW CHART:

START

INITIALIZATION OF DATA
SEGMENT

AXOPR1

AXAX+OPR2
RESAX

RESULT: STOP
FLAGS:

Before execution, c=0, s=0, z=0, o=0, p=0, a=0, i=1, d=0.
After execution, c=0, s=0, z=0, o=0, p=1, a=0, i=1, d=0.

INPUT : OPR1 = 4269H
OPR2 = 1000H
OUTPUT:
RES = 5269H

SIGNED NUMBERS
FLAGS:
Before execution, c=0, s=0, z=0, o=0, p=0, a=0, i=1, d=0.
After execution, c=1, s=0, z=0, o=1, p=0, a=0, i=1, d=0.

INPUT : OPR1 = 9763H
OPR2 = A973H
OUTPUT :
RES = 40D6H

GCET
Page

Microprocessors and Microcontrollers lab Dept of ECE

OUTCOME
Upon completion of this experiment, the student will be able to:

1. Employ the arithmetic instructions in various programs.

2. Solve some mathematical operations by using the 8086 microprocessor

GCET 23 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

II.SUBTRACTION OF TWO 16-BIT NUMBERS

OBJECTIVE
To write an assembly language program to perform subtraction of two 16-bit signed and
unsigned numbers.

TOOLS REQUIRED: : PC installed with TASM

ALGORITHM:

Step I : Initialize the data memory.
Step II : Load the first number into AX register.
Step III : Load the second number into BX register.
Step IV : Sub AX from BX.
Step V : Store result in AX
Step VI : Display the result.
Step VII : Stop.

FLOW CHART:

START

INITIALIZATION OF DATA
SEGMENT

AXOPR1

AXAX-OPR2
RESAX

RESULT STOP
FLAGS:

Before execution, c=0, s=0, z=0, o=0, p=0, a=0, i=1, d=0.
After execution, c=0, s=0, z=0, o=0, p=1, a=0, i=1, d=0.

INPUT : OPR1 = 4269H

GCET 24 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

OUTPU : OPR2 = 1000H
: RES = 3269H

SIGNED NUMBERS
FLAGS:
Before execution, c=0, s=0, z=0, o=0, p=0, a=0, i=1, d=0.
After execution, c=0, s=0, z=0, o=0, p=1, a=0, i=1, d=0.

INPUT : OPR1 = 9763H
OUTPUT : OPR2 = 8973H
RES = 0DF0H

OUTCOME:

Upon completion of this experiment, the student will be able to:
1. Employ the arithmetic instructions in various programs.

2. Solve some mathematical operations by using the 8086 microprocessor

GCET 25 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

III.MULTIPLICATION OF TWO 16-BIT NUMBERS

OBJECTIVE:

To write an assembly language program to perform multiplication of two 16-bit unsigned
numbers.

TOOLS REQUIRED: : PC installed with TASM

ALGORITHM:

Step I : Initialize the data memory.
Load the first number into AX register.
Step II : Load the second number into BX register.
Multiply AX with BX.
Step III : store lower byte in accumulator.
Store Upper byte in DX register
Step IV : Display the result.
Stop.
Step V :

Step VI :

Step VII :

Step VIII :

FLOW CHART:

START

INITIALIZATION OF
DATA SEGMENT

AXOPR1

AXAX*OPR2
RESLWAX
RESHWDX

STOP

GCET 26 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

RESULT:
FLAGS:
Before execution, c=0, s=0, z=0, o=0, p=0, a=0, i=1, d=0.
After execution, c=1, s=0, z=0, o=1, p=0, a=0, i=1, d=0.

INPUT: OPR1 = 2000H
OPR2 = 4000H

OUTPUT: RESLW = 0000H (AX)
RESHW = 0800H (DX)

OUTCOME:
Upon completion of this experiment, the student will be able to:

1.Employ the arithmetic instructions in various programs.

2.Solve some mathematical operations by using the 8086 microprocessor

GCET 27 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

IV.DIVISION OF TWO NUMBERS

OBJECTIVE:
To write an assembly language program to perform division of 16-bit unsigned

number by 8-bit unsigned number.

TOOLS REQUIRED: : PC installed with TASM

ALGORITHM:

Step I : Initialize the data memory.
Load the first number into AX register.
Step II : Load the second number into BX register.
Divide AX by BX.
Step III : store Quotient in AL register.
Store reminder in AH register
Step IV : Display the result.
Stop.
Step V :

Step VI :

Step VII :

Step VIII :

FLOW CHART:

START

INITIALIZATION OF DATA
SEGMENT

DIVISION OF AX BY OPR2

GCET AXAX/OPR2 28 |
Page RESQAL
RESRAH

STOP

Microprocessors and Microcontrollers lab Dept of ECE

RESULT:

FLAGS:
Before execution, c=0, s=0, z=0, o=0, p=0, a=0, i=1, d=0.
After execution, c=0, s=0, z=0, o=0, p=0, a=1, i=1, d=0.

INPUT:

OPR1 = 2C58H (DIVIDEND)
OPR2 = 56H (DIVISOR)

OUTPUT:

RESQ = 84H (AL)
RESR = 00H (AH)

VIVA QUESTIONS:
1) How many bit 8086 microprocessor is?
2) What is the size of data bus of 8086?
3) What is the size of address bus of 8086?
4) What is the max memory addressing capacity of 8086?
5) Which are the basic parts of 8086?

OUTCOME
Upon completion of this experiment, the student will be able to:

1. Employ the arithmetic instructions in various programs.
2. Solve some mathematical operations by using the 8086 microprocessor

GCET 29 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

EXPERIMENT NO.2

PROGRAM FOR SORTING AN ARRAY FOR 8086 MICROPROCESSOR

I.ASCENDING ORDER

OBJECTIVE:
To write an assembly language program to arrange the given numbers in ascending

order.

TOOLS REQUIRED: : PC installed with TASM

ALGORITHM:

Step I : Initialize the number of elements counter.
Step II
Step III : Initialize the number of comparisons counter..

Step IV : Compare the elements. If first element < second element goto
Step V stepVIII Else go to step V.
Step VI
Step VII : Swap the elements..
Step VIII : Decrement the comparison counter.
Step IX : Is count = 0 ? if yes go to step VIII else go to step IV.
Step X : Insert the number in proper position.
Step XI
: Increment the number of elements counter.
: Is count = N ? If yes, go to step XI else go to step II
: Store the result.
: Stop.

GCET 30 |
Page

Microprocessors and Microcontrollers lab Dept of ECE
FLOW CHART: 31 |

START

INITIALIZATION OF
DATA SEGMENT

DXCOUNT-1

BACK : CXDX

SIOFFSET
ADDRESS OF LIST

AGAIN: AX[SI]

IF TRUE
AX < [SI+2]

FALSE

EXCHANGE
[SI] &[SI+2]

INCREMENT SI BY 2

FALSE

IF
CX=0

TRUE

DECREMENT DX

FALSE

IF
DX=0

TRUE

STOP

GCET
Page

Microprocessors and Microcontrollers lab Dept of ECE

RESULT:

INPUT: LIST (DS: 0000H) = 05H,04H,01H,03H,02H

OUTPUT: LIST (DS: 0000H) = 01H,02H,03H,04H,05H

OUTCOME:
Upon completion of this experiment the student will be able to:

1. Demonstrate the control transfer instructions.
2. Explain number searches and differentiates bigger and smaller numbers from

large database.

GCET 32 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

II. DESCENDING ORDER
OBJECTIVE:
To write an assembly language program to arrange the given numbers in
descending order.

TOOLS REQUIRED: : PC installed with TASM

ALGORITHM:

Step I : Initialize the number of elements counter.

Step II : Initialize the number of comparisons counter..

Step III : Compare the elements. If first element >second element goto step VIII
Else goto step V.

Step IV : Swap the elements..
Step V : Decrement the comparison counter.
Step VI : .Is count = 0 ? if yes goto step VIII else goto step IV.
Step VII : Insert the number in proper position.
Step VIII : Increment the number of elements counter.
Step IX : Is count = N ? If yes, goto step XI else goto step II
Step X : Store the result.
Step XI : Stop.

GCET 33 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

FLOW CHART: START

GCET INITIALIZATION OF
Page DATA SEGMENT

DXCOUNT-1
BACK : CXDX

SIOFFSET
ADDRESS OF LIST

AGAIN: AX[SI]

IF TRUE
AX < [SI+2]

FALSE

EXCHANGE
[SI] &[SI+2]

INCREMENT SI BY 2

FALSE

IF
CX=0

TRUE

DECREMENT DX

FALSE

IF 34 |
DX=0

TRUE

STOP

Microprocessors and Microcontrollers lab Dept of ECE

RESULT:

INPUT: LIST (DS: 0000H) = 03H, 04H,01H,05H,02H

OUTPUT: LIST (DS: 0000H) = 05H, 04H, 03H,02H,01H

VIVA QUESTIONS:

1) What are the functions of BIU?

2) What are the functions of EU?

3) How many pin IC 8086 is?

4) What IC8086 is?

5) What is the size of instruction queue in 8086?

OUTCOME:
Upon completion of this experiment the student will be able to:
1. Demonstrate the control transfer instructions.
2. Explain number searches and differentiates bigger and smaller numbers from
large database.

GCET 35 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

EXPERIMENT NO.3
PROGRAM FOR SEARCHING FOR A NUMBER/CHARACTER IN A STRING FOR

8086 MICROPROCESSOR

SEARCHING FOR A NUMBER

OBJECTIVE:
To find whether the given byte is in given string or not & find its relative address

TOOLS REQUIRED: : PC installed with TASM
ALGORITHM:

Step I : Initialize the extra segment .(ES)

Step II : Initialize the start of string in the ES. (DI)
. : Move the number of elements in the string in CX register

Step III

Step IV : Move the byte to be searched in the AL register..

Step V : Scan for the byte in ES. If the byte is found ZF=0,move the address
pointed by S:DI to BX
.
Step VI : Store the result

Step VII : Stop.

GCET 36 |
Page

Microprocessors and Microcontrollers lab Dept of ECE
FLOWCHART: 37 |

START

INITIALIZATION OF DATA
SEGMENT

ALBYTE CLCOUNT, Yes
BX=00,SI, OFFSET LIST

IF AL=[SI]

Increment BX
Increment SI,Decrement CL

no
If

yeCsL=0

NOP

STOP

RESULT:

GIVEN DATA:
N=19H,99H,45H,46H,34H
BYTE= 45H

FLAGS:
INITIALLY: C=0,Z=0,S=0,O=0,P=0,A=0,I=1,D=0
AFTER EXECUTION: C=0,Z=1,S=0,O=0,P=1,A=0,I=1,D=0

GCET
Page

Microprocessors and Microcontrollers lab Dept of ECE

OUTPUT:
RES: 45H
ADDRESS: BX----0002

VIVA QUESTIONS:

1) What is the size of instruction queue in 8086?

2) Which are the registers present in 8086?

3) What do you mean by pipelining in 8086?

4) How many 16 bit registers are available in 8086?

5) Specify addressing modes for any instruction?

OUTCOME:
Upon completion of this experiment the student will be able to:

1. .Demonstrate the control transfer instructions.
2. Explain number searches and differentiates bigger and smaller numbers from

large database.

GCET 38 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

EXPERIMENT NO.4
PROGRAM FOR STRING MANIPULATIONS FOR 8086

I. LENGTH OF THE STRING

OBJECTIVE:
To write an assembly language program to find the length of the given string.

TOOLS REQUIRED: : PC installed with TASM

ALGORITHM:
Step I : Initialize the data segment(DS)

Step II : Initialize the code segment(CS)
. : Move the data to Accumulator(AX)

Step III

Step IV : Initialize the counter with 0.

Step V : Move string to SI register.

Step VI : Compare AL and SI. Until found ZF=0,increment counter.

Step VII : Store the result
Step VIII : Stop.

GCET 39 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

FLOW CHART

START

INITIALIZATION OF
DATA SEGMENT

AL24H CL00H
SI OFFSET ADDRESS

OF STR1

AL=[SI] TRUE

FAL
SE

Increment CL
Increment SI

NOP Uncon
ditional
Jump

NOP

LENGTHCL

STOP

GCET 40 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

RESULT:

INPUT: STR (DS:0000H) = GEETHANJALI COLLEGE OF ENGINEERING AND
TECHNOLOGY

OUTPUT: LENGTH =

OUTCOME:
Upon completion of this experiment the student will be able to:

1. Describe the memory management and select the proper memory.
2. Demonstrate the control transfer instructions

GCET 41 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

II. DISPLAY THE STRING

OBJECTIVE:
To write an assembly language program to display the given string.(DOS PROGRAMMING)

TOOLS REQUIRED: PC installed with TASM

ALGORITHM:
Step I : Initialize the data segment (DS)

Step II : Initialize the code segment (CS)
. : Move the data to Accumulator (AX)

Step III

Step IV : use the instruction 21H for DOS function calls.

Step V : Store the Offset address in DX

Step VI : Get the data from AL and display.

Step VII : Store the result
Step VIII : Stop.

GCET 42 |
Page

Microprocessors and Microcontrollers lab Dept of ECE
FLOWCHART

RESULT

WELCOME TO MICROPROCESSORS LAB

OUTCOME: 43 |
Upon completion of this experiment the student will be able to:
1.Describe the memory management and select the proper memory.
2.Demonstrate the DOS Interrupts.

GCET
Page

Microprocessors and Microcontrollers lab Dept of ECE

III.REVERSE THE STRING

OBJECTIVE:
To write an assembly language program to reverse the given string.

TOOLS REQUIRED: : PC installed with TASM
ALGORITHM:
Step I : Initialize the data segment(DS)

Step II : In the Data segment . initialize element in an array named as
Src,initialize the empty array size as DS and Count the value

Step III : In code segment move the data segment value to data segment
register

Step IV : Move count value (count +1) to count register and define offset
address of destination to DI and move 04 H to DX
Step V : Define offset address of src to SI then move SI to BX and then BX to

DX
Step VI : Decrement the destination index then subtract source index value

Step VII : Decrement CX if non zero go to step V

Step VIII : Store the result
Step IX : Stop

GCET 44 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

FLOW CHART:

START

INITIALIZATION OF DATA
SEGMENT

CLCOUNT
SIoffset address of STR1
DICOUNT-1

[DI]=[SI]

INC SI
DEC DI
DEC CL

FALS If
E CL=0

TRUE

STOP

RESULT: 45 |
INPUT: STR1 (DS:0000H) =
OUTPUT: STR1 (DS:0004H) =

GCET
Page

Microprocessors and Microcontrollers lab Dept of ECE

VIVA QUESTIOS:
1) What do you mean by assembler directives?
2) What .model small stands for?
3) What is the supply requirement of 8086?
4) What is the relation between 8086 processor frequency & crystal Frequency?
5) Functions of Accumulator or AX register?

OUTCOME: Upon completion of this experiment the student will be able to:
1.Describe the memory management and select the proper memory.
2.Demonstrate the control transfer instructions

GCET 46 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

EXPERIMENT NO.5

PROGRAM FOR DIGITAL CLOCK DESIGN USING 8086

PROGRAM TO DISPLAY CURRENT SYSTEM TIME

OBJECTIVE:
To write an assembly language program to display current system time.(DOS
PROGRAMMING)

TOOLS REQUIRED: : PC installed with TASM

ALGORITHM:

Step1 : get the current system time
Step2 : BX=offset address of the string TIME
Step3 : PUSH AX onto the STACK,PUSH CX onto the STACK
Step4 : set AL=CH , CH=hours
Step5 : set [BX]=hr , [BX] is pointing to hr in the string TIME
Step6 : set AL=CL , CL=minutes
Step7 : set [BX+3]=min , [BX] is pointing to min in the string TIME
Step8 : set AL=DH , DH=seconds
Step9 : set [BX+6]=min , [BX] is pointing to sec
Step10 : POP a value from STACK into CX
Step11 : POP a value from STACK into AX
Step12 : Store the result
Step13 : Stop.

GCET 47 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

VIVA QUESTIONS:
1) Functions of BX register?
2) Functions of CX register?
3) Functions of DX register?
4) How Physical address is generated?
5) Which are pointers present in this 8086?

OUTCOME:

Upon completion of this experiment the student will be able to Demonstrate
displaying current system time using DOS programming.

GCET 48 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

EXPERIMENT NO.6

INTERFACING DIGITAL TO ANALOG CONVERTER TO 8086 FOR

GENERATION OF WAVE FORMS:

OBJECTIVE:
To write a Program to generate following wave forms

a. Ramp waveform
b. Square waveform
c. Step waveform
d. Triangle waveform

APPARATUS: 1.ADS-SDA-86-STA kit
2.8255 Study card
3. Adapter, Keyboard, Cables, CRO Etc.

PROCEDURE:

1. Connect 8086 kit PC using RS232 cable.
2. Connect Power supply to 8086 kit and 8255 interfacing kit(only blue(+5v) and
black(0v) lines Power cable to power supply)
3. Connect 8255 to CN4 of 8086 using 26 pin bus.
4. Connect the CRO probe to JP3 of 8255 kit
5. Keep the DIP switch in 1 & 7 on (8086kit), open TALK, and go to options select
target device as 8086 and Connect.
6. Change dip switch into 1 & 5on, once reset 8086 kit.
7. Go to file →Download hex file
8. G-5000(on system keyboard), we can observe the output on 8086 kit and CRO.

GCET 49 |
Page

Microprocessors and Microcontrollers lab Dept of ECE

ALGORITHM:

Measurement of analog voltage:

Step I : Send the digital value of DAC.
Step II : Read the corresponding analog value of its output.

FLOWCHART

Waveform generation:

Step I : Square Waveform:
Step II : Send low value (00) to the DAC.
Step III : introduce suitable delay.
Step IV : Send high value to DAC. Introduce delay.
Step V : Repeat the above procedure.

GCET 50 |
Page


Click to View FlipBook Version