MPMC Lab Manual
MPMC Lab Manual
MPMC Lab Manual
Name : ……………………….
Register No: ………………………..
Year & Sec: ………………………..
RVS
RVS EDUCATIONAL TRUST’S GROUP OF
INSTITUTION
RVS Nagar, Dindigul- 624 005. TAMILNADU.
Reg.No.
Exp. Page
Date Name of the Experiment No. Marks Signature
No
16 Bit Addition Using Arithmetic Operation
1
of 8086 Microprocessor
16 Bit Subtraction Using Arithmetic
2
Operation of 8086 Microprocessor
16 Bit Multiplication Using Arithmetic
3
Operation of 8086 Microprocessor
16 Bit Division Using Arithmetic Operation
4
of 8086 Microprocessor
Logical Operations Using 8086
5
Microprocessor
2. POWER SUPPLY + 5 V DC 1
3. KEY BOARD - 1
ALGORITHM:
16-bit addition
ADDRESS DATA
INPUT 1200
1201
1202
1203
1204
OUTPUT 1205
1206
RESULT:
Thus the assembly language program to perform addition of two 16 bit
numbers using 8086 Performed and the result is stored.
Ex. NO: 02
DATE:
16 BIT SUBTRACTION
USING ARITHMETIC OPERATION OF 8086 MICROPROCESSOR
AIM:
To write an assembly language program to perform subtraction of two 16 bit
numbers using 8086.
APPARATUS REQUIRED:
2. POWER SUPPLY + 5 V DC 1
3. KEY BOARD - 1
ALGORITHM:
16-bit SUBTRACTION:
SUBTRACTION:
ADDRESS DATA
1300
1301
INPUT
1302
1303
1304
OUTPUT 1305
1306
RESULT:
2. POWER SUPPLY + 5 V DC 1
3. KEY BOARD - 1
ALGORITHM:
16-bit MULTIPLICATION
Multiplication of 16-bit numbers:
MULTIPLICATION:
PROGRAM FOR MULTIPLICATION:
INPUT
OUTPUT
RESULT:
Ex. NO: 04
DATE:
16 BIT DIVISION USING ARITHMETIC OPERATION OF 8086 MICROPROCESSOR
AIM:
To write an assembly language program to perform division of two 16 bit
numbers using 8086.
APPARATUS REQUIRED:
2. POWER SUPPLY + 5 V DC 1
3. KEY BOARD - 1
ALGORITHM:
16-bit division
Division of 16-bit numbers:
Get the dividend and divisor.
Initialize the quotient to 0.
Dividend = dividend–divisor
If the divisor is greater, store the quotient
Go to step 3
If dividend is greater, quotient = quotient+ repeat from step 4.
FLOECHART:
DIVISION:
ADDRESS DATA
1200
1201
INPUT
1202
1203
1208
OUTPUT
1209
RESULT:
Thus the assembly language program to perform division of two 16 bit
numbers using 8086 Performed and the result is stored.
EX. NO: 05
DATE :
LOGICAL OPERATIONS USING 8086 MICROCONTROLLER
AIM:
To move a data block without overlap
APPARATUS REQUIRED:
2. POWER SUPPLY + 5 V DC 1
3. KEY BOARD - 1
ALGORITHM:
Increment B register.
Increment accumulator by 1 and adjust it to decimal every time.
Compare the given decimal number with accumulator value.
OUTPUT:
AND
OR
EX-OR
RESULT:
Thus the assembly language program to perform logical operations AND, OR
& EX-OR using 8086 Performed and the result is stored.
EX. NO: 06
DATE :
MOVE A DATA BLOCK WITHOUT OVERLAP
AIM:
To move a data block without overlap
APPARATUS REQUIRED:
2. POWER SUPPLY + 5 V DC 1
3. KEY BOARD - 1
ALGORITHM:
Increment B register.
Increment accumulator by 1 and adjust it to decimal every time.
Compare the given decimal number with accumulator value.
PROGRAM:
OUTPUT:
INPUT OUTPUT
1400 1450
1401 1451
1402 1452
1403 1453
1404 1454
RESULT:
Thus the output for the Move a data block without overlap was executed
successfully.
EX. NO: 07
DATE :
CODE CONVERSION-DECIMAL TO HEXADECIMAL
AIM:
To convert a given decimal number to hexadecimal.
ALGORITHM:
Initialize the memory location to the data pointer.
Increment B register.
Increment accumulator by 1 and adjust it to decimal every time.
Compare the given decimal number with accumulator value.
When both match, the equivalent hexadecimal value is in B register.
Store the resultant in memory location.
FLOWCHART:
PROGRAM:
OUTPUT:[DECIMAL TO HEXADECIMAL]
INPUT
OUTPUT
RESULT:
Thus the code conversion of decimal to hexadecimal was executed
successfully.
EX. NO: 08
DATE :
CODE CONVERSION –HEXADECIMAL TO DECIMAL
AIM:
To convert a given hexadecimal number to decimal
ALGORITHM:
Initialize the memory location to the data pointer.
Increment B register.
Increment accumulator by 1 and adjust it to decimal every time.
Compare the given hexadecimal number with B register value.
When both match, the equivalent decimal value is in A register.
Store the resultant in memory location.
PROGRAM;
INPUT OUTPUT
MEMORY
DATA
RESULT:
EX. NO: 09
DATE :
STRING MANIPULATION - SORTING & SEARCHING
APPARATUS REQUIRED:
2. POWER SUPPLY + 5 V DC 1
3. KEY BOARD - 1
PROBLEM STATEMENT:
An array of length 05 is given from the location. Sort it into descending and
ascending order and store the result.
ALGORITHM:
PROGRAM FOR ASCENDING ORDER:
Number of comparisons in
9002 MOV CL,[SI]
CL
Go to next memory
9007 INC SI
location
Go to next memory
900B L3 : INC SI
location
Compare BC and AL
900F CMP AL,BC
register
DATA
INPUT
OUTPUT
DATA
INPUT
OUTPUT
RESULT:
Thus the given array of numbers are sorted in ascending & descending order.
EX. NO: 10
DATE :
LARGEST & SMALLEST
AIM:
To write an Assembly Language Program(ALP) to find the Largest and
Smallest number in a given array.
APPARATUS REQUIRED:
2. POWER SUPPLY + 5 V DC 1
3. KEY BOARD - 1
PROBLEM STATEMENT:
An array of length 5 is given from the location. Find the largest and smallest
number and store the result.
ALGORITHM:
FLOECHART:[LARGEST]
FLOECHART:[SMALLEST]
PROGRAM FOR FINDING LARGEST NUMBER:
PROGRAM FOR FINDING SMALLEST NUMBER:
1018 MOV [DI],AL Else store the biggest number in 1300 location
DATA
INPUT
OUTPUT
DATA
INPUT
OUTPUT
RESULT:
Thus the largest and smallest number is found in a given array.
EX. NO: 11
DATE :
PASSWORD CHECKING
AIM:
APPARATUS REQUIRED:
PROGRAM:
; PASSWORD IS MASM1234
DATA SEGMENT
PASSWORD DB 'MASM1234'
DATA ENDS
CODE SEGMENT
START:
MOV DS, AX
INT 21H
MOV SI, 00
UP1:
INT 21H
JE DOWN
MOV [INST+SI], AL
MOV DL,'*'
INT 21H
INC SI
JMP UP1
DOWN:
MOV BX, 00
CHECK:
MOV AL,[INST+BX]
MOV DL,[PASSWORD+BX]
CMP AL, DL
JNE FAIL
INC BX
LOOP CHECK
INT 21H
JMP FINISH
FAIL:
INT 21H
FINISH:
INT 3
CODE ENDS
END START
END
RESULT:
Thus the output for the Password checking, Print RAM size and system date
was executed successfully
EXP.NO: 12
DATE :
AIM:
APPARATUS REQUIRED:
2. Power Supply +5 V dc 1
PROGRAM;
MODEL GRAPH FOR TRAFFIC LIGHT CONTROL:
100B INX H
100E MOV A, M
1012 INX H
1019 INX H
101A DCR E
1026 L1 DCR C
1028 JNZ L1
1029 DCR D
1000 MOV A, D
1002 ORA E
1004 JNZ L2
1006 RET
RESULT:
Thus the assembly language program for traffic light control is verified
EX. NO: 13
DATE :
AIM:
APPARATUS REQUIRED:
PROBLEM STATEMENT:
Write a code for achieving a specific angle of rotation in a given time and
particular number of rotations in a specific time.
THEORY:
A motor in which the rotor is able to assume only discrete stationary
angular position is a stepper motor. The rotary motion occurs in a stepwise manner
from one equilibrium position to the next. Two-phase scheme: Any two adjacent
stator windings are energized. There are two magnetic fields active in quadrature
and none of the rotor pole faces can be in direct alignment with the stator poles. A
partial but symmetric alignment of the rotor poles is of course possible.
ALGORITHM:
4501 0 1 0 1 05 H
4502 0 1 1 0 06 H
4503 1 0 1 0 0A H
FLOWCHART:
PROGRAM FOR STEPPER MOTOR CONTOL;
RESULT:
Thus the assembly language program for rotating stepper motor in both
clockwise and anticlockwise directions is written and verified.
EX. NO: 14
DATE :
INTERFACING PRGRAMMABLE KEYBOARD AND
DISPLAY CONTROLLER 8279
AIM :
APPARATUS REQUIRED:
ALGORITHM :
MEMORY
OPCODES PROGRAM COMMENDS
LOCATION
9000 MVI C,BA Initialize array
DATA BUS D7 D6 D5 D4 D3 D2 D1 D0
SEGMENTS d c B A d g f e
RESULT:
Thus the rolling message “2” is displayed using 8279 interface kit.
EX. NO: 15
DATE :
INTERFACING ANALOG TO DIGITAL CONVERTER USING 8086
AIM:
APPARATUS REQUIRED:
THEORY:
An ADC usually has two additional control lines: the SOC input to tell the
ADC when to start the conversion and the EOC output to announce when the
conversion is complete.
ALGORITHM:
Select the channel and latch the address.
Send the start conversion pulse.
Read EOC signal.
If EOC = 1 continue else go to step (iii)
Read the digital output.
Store it in a memory location.
PROGRAM:
MEMORY
OPCODES PROGRAM COMMENTS
LOCATION
Load accumulator
1000 MOV DX,FF26 with value for ALE
high
Send through output
1000 MOV AL,90
port
Load accumulator
1003 OUT DX,AL with value for ALE
low
Send through output
1006 MOV DX,FF24
port
Store the value to
1009 MOV AL,FF make SOC high in
the accumulator
Send through output
100B OUT DX,AL
port
RESULT:
Thus the ADC was interfaced with 8086 and the given analog inputs were
converted into its digital equivalent.
EX. NO: 16
DATE :
INTERFACING DIGITAL – TO – ANALOG CONVERTER
USING 8086
AIM:
APPARATUS REQUIRED:
PROBLEM STATEMENT:
The program is executed for various digital values and equivalent analog
voltages are measured and also the waveforms are measured at the output ports
using CRO.
THEORY:
Since DAC 0800 is an 8 bit DAC and the output voltage variation is
between –5v and +5v. The output voltage varies in steps of 10/256 = 0.04
(approximately). The digital data input and the corresponding output voltages are
presented in the table. The basic idea behind the generation of waveforms is the
continuous generation of analog output of DAC. With 00 (Hex) as input to DAC2
the analog output is –5v. Similarly with FF H as input, the output is +5v.
Outputting digital data 00 and FF at regular intervals, to DAC2, results in a square
wave of amplitude 5v.Output digital data from 00 to FF in constant steps of 01 to
DAC2. Repeat this sequence again and again. As a result a saw-tooth wave will be
generated at DAC2 output. Output digital data from 00 to FF in constant steps of
01 to DAC2. Output digital data from FF to 00 in constant steps of 01 to DAC2.
FLOECHART
ALGORITHM
Waveform generation
Square Waveform:
MEMORY
OPCODES PROGRAM COMMENTS
LOCATION
Load accumulator
1000 MOV DX,FF26 with value for ALE
high
Send through output
1000 MOV AL,80
port
Load accumulator
1003 OUT DX,AL with value for ALE
low
Send through output
1006 MOV DX,FF22
port
Store the value to
1009 MOV AL,FF make SOC high in
the accumulator
Send through output
100B OUT DX,AL
port
Decrement CX
2105 DEC CX
register
Return to main
2108 RET
address
RESULT
Thus the DAC was interfaced with 8086 and different waveforms have been
generated.
EX. NO: 17
DATE :
8 BIT ADDITION USING ARITHMETIC OPERATION 8051
MICROCONTROLLER
AIM:
To write an ALP program to add two 8-bit numbers using 8051
microcontroller.
ALGORITHM:
Clear Program Status Word.
Select Register bank by giving proper values to RS1 & RS0 of PSW.
Load accumulator A with any desired 8-bit data.
Load the register R 0 with the second 8- bit data.
Add these two 8-bit numbers.
Store the result.
Stop the program.
FLOW CHART
PROGRAM
OUTPUT:
INPUT OUTPUT
MEMORY MEMORY
DATA DATA
RESULT:
Thus the 8051 ALP for addition of two 8 bit numbers is executed.
EX. NO: 18
DATE :
8 BIT SUBTRACTION USING ARITHMETIC OPERATION
8051 MICROCONTROLLER
AIM:
To perform subtraction of two 8 bit data and store the result in memory.
ALGORITHM:
Clear the carry flag.
Initialize the register for borrow.
Get the first operand into the accumulator.
Subtract the second operand from the accumulator.
If a borrow results increment the carry register.
Store the result in memory.
FLOECHART:
8 BIT SUBTRACTION
OUTPUT:
INPUT OUTPUT
Memory Memory
Data Data
RESULT:
Thus the 8051 ALP for subtraction of two 8 bit numbers is executed.
EX. NO: 19
DATE :
8 BIT MULTIPLICATION USING ARITHMETION OPERATION 8051
MICROCONTROLLER
AIM:
To perform multiplication of two 8 bit data and store the result in memory.
ALGORITHM:
Get the multiplier in the accumulator.
Get the multiplicand in the B register.
Multiply A with B.
Store the product in memory.
FLOWCHART:
8 BIT MULTIPLICATION
OUTPUT:
INPUT OUTPUT
Memory Memory
Data Data
Location location
4500 4502
4501 4503
RESULT:
Thus the 8051 ALP for multiplication of two 8 bit numbers is executed.
EX. NO: 20
DATE :
8 BIT DIVISION USING ARITHMETIC OPERATION 8051
MICROCONTROLLER
AIM:
To perform division of two 8 bit data and store the result in memory
ALGORITHM:
Get the Dividend in the accumulator.
Get the Divisor in the B register.
Divide A by B.
Store the Quotient and Remainder in memory.
FLOWCHART:
8 BIT DIVISION
INPUT OUTPUT
Memory Memory
Data Data
Location location
4500 4502
4501 4503
RESULT:
Thus the 8051 ALP for division of two 8 bit numbers is executed.
EX. NO: 21
DATE :
LOGICAL OPERATIONS USING
8051 MICROCONTROLLER
AIM:
To perform logical operation using 8051 microcontroller AND, OR & EX-OR.
ALGORITHM:
OUTPUT:
AND
OR
EX-OR
RESULT:
Thus the assembly language program to perform logical operations AND, OR
& EX-OR using 8051 Performed and the result is stored.
EX. NO: 22
DATE :
FIND 2’S COMPLEMENT OF A NUMBER
AIM:
To Finding 2’s complement of a number using 8051 micro controller
RESOURCES REQUIERED:
8051 microcontroller kit
Keyboard
Power supply
PROGRAM:
OUTPUT:
RESULT;
EX. NO: 23
DATE :
COVERSION OF BCD TO ASCII
AIM:
To convert BCD number into ASCII by using 8051 micro controller
RESOURCES REQUIERED:
8051 microcontroller kit
Keyboard
Power supply
ALGORITHM:
00 59 AAM 08 09
AH AL AH AL
ADD AX,
08 09 38 39
3030H
AH AL AH AL
NOTE; 38h and 39h are the ASCII equivalents of 8 and 9 respectively
FLOWCHART:
PROGRAM;
ROUTINE: convert binary for number less than 100 passing parameter
AAM
ADD AX, 3030H
MOV BX, AX
MOV DL, BH
MOV AH, 02
INT 21H
MOV DL, BL
INT 21H
POP AX
POP BX
POP DX
RET
END P
RESULT:
Thus the given number is BCD number converted into ASCII using 8051
microcontroller kit.