0% found this document useful (0 votes)
6 views82 pages

MPMC

This document certifies the completion of various laboratory experiments by a B. Tech 3rd Year Electrical & Electronic Engineering student at Jawaharlal Nehru Technological University Hyderabad during the academic year 2023-24. It includes a detailed index of experiments conducted in the Microprocessor and Microcontroller lab, covering topics such as arithmetic operations, string manipulations, and interfacing with microcontrollers. Additionally, it provides an introduction to assembly language programming tools and concepts relevant to the 8086 processor.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views82 pages

MPMC

This document certifies the completion of various laboratory experiments by a B. Tech 3rd Year Electrical & Electronic Engineering student at Jawaharlal Nehru Technological University Hyderabad during the academic year 2023-24. It includes a detailed index of experiments conducted in the Microprocessor and Microcontroller lab, covering topics such as arithmetic operations, string manipulations, and interfacing with microcontrollers. Additionally, it provides an introduction to assembly language programming tools and concepts relevant to the 8086 processor.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 82

JNTUHCER EEE

JAWAHARLAL NEHRU TECHNOLOGICAL


UNIVERSITY HYDERABAD
UNIVERSITY COLLEGE OF ENGINEERING RAJANNA SIRCILLA
Govt. Degree College, Agraharam, RajannaSircilla Dist. Telangana State-505302

This is to certify that this book is the bonafied record of jobs done by
Mr./Miss of Roll No:
B. Tech 3rd Year Electrical & Electronic Engineering Course, studying this
college during the academic year 2023-24.
It is also certified that all the jobs mentioned in this record are completed
by the candidate him/herself in the MICRO PROCESSOR AND MICRO
CONTROLLER lab of the J.N.T.U.H. College of Engineering, Rajanna
Sircilla

Signature of the Examiner Head of the Department

Date…………… Lab Incharge

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
2

S.NO LIST OF THE


INDEX PAGE. DATE OF DATE OF SIGNATURE
EXPERIMENTS NO EXPERIME SUBMISSIONS
NTS
1. Program for 16-bit 9-13
arithmetic operations for
8086(using various
addressing modes)
2. ALP to 14-15
add,subtract,multiply two
16-bit unsigned numbers
and store the result in extra
segment
3. ALP to divide a 32-bit 16-17
unsigned number by a 16-
bit unsigned number and
store the result in stack
segment
4. ALP to sort the given array 18-19
in 32-bit ascending
order/decending order
5. ALP to pick the median 20-21
from the given array of
numbers
6. ALP to find the length of a 22-23
given string which
terminates with a special
character($)
7. ALP to reverse the string 24-25
and verify for palindrome
8. ALP to insert a character to 26-27
the given string
9. ALP to delete a character 28-29
from the given string

10. Logical operations of 16- 30-33


bit data(software)

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
3

11. 16-bit arithmetic operations 34-36


on indirect addressing
mode
12. Copy/move string from one 37
location to another
13. Reverse of the string 38
14. Get reverse of a given 39
number
15. Program for factorial of a 40
given number

16. Program for 8-bit 41-42


manupulation

17. Program for arithmetic 43-46


operations of 8051
microcontroller

18. Program for increment and 47-48


decrement operations of
8051 micro controller
19. Program for logical 49-51
operations of 8051 micro
controller
20. Program for 52-57
rotate,swap,clear
operations of 8051
microcontroller
21. Program for one’s 58
compliment operation of
8051 micro controller
22. Assembly Language 59-63
Programs to 8086 to
Perform Arithmetic,
Logical, String Operations
on 16 Bit and 32 Bit Data

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
4

23 Bit level Logical 64-65


Operations, Rotate, Shift,
Swap and Branch
Operations.

24 Assembly Language 66-72


Programs to Perform
Arithmetic (Both Signed
and Unsigned) 16 Bit Data
Operations, Logical
Operations (Byte and Bit
Level Operations), Rotate,
Shift, Swap and Branch
Instructions.

25 Time delay Generation 73


Using Timers of 8051.

26 Serial Communication 74
from / to 8051 to / from I/O
devices.

27 Program Using Interrupts 75


to Generate Square Wave
10 KHZ Frequency on
P2.1 Using Timer 0 8051
in 8 bit Auto reload Mode
and Connect a 1 HZ Pulse
to INT1 pin and Display on
Port 0. Assume Crystal
Frequency as 11.0592
MHZ

28 Segment Display to 8051 76

29 Matrix Keypad to 8051 77-80

30 8 bit ADC Interface to 81


8051.

31 Triangular Wave 82
Generator through DAC
interfaces to 8051.

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
5

Microprocessor and Microcontroller Lab


INTRODUCTION
The Microsoft Macro Assembler (MASM) is an 8086(x86) assembler that uses the INTEL
syntax for MS DOS and Microsoft Windows. The earlier versions were released in the year
1981. Turbo Assembler(TASM) is also an assembler package developed by Borland which
runs on and produces code for 16-bit or 32-bit x86 MS DOS or Microsoft Windows. These
software’s provide the assembly language tools to program the 8086 processor-based
systems.
To program the x86 processor using in MASM certain concepts are very important. They are
reserved words, identifiers, predefined symbols, constants, expressions, operators, registers
and statements.
Reserved Words:
A reserved word has a special meaning fixed by the language. This must be used under certain
special conditions. These reserved words are
 Instructions, which corresponds to operations the processor can execute.
 Directives, which give commands to the assembler.
 Attributes, which provide a value for a field, such as segment alignment.
 Operators, which are used in expressions.
MASM reserved words are not case sensitive except for predefined symbols. The assembly
generates an error if you use a reserved word as a variable.
For example: The following operands are reserved words. Reserved words are not case
sensitive.
$ DWORD PASCAL SWORD
? FAR QWORD SYSCALL
@B FAR16 REAL4 TBYTE
@F FORTRAN REAL8 VARARG
ADDR FWORD REAL 16 WORD
BASIC NEAR SBYTE ZERO?
BYTE NEAR16 SDWORD
C OVERFLOW SIGN?
CARRY? PARITY STDCALL

Predefined Symbols: Unlike most MASM reserved words, predefined symbols are case
sensitive.
@CatStr* @Environ* @Model*
@Code @fardata @SizeStr*
@CodeSize @fardata? @stack*
@Cpu @FileCur* @SubStr*
@CurSeg @FileName @Time*
@data @InStr* @Version
@DataSize @Interface* @WordSize
@Date @Line @Model*

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
6

Registers:

AL CX EAX SP
AX DH EBP SS
BH DI EBX ST
BL DL ECX TR3*
BP DR0 EDI TR4*
BX DR1 EDX TR5*
CH DR2 ES TR6
CL DR3 ESI TR7

Identifiers:
An identifier is a name that you invert and attach to a definition. Identifiers can be symbols
representing variables, constants, procedure names, code labels, segment names and user
defined data types such as structures, unions, records and types defined with TYPEDEF.
Identifiers longer than 247 characters generate an error.

 The first character of the identifier can be an alphabetic character (A - Z) or any of


these four characters. They are @ _ $ ?
 The other characters in the identifier can be any of the characters listed above or a
decimal digit(0 - 9).
Predefined Symbols:
The assembler includes a number of predefined symbols (also called predefined equates).
These symbols can be used at any point in the code to represent the equate value. For
example: The predefined equate @FileName represents the base name of the current file. If
the current source file is TASK.ASM, the value of the @FileName is TASK.
Integer Constants and Constant Expressions:
An integer constant is a series of one or more numerals followed by an optional radix specifier.
For example, in the following statements:
mov ax,25
mov bx,0B3
the number 25 and 0B3H are integer constants.
Operators:
Operators are used in expressions. The assembler evaluates the expressions that contains
more than one operator according to the following rules:

 Operations in parenthesis are performed before adjacent operations.


 Binary operations of highest precedence are performed first.
 Operations of equal precedence are performed from left to right.
 Unary Operations of equal precedence are performed right to left.
Examples of the operators are: +, - (unary), &, *, /, %(MOD), SHL, SHR, +, - (binary), EQ, NE,
LT, LE, GT, GE, NOT, AND, OR, XOR, OPATTR, SHORT, TYPE.
Data Types;

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
7

A “data type” describes a set of values. For example: BYTE, SBYTE, WORD,
SWORD, DWORD, SDWORD, FWORD, QWORD and TBYTE.
Registers:
The 8086 family of processors have a set of 16-bit registers. They are AX, BX, CX, DX
(General purpose registers). Segment registers like SS, CS, DS, ES and Pointer registers like
SP and BP and Index register like DI and SI etc.
Statements:
Statements are the line by line components of source files. Each MASM statement specifies
an instruction or directive for the assembler. Statements have up to four fields[[name:]]
[[operation]] [[operands]][[;comment]]
Assembly Language Development Tools:
To develop an assembly language program, we need certain program development tools. The
various development tools required for 8086 programming are explained below.
1. Editor: An editor is a program which allows us to create a file containing the assembly
language statements for the program. Examples of some editors are PC Write, Word-
Star. As we the program the editor stores the ASCII codes for the letters and numbers
in successive RAM locations. If any typing mistake is done editor will alert us to correct
it. If we leave out a program statement an editor will let you move everything down and
insert a file. After typing all the program, we have to save the program for a hard disk.
This we call it as source file. The next step is to process the source file with an
assembler. While using TASM or MASM we should give a filename and extension as
.ASM forexample: Sample.asm
2. Assembler: An assembler is used to translate the assembly language mnemonics to
machine level language (i.e., binary codes). When you run the assembler, it reads the
source file of your program from where you have saved it. The assembler generates
two files. The first file is the Object file with .OBJ extension. The Object file consists of
the binary codes for the instructions and information about the addresses of the
instructions. After further processing, the contents of the file will be loaded in to
memory and run. The second file is the assembler list file with the. LST extension.
3. Linker: A linker is a program used to connect several object files into one large object
file. While writing large programs it is better to divide the large programs into smaller
modules. Each module can be individually written, tested and debugged. Then all the
object modules can also be kept in library file and linked into other programs as
needed. A linker produces a link file which contains the binary codes for all the
combined modules. The linker also produces a link map file which contains the address
information about the linked files. The linkers which comes with TASM or MASM
assemblers produce link files with the .EXE extension
4. Locator: A locator is a program used to assign the specific address of where the
segments of object code are to be loaded into memory. A locator program called
EXE2BIN comes with the IBMPC Disk Operating System (DOS). EXE2BIN converts a
EXE file to a .BIN file which has a physical address.
5. Debugger: A debugger is a program which allows to load your object code program
into system memory, execute the program and troubleshoot or debug it. The debugger
allows to look into the contents of registers and memory locations after the program
runs. We can also change the contents of registers and memory locations and rerun
the program. Some debuggers allow to stop the program after each instruction so that
you can check or alter the memory and register contents. This is called Single Step

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
8

Debug. A debugger also allows to set a breakpoint, the debugger will run the program
up to the instruction where the breakpoint is put and then stop the execution.
6. Emulator: An emulator is a mixture of hardware and software. It is usually used to test
and debug the hardware and software of an external system such as the prototype of
a microprocessor-based instrument.
Assembler Directives:
Assembler Directives are the directions to the assembler which indicate how an operand
or section of the program is to be processed. These are also called pseudo operations
which are not executable by the microprocessor. The various directives are explained
below.
1. ASSUME: The ASSUME directive is used to inform the assembler the name of the
logical segment it should use for a specified segment. Ex:
ASSUME DS:DATA tells the assembler that for any program instruction which
refers to the data segment it should use the logical statement called DATA.
2. DB: Define Byte. It is used to declare a byte variable or set aside one or more
storage locations of type byte in memory. For
example, CURRENT_VALUE DB 36H tells the assembler to reserve one byte of
memory for a variable named CURRENT_VALUE and put the value 36H in that
memory location when the program is loaded into RAM.
3. DW: Define Word. It tells the assembler to define a variable of type word or to
reserve storage locations of type word in memory.
4. DD: Define Double Word. This directive is used to declare a variable of type double
word or restore memory locations which can be accessed as type double word
5. DQ: Define Quadword. This directive is used to tell the assembler to declare a
variable word in length or to reserve four words of storage in memory.
6. DT: Define Ten bytes. It is to inform the assembler to define a variable which is 10
bytes in length or to reserve 10 bytes of storage in memory.
7. EQU: Equate. It is used to give a name to some value or symbol. Every time the
assembler finds the given name in the program, it will replace the name with the
value or symbol we have equated with that name.
8. ORG: Originate. The ORG statement changes the starting offset address of the
data. It allows to set the location counter to a desired value at any point in the
program. For example, the statement ORG 3000H tells the assembler to set the
location counter to 3000H.
9. PROC: Procedures. It is used to identify the start of a procedure or subroutine.
10. END: End program. This directive indicates the assembler that is the end of the
program module. The assembler ignores any statements after the END directive.
11. ENDP: End Procedure. It indicates the end of the procedure (subroutine) to the
assembler.
12. ENDS: End Segment. This directive is used with the name of the segment to
indicate the end of the logical statement. Ex
: CODE SEGMENT : Start of logical significant containing code. CODE
ENDS: End of the segment named code.

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
9

Experiment no. 1
PROGRAM FOR 16-BIT ARITHMETIC OPERATIONS FOR 8086(USING VARIOUS
ADDRESSING MODES)

ADDITION:
a) Code:
assume cs:code
code segment
mov ax,0ABCDH
mov bx,0ABCDH
add ax,bx
int 03H
code ends
end
Result:

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
10

b) Code:
data segment
num1 dW 1111H
num2 dW 2222H
res dW ?
data ends
assume cs:code,ds:data
code segment
movax,data
movds,ax
mov ax,num1
mov bx,num2
add ax,bx
movres,ax
int 03H
code ends
end
Result:

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
11

Subtraction:
Code:
assume cs:code
code segment
mov ax,2222H
mov bx,1111H
sub ax,bx
int 03H
code ends
end
Result:

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
12

Multiplication:
Code:
assume cs:code
code segment
mov ax,2222H
mov bx,1111H
mulbx
int 03H
code ends
end
Result:

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
13

Division:
Code:
assume cs:code
code segment
mov ax,2222H
mov bx,1111H
div bx
int 03H
code ends
end
Result:

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
14

EXPERIMENT NO.2

ALP TO ADD, SUBTRACT, MULTIPLY TWO 16-BIT UNSIGNED NUMBERSAND STORE THE RESULT IN
EXTRA SEGMENT
ASSUME CS:CODE,ES:EXTRA
CODE SEGMENT
MOV AX,EXTRA
MOV ES,AX
MOV DI,OFFSET SUM
XOR AX,AX
MOV AX,2222H
MOV CX,AX
MOV BX,1111H
ADD AX,BX
CLD
STOSW
XOR AX,AX
XOR DX,DX
MOV AX,CX
SUB AX,BX
STOSW
XOR AX,AX
MOV AX,C
MUL BX
STOSW
MOV BP,AX
MOV AX,DX
STOSW
INT 03H
CODE ENDS
EXTRA SEGMENT
SUM DW 01H DUP(?)
DIF DW 01H DUP(?)

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
15

PRO DW 02H DUP(?)

EXTRA ENDS
END

OBSERVE THE RESULT IN EXTRA SEGMENT

ALP TO ADD, SUBTRACT, MULTIPLY TWO 16-BIT UNSIGNED NUMBERS WITH


MACHINE CODE AND ADDRESSES

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
16

EXPERIMENT NO.3

ALP TO DIVIDE A 32-BIT UNSIGNED NUM BY A 16-BIT UNSIGNED NUM AND STORE THE RESULT IN
STACK SEGMENT
ASSUME CS:CODE,SS:STACK
CODE SEGMENT
MOV AX,STACK
MOV SS,AX
MOV BP,OFFSET QUOTIENT
MOV SP,BP
XOR AX,AX
MOV AX,2000H /* TAKE THE DIVISOR VALUE IN BX THAT DOESN'T
LEAD TO DIVIDE OVERFLOW */
MOV DX,4000H
MOV BX,8000H
DIV BX
PUSH AX
PUSH DX
INT 03H
CODE ENDS
STACK SEGMENT
ORG 2000H
QUOTIENT DW 01H DUP(?)
REMAINDER DW 01H DUP(?)
STACK ENDS
END

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
17

OBSERVE THE RESULT IN STACK SEGMENT

ALP TO DIVIDE32-BIT UNSIGNED NUMBER BY A 16-BIT UNSIGNED NUMBER WITH


MACHINE CODE AND ADDRESSES

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
18

EXPERIMENT NO.4

ALP TO SORT THE GIVEN ARRAY IN

32-BIT ASCENDING ORDER / DESCENDING ORDER


ASSUME CS:CODE,DS:DATA
CODE SEGMENT
MOV AX,DATA
MOV DS,AX
XOR AX,AX
MOV DX,0003H
L4: MOV CX,DX
MOV SI,OFFSET LIST
L3: XOR AX,AX
MOV AX,[SI+2]
CMP AX,[SI+6]
JC/JNC L1 /* For ascending JC L1,For descending JNC L1*/
JE L2
XCHG [SI+6],AX
XCHG [SI+2],AX
MOV BP,[SI]
XCHG [SI+4],BP
XCHG [SI],BP
JMP L1
L2: MOV DI,[SI]
CMP DI,[SI+4]
JC L1
XCHG DI,[SI+4]
XCHG DI,[SI]
L1: ADD SI,04H
LOOP L3
DEC DX
JNZ L4
INT 03H

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
19

CODE ENDS
DATA SEGMENT
LIST DD 0000CD34H,0000AB12H,002344AAH,00549120H
DATA ENDS
END

OBSERVE THE RESULT IN DATA SEGMENT

ALP TO SORT THE GIVEN ARRAY IN 32-BIT ASCENDING ORDER / DESCENDING


ORDER WITH MACHINE CODE AND ADDRESSES

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
20

EXPERIMENT NO.5

ALP TO PICK THE MEDIAN FROM THE GIVEN ARRAY OF NUMBERS


ASSUME CS:CODE,DS:DATA
CODE SEGMENT
MOV AX,DATA
MOV DS,AX
XOR AX,AX
MOV DX,0007H
L3: MOV CX,DX
MOV SI,OFFSET LIST
XOR AX,AX
L2: MOV AL,[SI]
CMP AL,[SI+1]
JC L1
JE L1
XCHG [SI+1],AL
XCHG [SI],AL
L1: INC SI
LOOP L2
DEC DX
JNZ L3
MOV SI,OFFSET LIST
MOV BL,02H
MOV AL,[SI+3]
ADD AL,[SI+4]
DIV BL
MOV [SI+8],AX
INT 03H
CODE ENDS
DATA SEGMENT
LIST DB 08H,07H,09H,06H,04H,03H,01H,02H
RESULT DW 01H DUP(?)

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
21

DATA ENDS
END
OBSERVE THE RESULT IN DATA SEGMENT

ALP TO PICK THE MEDIAN FROM THE GIVEN ARRAY OF NUMBERS WITH MACHINE
CODE AND ADDRESSES

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
22

EXPERIMENT NO.6

ALP TO FIND THE LENGTH OF A GIVEN STRING WHICH TERMINATES WITH A SPECIAL CHARACTER ($)
ASSUME CS:CODE,ES:EXTRA
CODE SEGMENT
MOV AX,EXTRA
MOV ES,AX
XOR AX,AX
LEA DI,STRING
MOV AL,KEY
CLD
L1: SCASB
JNE L1
MOV AX,DI
DEC AX
INT 03H
CODE ENDS
EXTRA SEGMENT
STRING DB "MICROPROCESSORS","$"
KEY EQU "$"
EXTRA ENDS
END

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
23

OBSERVE THE OUTPUT IN REGISTERS AND EXTRA SEGMENT

ALP TO FIND THE LENGTH OF A GIVEN STRINGWITH MACHINE CODE AND


ADDRESSES

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
24

EXPERIMENT NO.7

ALP TO REVERSE THE STRING AND VERIFY FOR PALINDROME


ASSUME CS:CODE,DS:DATA,ES:DATA
CODE SEGMENT
MOV AX,DATA
MOV DS,AX
MOV ES,AX
XOR AX,AX
XOR BX,BX
MOV CX,COUNT
LEA SI,SOURCE
LEA DI,DEST+4
L1: MOV AL,[SI]
MOV [DI],AL
INC SI
DEC DI
LOOP L1
MOV CX,COUNT
LEA SI,SOURCE
LEA DI,DEST
CLD
REPE CMPSB
JNZ L2
MOV BL,0FFH /*RETURN 0FFH IN BL REGISTER FOR PALINDROME */
L2: INT 03H
CODE ENDS
DATA SEGMENT
SOURCE DB "MADAM"
ORG 2000H
DEST DB 0FH DUP(?)
COUNT EQU 0005H
DATA ENDS

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
25

END

OBSERVE THE OUTPUT IN DATA SEGMENT AND RETURN CODE IN BX REGISTER

ALP TO REVERSE THE STRING AND VERIFY FOR PALINDROMEWITH MACHINE CODE
AND ADDRESSES

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
26

EXPERIMENT NO.8

ALP TO INSERT A CHARACTER TO THE GIVEN STRING


ASSUME CS:CODE,DS:DATA
CODE SEGMENT
MOV AX,DATA
MOV DS,AX
MOV ES,AX
XOR AX,AX
LEA SI,SOURCE
LEA DI,DEST
MOV CX,COUNT1
CLD
REP MOVSB
LEA BX,INSERT
MOV AL,[BX]
STOSB
MOV CX,COUNT2
REP MOVSB
INT 03H
CODE ENDS
DATA SEGMENT
SOURCE DB "TOMJERRY"
INSERT DB "&"
ORG 2000H
DEST DB 0FH DUP(?)
COUNT1 EQU 0003H
COUNT2 EQU 0005
DATA ENDS
END

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
27

OBSERVE THE OUTPUT IN DATA SEGMENT

ALP TO INSERT A CHARACTER TO THE GIVEN STRING WITH MACHINE CODE AND
ADDRESSES

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
28

EXPERIMENT NO.9
ALP TO DELETE A CHARACTER FROM THE GIVEN STRING
ASSUME CS:CODE,DS:DATA
CODE SEGMENT
MOV AX,DATA
MOV DS,AX
MOV ES,AX
XOR AX,AX
LEA SI,SOURCE
LEA DI,DEST
MOV CX,COUNT1
CLD
REP MOVSB
INC SI
MOV CX,COUNT2
REP MOVSB
INT 03H
CODE ENDS
DATA SEGMENT
SOURCE DB "TOM&JERRY"
ORG 2000H
DEST DB 0FH DUP(?)
COUNT1 EQU 0003H
COUNT2 EQU 0005H
DATA ENDS
END

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
29

OBSERVE THE OUTPUT IN DATA SEGMENT

ALP TO DELETE A CHARACTER FROM THE GIVEN STRINGWITH MACHINE CODE AND
ADDRESSES

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
30

EXPERIMENT NO.10
LOGICAL OPERATIONS OF 16-BIT DATA (SOFTWARE)
AIM:TO WRITE A ASSEMBLY LANGUAGE PROGRAM FOR LOGICAL OPERATIONS OF
16-BIT DATA USING IMMEDIATE ADDRESSING MODE.
COMPONENTS: MASM SOFTWARE, DOS BOX
PROGRAM:
A.AND GATE:
ASSUME CS: CODE
CODE SEGMENT
START: MOV AX, 3214H
MOV BX, 6839H
AND AX, BX
INT O3H
CODE ENDS
END START
ASSUME CS: CODE
CODE SEGMENT
START: MOV AX 5472H
MOV BX, 9283H
OR AX, BX
INT 03H
CODE ENDS
END START
C.NOT GATE:
ASSUME CS: CODE
CODE SEGMENT
START: MOV AX, 4286H
NOT AX
INT O3H
CODE ENDS
END START

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
31

D.EX-OR GATE:
ASSUME CS: CODE
CODE SEGMENT
START: MOV AX, 1750H
MOV BX, 6573H
XOR AX, BX
INT O3H
CODE ENDS
END START
E.NOR GATE:
ASSUME CS: CODE
CODE SEGMENT
START: MOV AX, 9784H
MOV BX, 4653H
OR AX, BX
NOT AX
INT O3H
CODE ENDS
END START
F.NAND GATE:
ASSUME CS: CODE
CODE SEGMENT
START: MOV AX, 2330H
MOV BX, 3728H
AND AX, BX
NOT AX
INT O3H
CODE ENDS
END START

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
32

G.EX-NOR GATE:
ASSUME CS: CODE
CODE SEGMENT
START: MOV AX, 3928H
MOV BX, 4287H
XOR AX, BX
NOT AX
INT O3H
CODE ENDS
END START

RESULT:

AND GATE:
INPUT1:3214H
INPUT2: 6879H
OUTPUT: 2010H

OR GATE:
INPUT1: 5472H
INPUT2: 6839H
OUTPUT: D673H

NOT GATE:
INPUT: 4286H
OUTPUT: BD79H

EX-OR GATE:
INPUT1: 1750H
INPUT2: 6573H
OUTPUT: 7223H

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
33

NOR GATE:
INPUT1: 9784H
INPUT2: 4653H
OUTPUT: 2828H

NAND GATE:
INPUT1: 2330H
INPUT2: 3728H
OUTPUT: DCDFH

EX-NOR GATE:
INPUT1: 3928H
INPUT2: 4287H
OUTPUT: 8450H

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
34

EXPERIMENT NO:11
16-BIT ARTHIMATIC OPERATIONS ON INDIRECT ADDRESSING
MODE
AIM: WRITE AN ALP TO PERFORM AN ARITHMETIC OPERATIONS FOR 16-BIT
DATA
COMPONENTS:
1.PERSONAL COMPUTER
2.MASM SOFTWARE
PROGRAMS:

(1).ADDITION:

ASSUME CS:CODE
CODE SEGMENT
MOV SI,2000H
MOV AX,[SI]
INC SI
INC SI
MOV BX,[SI]
ADD AX,BX
INT 03H
CODE ENDS
END

(2).SUBTRACTION:
ASSUME CS:CODE
CODE SEGMENT
MOV SI,2000H
MOV AX,[SI]
INC SI
INC SI
MOV BX,[SI]
SUB AX,BX

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
35

INT 03H
CODE ENDS
END

(3).MULTIPICATION:

ASSUME CS:CODE
CODE SEGMENT
MOV SI,2000H
MOV AX,[SI]
INC SI
INC SI
MOV BX,[SI]
MUL BX
INT 03H
CODE ENDS
END

(4). DIVISION:

ASSUME CS:CODE
CODE SEGMENT
MOV SI,2000H
MOV AX,[SI]
INC SI
INC SI
MOV BX,[SI]
DIV BX
INT 03H
CODE ENDS

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
36

RESULT:

1. ADDITION

INPUT: AX=5698H
BX=8734H
OUTPUT:AX=DDCC
DX=0000

2.SUBTRACTION:
INPUT: AX=6788H
BX=4523H
OUTPUT:AX=2265
DX=0000

3.MULTIPLICATION:

INPUT: AX=3417H
BL=8845H
OUTPUT:AX=E613
DX=0000
4.DIVISION:
INPUT:AL=8944H
BL=6633H
OUTPUT:AX=0001
DX=2311

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
37

EXPERIMENT NO:12
COPY/MOVE STRING FROM ONE LOCATION TO ANOTHER
AIM: WRITE LOGICAL PROGRAM TO COPY/MOVE STRING FROM ONE LOCATION TO
ANOTHER LOCATION.
COMPONENTS:
1.PERSONAL COMPUTER
2.MASM SOFTWARE
PROGRAMS:
ASSUME CS:CODE
CODE SEGMENT
START:MOV SI,2000H
MOV CL,05H
MOV DI,3000H
UP:MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
JNZ UP
INT 03H
CODE ENDS
END START

RESULT:
INPUT:
E 2000
13 26 39 52 65
OUTPUT:
D DS:3000
13 26 39 52 65

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
38

EXPERIMENT NO:13
REVERSE OF THE STRING
AIM: WRITE LOGICAL PROGRAM TO REVERSE OF STRING.
COMPONENTS:
1.PERSONAL COMPUTER
2.MASM SOFTWARE
PROGRAMS:
ASSUME CS:CODE
CODE SEGMENT
START:MOV SI,2000H
MOV CX,0006H
MOV DI,3000H
ADD SI,0005H
UP:MOV AL,[SI]
MOV [DI],AL
DEC SI
INC DI
LOOP UP
INT 03H
CODE ENDS
END START

RESULT:
INPUT:
E 2000
22 33 44 55 66 77
OUTPUT:
D DS:3000
77 66 55 44 33 22

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
39

EXPERIMENT NO:14
GET REVERSE OF A GIVEN NUMBER
AIM: WRITE LOGICAL PROGRAM TO GET REVERSE OF A GIVEN NUMBER.
COMPONENTS:
1.PERSONAL COMPUTER
2.MASM SOFTWARE
PROGRAMS:
ASSUME CS:CODE
CODE SEGMENT
START:MOV SI,2000H
MOV AX,[SI]
MOV CL,04H
ROL AL,CL
XCHG AL,AH
ROR AL,CL
INT 03H
CODE ENDS
END START

RESULT:
INPUT:5974
E 2000
74 59
OUTPUT:
AX=4795

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
40

EXPERIMENT NO:15
PROGRAM FOR FACTOROAL OF A GIVEN NUMBER
AIM: WRITE LOGICAL PROGRAM TO FIND FACTORIAL OF A GIVEN NUMBER.
COMPONENTS:
1.PERSONAL COMPUTER
2.MASM SOFTWARE
PROGRAMS:
ASSUME CS:CODE
CODE SEGMENT
START:MOV SI,2000H
MOV CL,[SI]
MOV AL,00H
MOV AH,00H
UP:MUL CL
DEC CL
JNZ UP
INT 03H
CODE ENDS
END START

RESULT:
INPUT:
CL=0005
OUTPUT:
AX=0078

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
41

EXPERIMENT NO:16
PROGRAM FOR 8-BIT MANUPULATON
AIM:WRITE AN ALP TO PERFORM 8-BIT ARITHMETIC OPERATIONS FOR
8086(USING VARIOUS ADDRESSING MODES)
APPARATUS:
1.PERSONAL COMPUTER
2.MASM SOFTWARE
PROGRAM:
A.ADDITION:-
ASSUME CS:CODE
CODE SEGMENT
MOV AL,12H
MOV BL,34H
ADD AL,BL
INT 03H
CODE ENDS
END
RESULT:
OUTPUT:
AX=FF46
B.SUBTRACTION:
ASSUME CS: CODE
CODE SEGMENT
MOV AL,12H
MOV BL,34H
SUB BL,AL
INT 03H
CODE ENDS
END
RESULT:
OUTPUT:
AX=FF12

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
42

C.MULTIPLICATION:
ASSUME CS:CODE
CODE SEGMENT
MOV AL,22H
MOV BL,11H
MUL BL
INT 03H
CODE ENDS
END
RESULT:
OUTPUT:
AX=0242

D.DIVISION:
ASSUME CS:CODE
CODE SEGMENT
MOV AH,00H
MOV AL,33H
MOV BL,11H
DIV BL
INT 03H
CODE ENDS
END
RESULT:
OUTPUT:
AX=0003

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
43

8051 MICROCONTROLLER
EXPERIMENT NO:17
PROGRAM FOR ARITHMETIC OPERATIONS OF 8051
MICREOCONTROLLER
AIM:WRITE AN ASSEMBLY LANGUAGE PROGRAM TO PERFORM ARITHMETIC
OPERATIONS OF TWO 8 BIT NUMBERS
APPARATUS:
1.MC 8051 TRAINER KIT
2.SMPS
PROGRAM:
A.ADDITION:
8000 MOV A,#03
8002 MOV B,#05
8005 ADD A,B
8007 LCALL 03
RESULT:
S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#03

2. 8002 75 MOV B,#05

3. 8005 25 ADD A,B

4. 8007 12 LCALL 03

OUTPUT: A(DATA)=08

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
44

PROGRAM:
A.SUBTRACTION:
8000 MOV A,#05
8002 MOV B,#02
8005 SUBB A,B
8007 LCALL 03
RESULT:
S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#05

2. 8002 75 MOV B,#02

3. 8005 95 SUBB A,B

4. 8007 12 LCALL 03

OUTPUT: A(DATA)=03

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
45

MULTIPLICATION:
PROGRAM:
8000 MOV DPTR,#8200
8001 MOV A,@DPTR
8004 MOV F0,A
8005 INC DPTR
8007 MOVX A,@DPTR
8008 MUL AB
8009 INC DPTR
800A MOVX @DPTR,A
800B MOV A,F0
800E INC DPTR
800F MOVX @DPTR,A
8010 LCALL 03

RESULT:
S.NO ADDRESS OPCODE MNEMONIC OPRANDS

1. 8000 03 MOV DPTR,#8200


2. 8001 90 MOV A,@DPTR
3. 8004 E0 MOV F0,A
4. 8005 F5 INC DPTR
5. 8007 A3 MOVX A,@DPTR
6. 8008 E0 MUL AB
7. 8009 A4 INC DPTR
8. 800A A3 MOVX @DPTR,A
9. 800B F0 MOV A,F0
10. 800E A3 INC DPTR
11. 800F F0 MOVX @DPTR,A
12. 8010 12 LCALL 03

OUTPUT A(DATA):36H

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
46

DIVISION:
PROGRAM:
8000 MOV DPTR,#8200
8001 MOV A,@DPTR
8004 MOV F0,A
8005 INC DPTR
8007 MOVX A,@DPTR
8008 DIV AB
8009 INC DPTR
800A MOVX @DPTR,A
800B MOV A,F0
800E INC DPTR
800F MOVX @DPTR,A
8010 LCALL 03

RESULT:
S.NO ADDRESS OPCODE MNEMONIC OPRANDS

1. 8000 03 MOV DPTR,#8200


2. 8001 90 MOV A,@DPTR
3. 8004 E0 MOV F0,A
4. 8005 F5 INC DPTR
5. 8007 A3 MOVX A,@DPTR
6. 8008 E0 MUL AB
7. 8009 A4 INC DPTR
8. 800A A3 MOVX @DPTR,A
9. 800B F0 MOV A,F0
10. 800E A3 INC DPTR
11. 800F F0 MOVX @DPTR,A
12. 8010 12 LCALL 03

OUTPUT A(DATA):02H

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
47

EXPERIMENT NO:18
PROGRAM FOR INCREMENT AND DECREMENT OPERATIONS OF
8051 MICREOCONTROLLER
AIM:WRITE AN ASSEMBLY LANGUAGE PROGRAM AND EXECUTE THE PROGRAM FOR
INCREMENT/DECFEMENT OPERATIONS OF 8051 MICRO CONTROLLER
APPARATUS:
1.MC 8051 TRAINER KIT
2.SMPS
PROGRAM:
A.INCREMENT:
8000 MOV A,#08
8002 INC A
8003 LCALL 03
RESULT:
S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#08

2. 8002 04 INC A

3. 8003 12 LCALL 03

OUTPUT: A(DATA)=09

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
48

PROGRAM:
A.DECREMENT:
8000 MOV A,#08
8002 DEC A
8003 LCALL 03
RESULT:
S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#08

2. 8002 04 DEC A

3. 8003 12 LCALL 03

OUTPUT: A(DATA)=07

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
49

EXPERIMENT NO:19
PROGRAM FOR LOGICAL OPERATIONS OF 8051
MICREOCONTROLLER
AIM:WRITE AN ASSEMBLY LANGUAGE PROGRAM AND EXECUTE THE PROGRAM FOR
LOGICAL OPERATIONS OF 8051 MICRO CONTROLLER
APPARATUS:
1.MC 8051 TRAINER KIT
2.SMPS
PROGRAM:
A.AND OPERATION:
8000 MOV A,#03
8002 MOV R1,#09
8004 ANL A,R1
8005 LCALL 03
RESULT:
S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#03

2. 8002 79 MOV R1,#09

3. 8004 89 ANL A,R1

4. 8005 12 LCALL 03

OUTPUT: A(DATA)=01

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
50

PROGRAM:
B.OR OPERATION:
8000 MOV A,#05
8002 MOV R1,#09
8004 ORL A,R1
8005 LCALL 03
RESULT:
S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#05

2. 8002 79 MOV R1,#09

3. 8004 49 ORL A,R1

4. 8005 12 LCALL 03

OUTPUT: A(DATA)=0D

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
51

PROGRAM:
C.EX-OR OPERATION:
8000 MOV A,#05
8002 MOV R1,#09
8004 XRL A,R1
8005 LCALL 03
RESULT:
S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#05

2. 8002 79 MOV R1,#09

3. 8004 69 XRL A,R1

4. 8005 12 LCALL 03

OUTPUT: A(DATA)=0C

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
52

EXPERIMENT NO:20
PROGRAM FOR ROTATE,SWAP,CLEAR OPERATIONS OF 8051
MICREOCONTROLLER
AIM:WRITE AN ASSEMBLY LANGUAGE PROGRAM AND EXECUTE THE PROGRAM FOR
ROTATE OPERATIONS OF 8051 MICRO CONTROLLER
APPARATUS:
1.MC 8051 TRAINER KIT
2.SMPS
PROGRAM:
A.ROTATE LEFT OPERATION(WITHOUT CARRY):
8000 MOV A,#05
8002 RL A
8003 LCALL 03

RESULT:

S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#05

2. 8002 23 RL A

3. 8003 12 LCALL 03

OUTPUT: A(DATA)=0A

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
53

PROGRAM:
B.ROTATE LEFT OPERATION(WITH CARRY):
8000 MOV A,#0A
8002 RLC A
8003 LCALL 03
RESULT:

S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#0A

2. 8002 33 RLC A

3. 8003 12 LCALL 03

OUTPUT: A(DATA)=14

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
54

PROGRAM:
C.ROTATE RIGHT OPERATION(WITHOUT CARRY):
8000 MOV A,#05
8002 RR A
8003 LCALL 03
RESULT:

S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#05

2. 8002 03 RR A

3. 8003 12 LCALL 03

OUTPUT: A(DATA)=82

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
55

PROGRAM:
D.ROTATE RIGHT OPERATION(WITH CARRY):
8000 MOV A,#0A
8002 RRC A
8003 LCALL 03
RESULT:

S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#0A

2. 8002 13 RRC A

3. 8003 12 LCALL 03

OUTPUT: A(DATA)=05

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
56

PROGRAM:
E.SWAP OPERATION:
8000 MOV A,#03
8002 SWAP A
8003 LCALL 03
RESULT:

S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#03

2. 8002 04 SWAP A

3. 8003 12 LCALL 03

OUTPUT: A(DATA)=30

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
57

PROGRAM:
F.CLEAR OPERATION:
8000 MOV A,#05
8002 CLR A
8003 LCALL 03
RESULT:

S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#05

2. 8002 E4 CLR A

3. 8003 12 LCALL 03

OUTPUT: A(DATA)=00

11

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
58

EXPERIMENT NO:21
PROGRAM FOR 1’S COMPLIMENT OPERATION OF 8051
MICREOCONTROLLER
AIM:WRITE AN ASSEMBLY LANGUAGE PROGRAM AND EXECUTE THE PROGRAM FOR
1’S COMPLIMENT OPERATION OF 8051 MICRO CONTROLLER
APPARATUS:
1.MC 8051 TRAINER KIT
2.SMPS
PROGRAM:
A.AND OPERATION:
8000 MOV A,#05
8002 CLP A
8003 LCALL 03
RESULT:

S.NO ADDRESS OPCODE MNEMONIC OPERANDS

1. 8000 74 MOV A,#05

2. 8002 F4 CPL A

3. 8003 12 LCALL 03

OUTPUT: A(DATA)=FA

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
59

EXPERIMENT NO.22
Assembly Language Programs to 8086 to Perform Arithmetic, Logical, String Operations on
16 Bit and 32-Bit Data

Aim: To Perform all Arithmetic, logical and string Operations


Apparatus: 8086 Microprocessor kit
Addition:

MEMORY LOCATION OP-CODE LABEL MNEMONIC


1000 MOV AX,4343
MOV BX,1111
ADD AX,BX
INT 3

OUTPUT:
Input output
Register Data Register Data
AX 4343 AX 5454
BX 1111

SUBTRACTION:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


1000 MOV AX,4343
MOV BX,1111
SUB AX,BX
INT 3

OUTPUT:

Input output
Register Data Register Data
AX 4343 AX 3232
BX 1111

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
60

MULTIPLICATION:
MEMORY LOCATION OP-CODE LABEL MNEMONIC
1000 MOV AX,4343
MOV BX,1111
MUL BX
INT 3

OUTPUT:
Input Output
Register Data Register Data
AX 4343 AX EA73
BX 1111 DX 047B

DIVISION:

MEMORY LOCATION OP-CODE LABEL MNEMONIC


1000 MOV AX,34CDH
MOV BX,12ABH
DIV BX
INT 3

OUTPUT:
Input Output
Register Data Register Data
AX 34CD AX 0002
BX 12AB DX 0F77

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
61

LOGICAL OPERATIONS:

AND:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


1000 MOV AL,43
MOV BL,11
AND AL,BL
INT 3

OUTPUT:

Input output
Register Data Register Data
AL 43 AL 01
BL 11 BL 11

OR:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


1000 MOV AL,43
MOV BL,11
OR AL,BL
INT 3

OUPUT:

Input output
Register Data Register Data
AL 43 AL 53
BL 11 BL 11

NOR:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


1000 MOV AL,43
MOV BL,11
OR AL,BL
NOT AL
INT 3

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
62

OUTPUT:

Input output
Register Data Register Data
AL 43 AL AC
BL 11 BL 11

NAND:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


1000 MOV AL,43
MOV BL,11
AND AL,BL
NOT AL
INT 3

OUTPUT:

Input output
Register Data Register Data
AL 43 AL FE
BL 11 BL 11

EX-NOR:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


1000 MOV AL,43
MOV BL,11
XOR AL,BL
NOT AL
INT 3

OUTPUT:

Input output
Register Data Register Data
AL 43 AL AD
BL 11 BL 11

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
63

STRING OPERATIONS:

REVERSE A STRING:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


1000 MOV SI,2000
MOV DI,2008
MOV CX,0008
ADD SI,07
UP MOV AL,[SI]
MOV [DI],AL
DEC SI
INC DI
DEC CX

JNZ UP
INT 3

OUTPUT:

Input output
MEMORY Data MEMORY Data
LOCATION LOCATION
2000 01 2008 08
2001 02 2009 07
2002 03 200A 06
2003 04 200B 05
2004 05 200C 04
2005 06 200D 03
2006 07 200E 02
2007 08 200F 01

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
64

EXPERIMENT NO.23
Bit level Logical Operations, Rotate, Shift, Swap and Branch Operations.
ROTATE RIGHT:
MEMORY LOCATION OP-CODE LABEL INSTRUCTION
1000 MOV AX,9E78H
MOV CL,02
ROR AX,CL
INT 3

OUTPUT:

Input output
Register Data Register Data
AX 9E78 AX 279E
CL 02

ROTATE LEFT:
MEMORY LOCATION OP-CODE LABEL INSTRUCTION
1000 MOV AX,124FH
MOV CL,03
ROL AX,CL
INT 3

OUTPUT:

Input output
Register Data Register Data
AX 9E78 AX 9278
CL 03

SHIFT LEFT:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


1000 MOV AX,7FA4H
MOV CL,02H
SHL AX,CL
INT 3

OUTPUT:
Input output
Register Data Register Data
AX 7FA4 AX FE90
CL 02

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
65

SHIFT RIGHT:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


1000 MOV AX,7FA4H
MOV CL,02H
SHR AX,CL
INT 3

OUTPUT:

Input output
Register Data Register Data
AX 7FA4 AX 1FE9
CL 02

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
66

EXPERIMENT NO.24
Assembly Language Programs to Perform Arithmetic (Both Signed and Unsigned) 16 Bit Data
Operations, Logical Operations (Byte and Bit Level Operations), Rotate, Shift, Swap and
Branch Instructions.
Aim: To Perform all Arithmetic, logical, Rotate, Shift, Swap and branch Operations.
Apparatus: 8051 Microcontroller kit.
ADDITION:

MEMORY LOCATION OPCODE LABEL MNEMONIC


4100 CLR C
MOV A,#DATAL1
ADDC A,#DATAL2
MOV DPTR,#4150
MOVX @DPTR,A
INC DPTR
MOV A,#DATAM1
ADDC A,#DATAM2
HERE: MOVX @DPTR,A
SJMP HERE

OUTPUT:

Input output
DATAL1 34 ADDRESS Data
DATAL2 78 4150 AC
DATAM1 12 4151 68
DATAM2 56

SUBTRACTION:

MEMORY LOCATION OPCODE LABEL MNEMONIC


4100 CLR C
MOV A,#DATA1
SUBB A,#DATA2
MOV DPTR,#4500
MOVX @DPTR,A
HERE: SJMP HERE

OUTPUT:

Input output
DATA1 20 4500 10
DATA2 10 4501

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
67

MULTIPLICATION:

MEMORY LOCATION OPCODE LABEL MNEMONIC


4100 MOV A,#DATA1
MOV B,#DATA2
MUL AB
MOV DPTR,#4500
MOVX @DPTR,A
INC DPTR
MOV A,B
HERE: MOVX @DPTR,A
SJMP HERE

OUTPUT:

Input output
DATA1 0A 4500 50
DATA2 88 4501 05

DIVISION:

MEMORY LOCATION OPCODE LABEL MNEMONIC


4100 MOV A,#DATA1
MOV B,#DATA2
DIV AB
MOV DPTR,#4500
MOVX @DPTR,A
INC DPTR
MOV A,B
HERE: MOVX @DPTR,A
SJMP HERE

OUTPUT:

Input output
DATA1 65 (DIVIDEND) 4500 0C
DATA2 08 (DIVISOR) 4501 05

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
68

LOGICAL OPERATIONS:

AND:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#43
MOV DPTR,#4150
MOV R0,11
ANL A,R0
HERE: MOVX @DPTR,A
SJMP HERE

OUTPUT:

Input output
Register Data Register Data
A 43 4150 01
R0 11 R0 11

OR:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#43
MOV DPTR,#4150
MOV R0,11
ORL A,R0
MOVX @DPTR,A
HERE: SJMP HERE

OUPUT:

Input output
Register Data Register Data
A 43 4150 53
R0 11 R0 11

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
69

NOR:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#43
MOV DPTR,#4150
MOV R0,11
ORL A,R0
CPL A
MOVX @DPTR,A
HERE: SJMP HERE

OUTPUT:

Input output
Register Data Register Data
A 43 4150 AC
R0 11 R0 11

NAND:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#43
MOV DPTR,#4150
MOV R0,11
ANL A,R0
CPL A
MOVX @DPTR,A
HERE: SJMP HERE

OUTPUT:

Input output
Register Data Register Data
A 43 4150 FE
R0 11 R0 11

EX-NOR:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#43
MOV DPTR,#4150
MOV R0,11
XRL A,R0
CPL A
HERE: MOVX @DPTR,A
SJMP HERE

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
70

OUTPUT:

Input output
Register Data Register Data
A 43 4150 AD
R0 11 R0 11

EX-OR:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#43
MOV DPTR,#4150
MOV R0,11
XRL A,R0
MOVX @DPTR,A
HERE: SJMP HERE

OUTPUT:

Input output
Register Data Register Data
A 43 4150 52
R0 11 R0 11

ROTATE RIGHT:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#25
MOV DPTR,#4150
RR A
MOVX @DPTR,A
HERE: SJMP HERE

OUTPUT:

Input output
Register Data Register Data
A 25 4150 92

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
71

ROTATE LEFT:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#25
MOV DPTR,#4150
RL A
MOVX @DPTR,A
HERE: SJMP HERE

OUTPUT:

Input output
Register Data Register Data
A 25 4150 4A

ROTATE RIGHT WITH CARRY:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#25
MOV DPTR,#4150
RRC A
MOVX @DPTR,A
HERE: SJMP HERE

OUTPUT:

Input output
Register Data Register Data
A 25 4150 92

ROTATE LEFT WITH CARRY:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#25
MOV DPTR,#4150
RLC A
MOVX @DPTR,A
HERE: SJMP HERE

OUTPUT:

Input output
Register Data Register Data
A 25 4150 4A

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
72

SWAP:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#25
MOV DPTR,#4150
SWAP A
MOVX @DPTR,A
HERE: SJMP HERE

OUTPUT:

Input output
Register Data Register Data
A 25 4150 52

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
73

EXPERIMENT NO.25
Time delay Generation Using Timers of 8051.
Aim: To perform time delay generation using timers.
Apparatus: 8051 Microcontroller kit,
Timer interfacing device (8253)
Program:
MEMORY LOCATION OP-CODE LABEL INSTRUCTION
4100 MOV DPTR,#FFCE
MOV A,#30
MOVX @DPTR,A
MOV DPTR,#FFC8
MOV A,#05
MOVX @DPTR,A
MOV A,#00
MOVX @DPTR,A
HERE SJMP HERE

OUTPUT: Connect CLKO of 8253 to the debounce circuit and execute the program. Observe the
output of channel 0. After giving six clock pulses, output goes high

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
74

EXPERIMENT NO.26
Serial Communication from / to 8051 to / from I/O devices.

Aim: To perform data transfer from one device to another device using serial port.
Apparatus: 8051 microcontroller kit
Serial interfacing device (8251)
Program:
Transmitter program:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV A,#36
MOV DPTR,#FFCE
MOVX @DPTR,A
MOV A,#12
MOV DPTR,#FFC8
MOVX @DPTR,A
MOV A,#00
MOVX @DPTR,A
MOV A,#4E
MOV DPTR,#FFC2
MOVX @DPTR,A
MOV A,#37
MOVX @DPTR,A
MOV A,#41
MOVX @DPTR,A
HERE SJMP HERE

Receiver program:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV TMOD,#20
MOV TH1,#FD
MOV TL1,#00
MOV TCON,#40
MOV SCON,#58
REPT JNB SCON.0 REPT
CLR SCON.0
MOV A,SBUF
MOV DPTR,#4200
MOVX @DPTR,A
HERE
SJMP HERE

OUTPUT: The transmitter program transfers 41H serially. In the receiver, 8051 internal registers are
initialised for serial reception. As the character is received, the program stores 41H at the location
4200

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
75

EXPERIMENT NO.27
Program Using Interrupts to Generate Square Wave 10 KHZ Frequency on P2.1 Using Timer 0
8051 in 8 bit Auto reload Mode and Connect a 1 HZ Pulse to INT1 pin and Display on Port 0.
Assume Crystal Frequency as 11.0592 MHZ

AIM: TO GENERATE SQUARE WAVE OF FREQUENCY 150 KHz AT CHANNEL 0


APPARATUS: 8051 MICRO CONTROLLER KIT

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 74 36 MOV A,#36
4102 90 FF CE MOV DPTR,#FFCE
4105 F0
MOVX @DPTR,A
4106 74 12
4108 90 FF C8 MOV A,#12
410B F0 MOV DPTR,#FFC8
410C 74 00 MOVX @DPTR,A
410E F0 MOV A,#00
410F 80 FE HERE: MOVX @DPTR,A
HERE SJMP HERE

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
76

EXPERIMENT NO.28
7 Segment Display to 8051
Aim: To initialise 8279 and to display the character A in the first digit of the display.
Apparatus: 8051 microcontroller kit
8279 display interfacing device.
Program:

MEMORY LOCATION OP-CODE LABEL INSTRUCTION


4100 MOV DPTR,#FF01
4103 CLR A
4104
MOVX @DPTR,A
4105
4107 MOV A,#CC
4108 MOVX @DPTR,A
410A ;Clear Display RAM
410B MOV A,#90
410E MOVX @DPTR,A
4110 ;Select auto-row increment
4111 MOV DPTR,#FF00
MOV A,#88
MOVX @DPTR,A
SJMP HERE
HERE:

OUTPUT: Enter the above program from the address specified and execute it. The display should be
"A" in the first digit, and the rest should be blank

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
77

EXPERIMENT NO.29
Matrix Keypad to 8051
PROGRAM IN MICRO-51EB LCD ASSEMBLY LANGUAGE
ORG 4100H
DEN EQU 0FF04H
DENL EQU 04H
LATCH EQU 0FF08H
LATCHL EQU 08H
IOHIGH EQU 0FFH
4100 KEYSTART:
4100 90 FF 0F MOV DPTR,#FF0FH
4103 74 82 MOV A,#82H
4105 F0 MOVX @DPTR,A
4106 START:
4106 74 00 MOV A,#00H
4108 90 FF 0C MOV DPTR,#FF0CH ;PORTA
410B F0 MOVX @DPTR,A
410C 90 FF 0D MOV DPTR,#FF0DH ;PORTB
410F E0 MOVX A,@DPTR
4110 54 0F ANL A,#0FH
4112 B4 0F 03 CJNE A,#0FH,CONT
4115 02 41 06 LJMP START
4118 CONT:
4118 12 41 1E LCALL GETDAT ; R O U T I N E T O GETDATA
411B 02 41 06 LJMP START
411E GETDAT:
411E 7A 51 MOV R2,#51H
4120 7B 00 MOV R3,#00H ;DATA TO BE DISPLAY IN 5100H
4122 7C 52 MOV R4,#52H
4124 7D 00 MOV R5,#00H
4126 74 0E MOV A,#0EH ;FIRST ROW DATA
4128 12 41 3B LCALL FIND1

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
78

412B 74 0D MOV A,#0DH ;SECOND ROW DATA


412D 12 41 3B LCALL FIND1
4130 74 0B MOV A,#0BH ;THIRD ROW DATA
4132 12 41 3B LCALL FIND1
4135 74 07 MOV A,#07H ;FOURTH ROW DATA
4137 12 41 3B LCALL FIND1
413A 22 RET
413B FIND1:
413B 90 FF 0C MOV DPTR,#FF0CH
413E F0 MOVX @DPTR,A
413F 90 FF 0D MOV DPTR,#FF0DH
4142 E0 MOVX A,@DPTR
4143 54 0F ANL A,#0FH
4145 FE MOV R6,A
4146 7F 04 MOV R7,#04H ; F O U R R O W S CHECKING
4148 FFN2:
4148 8C 83 MOV DPH,R4
414A 8D 82 MOV DPL,R5
414C E0 MOVX A,@DPTR
414D 8E 82 MOV DPL,R6
414F B5 82 04 CJNE A,DPL,FFN3
4152 12 41 5F LCALL STOREDAT ;CALL LCD DISPLAY
ROUTINE
4155 22 RET
4156 FFN3:
4156 0B INC R3 ;INC FOR NEXT DATA
4157 0D INC R5 ;INC FOR NEXT ROW
4158 DF EE DJNZ R7,FFNZ ; D E C R E M E N T T H ECOUNT
415A 7C 52 MOV R4,#52H
415C 7D 00 MOV R5,#00H ;RELOAD THE COUNT
415E 22 RET
415F STOREDAT:

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
79

415F 12 41 93 LCALL BSYCHK


4162 90 FF 04 MOV DPTR,#DEN
4165 74 38 MOV A,#38H
4167 F0 MOVX @DPTR,A ;FUNCTION SET
4168 12 41 93 LCALL BSYCHK
416B 74 01 MOV A,#01H
416D F0 MOVX @DPTR,A ;CLEAR DISPLAY
416E 12 41 93 LCALL BSYCHK
4171 74 06 MOV A,#06H
4173 F0 MOVX @DPTR,A ;ENTRY MODE SET
4174 12 41 93 LCALL BSYCHK
4177 74 0F MOV A,#0FH ;DISPLAY CONTROL
4179 F0 MOVX @DPTR,A
417A 12 41 93 LCALL BSYCHK
417D 74 80 MOV A,#80H ;SET DDRAM ADDRESS
417F F0 MOVX @DPTR,A
4180 8A 83 MOV DPH,R2 ; MOVECORRESPONDING KEY
TO POINTER
4182 8B 82 MOV DPL,R3
4184 MORE:
4184 12 41 93 LCALL BSYCHK
4187 74 01 MOV A,#01H
4189 75 A0 FF MOV P2,#IOHIGH ;RS=1,R/W=0
418C F2 MOVX @R0,A
418D E0 MOVX A,@DPTR
418E 75 A0 FF MOV P2,#IOHIGH
4191 F3 MOVX @R1,A ;WRITE DATA TODDRAM
4192 22 RET
4193 BSYCHK:
4193 79 04 MOV R1,#DENL
4195 78 08 MOV R0,#LATCHL
4197 75 A0 FF MOV P2,#IOHIGH

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
80

419A 74 02 MOV A,#02H ;R2=0,R/W=1


419C F2 MOVX @R0,A
419D BSY:
419D 75 A0 FF MOV P2,#IOHIGH
41A0 E3 MOVX A,@R1 ;CHECK BUSY FLAG
41A1 54 80 ANL A,#80H
41A3 70 F8 JNZ BSY
41A5 75 A0 FF MOV P2,#IOHIGH
41A8 74 00 MOV A,#00H ;RS=0,R/W=0
41AA F2 MOVX @R0,A
41AB 22 RET
DATA TO BE STORED:
5100 30H, 31H, 32H, 33H
5104 34H, 35H, 36H, 37H
5108 38H, 39H, 41H, 42H; ASCII VALUESFOR THE KEYS
510C 43H, 44H, 45H, 46H
5200 0EH, 0DH, 0BH, 07H

PROCEDURE:
The above mentioned datas are to be stored in corresponding locations when we press the key
In hex key board, the key will be displayed in MICRO-51 EB LCD KIT

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
81

EXPERIMENT NO.30
8 bit ADC Interface to 8051.

Aim: To convert analog input to digital conversion using 8051 microcontroller.


Apparatus: 8051 microcontroller kit
ADC interface board.
Program:
The following program selects channel 0. Execute the program. Start the analog to
Digital conversion process by pressing the SOC switch. ADC 0809 (U3) converts the
Analog input at channel 0 to a digital value and 74LS374 latchet the data to glow the
LEDs accordingly.
ORG 4100
4100 90 FF C8 MOV DPTR, #FFC8 ; CHANNEL 0 SELECTION
4103 74 10 MOV A, #10 ; AND ALE LOW
4105 F0 MOVX @DPTR, A
4106 74 18 MOV A, #18 ; ALE HIGH
4108 F0 MOVX @DPTR, A
4109 80 FE HERE: SJMP HERE

PROCEDURE

1. Place jumper J2 in B position.


2. Place jumper J5 in A position.
3. Enter and execute the program.
4. Vary the analog input (using trim pot) and give the SOC by pressing the SOC
Switch.
5. See the corresponding digital value in the led display.

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.


JNTUHCER EEE
82

EXPERIMENT NO.31
Triangular Wave Generator through DAC interfaces to 8051.
Aim: To generate a Triangular wave from using DAC interface to 8051.
Apparatus: 8051 Microcontroller kit
DAC interface board.
Program:
DAC I EQU 0FFC0H
ORG 4100H
4100 START:
4100 74 00 MOV A,#00H
4102 LI:
4102 90 FF C0 MOV DPTR,#DACI
4105 F0 MOVX @DPTR,A
4106 04 INC A
4107 70 F9 JNZ LI
4109 74 FF MOV A,#FFH
410B L2:
410B F0 MOVX @DPTR,A
410C 14 DEC A
410D 70 4C JNZ L2
410F 80 EF SJMP START
4111 END

JNTUH COLLEGE OF ENGINEERING,AGRAHARAM, RAJANNA SIRICILLA DIST.

You might also like