0% found this document useful (0 votes)
689 views35 pages

MPMC Lab Manual 2019-20 PDF

The document describes the list of experiments for the subjects Microprocessors & Microcontrollers Lab Manual. It includes experiments related to the 8086 microprocessor involving arithmetic operations, logical operations, string instructions, algorithms and interfacing with interrupt controller, keyboard/display and PPI. It also includes experiments related to 8051 microcontroller involving assembly language programs and interfacing with switches/LEDs, 7-segment display, stepper motor and traffic light controller.

Uploaded by

Vinay Kumar
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)
689 views35 pages

MPMC Lab Manual 2019-20 PDF

The document describes the list of experiments for the subjects Microprocessors & Microcontrollers Lab Manual. It includes experiments related to the 8086 microprocessor involving arithmetic operations, logical operations, string instructions, algorithms and interfacing with interrupt controller, keyboard/display and PPI. It also includes experiments related to 8051 microcontroller involving assembly language programs and interfacing with switches/LEDs, 7-segment display, stepper motor and traffic light controller.

Uploaded by

Vinay Kumar
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/ 35

III-II (R16) ECE

MICROPROCESSORS & MICROCONTROLLERS LAB MANUAL


KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

LIST OF EXPERIMENTS

PART-1: MICROPROCESSOR 8086

1. INTRODUCTION TO MASM/TASM.

2. ARTHIMETIC OPERATIONS- 16 BIT UNSIGNED, SIGNED, MULTIBYTE, ASCII- ARTHIMETIC


OPERATIONS.

3. LOGICAL OPERATIONS- CONVERTING PACKED BCD TO UNPACKED BCD, BCD TO ASCII


CONVERSION, UNPACKED TO PACKED BCD NUMBERS.

4. USING STRING INSTRUCTIONS: MOVE BLOCK, REVERSING A STRING, SORTING, INSERTING,


DELETING, LENGTH OF A STRING, STRING COMPARISION.

5. WRITE AN ALPTO FIND SQUARE ROOT OF A GIVEN NUMBER

6. WRITE AN ALP FOR ADDITION OF N NUMBERS

7. WRITE AN ALP TO FIND SUM OF SQUARES OF GIVEN NUMBERS

8. NUMBER OF EVEN AND ODD NUMBERS.

9. NUMBER OF POSITIVE AND NEGATIVE NUMBERS

10. FACTORIAL OF A GIVEN NUMBER

PART II: INTERFACING WITH MICROPROCESSOR

1.8259- INTERRUPT CONTROLLER-GENERATE AN INTERRUPT USING 8259

2. 8279-KEYBOARD DISPLAY-WRITE A PROGRAM TO DISPLAY A STRING

3. 8255-PPI-WRITE AN ALP TO GENERATE SINUSOIDAL WAVE USING PPI.

PART III: MICROCONTROLLER 8051 ASSEMBLY LANGUAGE PROGRAMS (ANY 3)

1. FIND NUMBER OF 1’S AND 0’S IN A GIVEN 8 BIT NUMBER.

2. ASCENDING /DESCENDING ORDER.

3. ADDITION OF N NUMBERS.

4. AVERAGE OF N NUMBERS.

PART IV: INTERFACING WITH MICRO CONTROLLER (ANY 3)

1. SWITCHES AND LEDS.

2.7-SEGMENT DISPLAY

3. STEPPERMOTOR INTERFACE.

4. TRAFFIC LIGHT CONTROLLER.

Page 2
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

PART-1: MICROPROCESSOR 8086

Page 3
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

1. INTRODUCTION TO MASM/TASM

Aim: Study clearly about introduction of Microsoft macro assembler/Borland turbo

Assembler and their TOOLS.

There are three levels of programming

1. Machine language

2. Assembly language

3. High level language

Machine language programs are programs that the computer can understand and execute
directly. Assembly language programs/instructions match machine language
programs/instructions, but are written using characters or strings. so that they are more easily
understood. And High-level language instructions are much closer to the English language and
are structured.

Ultimately, an assembly language or high level language program must be converted into
machine language by programs called translators. If the program being translated from assembly
language, the translator is referred to as an assembler, and if it is in a high level language, the
translator is referred to as a compiler or interpreter.

ASSEMBLY LANGUAGE PROGRAM DEVELOPMENT TOOLS:

EDITOR: An editor is a program, which allows you to create a file containing the assembly
language statements for your program.

ASSEMBLER: An assembler program is used to translate the assembly language Mnemonic


instructions to the corresponding binary codes. The second file generated by assembler is called
the assembler List file.

LINKER: A Linker is a program used to join several object files in to one large object file. The
linkers produce link files with the .EXE extension.

DEBUGGER: If your program requires no external hardware, then you can use a debugger to
run and debug your program. A debugger is a program, which allows you to load your object
code program into system memory, execute the program, and troubleshoot or “debug” it.

Page 4
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

COMMANDS:

F:

CD 8086 TOOLS

EDIT FILE NAME.ASM

MASM FILENAME.ASM

LINK FILENAME.OBJ

DEBUG FILENAME.EXE

EXIT

Page 5
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

ASSEMBLER DIRECTIVES:

An assembler is a program used to convert an assembly language program into the equivalent
machine code modules. The assembler decides the address of each label and substitutes the
values for each of the constants and variables. It then forms the machine code for mnemonics
and data in assembly language program.

Assembler directives help the assembler to correctly understand assembly language Programs to
prepare the codes. Commonly used assembler directives are DB, DD, DW, DUP, ASSUME,
BYTE, SEGMENT, MACRO, PROC, OFFSET, NEAR, FAR, EQU, STRUC, PTR, END,
ENDM, ENDP etc. Some directives generate and store information in the memory, while others
do not.

DB: - Define byte directive stores bytes of data in memory.

Page 6
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

BYTE PTR: - This directive indicates the size of data referenced by pointer.

SEGMENT: - This directive is to indicate the start of the segment.

DUP (Duplicate) :- The DUP directive reserves memory locations given by the Number
preceding it, but stores no specific values in any of these locations.

ASSUME: - The ASSUME statement is only used with full segment definitions. This statement
tells the assembler what names have been chosen for the code, data, and extra and stack
segments.

EQU: - The equate directive equates a numeric ASCII or label to another label.

ORG: - The ORG (origin) statement changes the starting offset address in a segment.

PROC and ENDP: - The PROC and ENDP directives indicate start and end of a procedure (Sub
routine). Both the PROC and ENDP directives require a label to indicate the name of the
procedure. The PROC directive must also be followed with the NEAR or FAR. A NEAR
procedure is one that resides in the same code segment as the program. A FAR procedure may
reside at any location in the memory system.

MACRO:-A macro is a group of instructions that performs one task, just as a procedure. The
difference is that a procedure is accessed via a CALL instruction, while a macro is inserted in the
program at the point of usage as a new sequence of instructions.

ENDM: - The last statement of a macro is the ENDM instruction. Never place a label in front of
the ENDM statement.

PUBLIC &EXTRN: - The public and extern directives are very important to modular
programming. We use PUBLIC to declare that labels of code, data or entire segments are
available to other program modules. We use EXTRN to declare that labels are external to a
module. Without this statement, we could not link modules together to create a program using
modular programming techniques.

OFFSET: - Offset of a label. When the assembler comes across the OFFSET operator along
with a label, it first computes the 16 – bit displacement of the particular label, and replaces the
string ‘OFFSET LABEL’ by the computed displacement.

LENGTH: - Byte length of the label. This directive is used to refer to the length of data array or
a string.

Result: Hence introduction of Microsoft macro assembler/Borland turbo assembler and their
TOOLS are studied.

Page 7
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

2. ARITHMETIC OPERATIONS.

16-BIT UNSIGNED ARITHMETIC OPERATIONS

2 A) 16-bit unsigned addition


AIM: Write an ALP for 16-bit unsigned addition & verify
TOOLS: MASM Software, PC.
RESULT
REGISTERS USED: CS, DS, AX
INPUT: OPR1=1234H
FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF
OPR2=2345H
ALP:
OUTPUT: RES=3579H
ASSUME CS: CODE, DS: DATA
DATA SEGMENT
OPR1 DW 1234H
OPR2 DW 2345H
RES DW ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS,AX
MOV AX,OPR1
ADD AX,OPR2
MOV RES, AX
HLT
CODE ENDS
END START

2. B) 16-bit unsigned Subtraction


AIM: write an ALP for 16-bit unsigned subtraction & verify
TOOLS: MASM Software, PC.
REGISTERS USED: CS, DS, AX
FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF
ALP:
ASSUME CS: CODE, DS: DATA
DATA SEGMENT
OPR1 DW 1234H
OPR2 DW 1000H RESULT
RES DW ? INPUT: OPR1=1234H
DATA ENDS OPR2=1000H
OUTPUT: RES=0234H
CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AX, OPR1
SUB AX, OPR2
MOV RES, AX
HLT
CODE ENDS
END START

Page 8
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

2. C) 16-bit unsigned MULTIPLICATION


AIM: write an ALP for 16-bit unsigned multiplication & verify the result
TOOLS: MASM Software, PC.
REGISTERS USED: CS, DS, AX, DX
RESULT
FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF INPUT: OPR1=2000H
OPR2=4000H
ALP: OUTPUT: RES=0800 0000H
ASSUME CS: CODE, DS: DATA
DATA SEGMENT
OPR1 DW 2000H
OPR2 DW 4000H
RES1 DW ?
RES2 DW ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AX, OPR1
MUL OPR2
MOV RES1, AX
MOV RES2, DX
HLT
CODE ENDS
END START

2. D) 16-bit unsigned DIVISION


AIM: write an ALP for 16-bit unsigned division& verify the result
TOOLS: MASM Software, PC.
REGISTERS USED: CS, DS, AX, DX
FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF
ALP:
ASSUME CS: CODE, DS: DATA
DATA SEGMENT
OPR1 DW 1234H
OPR2 DB 99H RESULT
RESQ DB ? INPUT: OPR1=1234H
RESR DB ? OPR2=99H
DATA ENDS OUTPUT: RESQ=1EH
RESR=46H
CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AX, OPR1
DIV OPR2
MOV RESQ, AX
MOV RESR, DX
HLT
CODE ENDS
END START

Page 9
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

16-BIT SIGNED ARITHMETIC OPERATIONS

2. E) 16-bit signed addition


AIM: write an ALP for 16-bit signed addition & verify the result
TOOLS: MASM Software, PC.
REGISTERS USED: CS, DS, AX
FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF
ALP:
ASSUME CS: CODE, DS: DATA
DATA SEGMENT
OPR1 DW 0234H
OPR2 DW 0112H
RES DW ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AX, OPR1
ADD AX, OPR2
MOV RES, AX
HLT
CODE ENDS
END START

2. F) 16-bit signed Subtraction


AIM: write an ALP for 16-bit signed subtraction & verify the result
TOOLS: MASM Software, PC.
REGISTERS USED: CS, DS, AX
FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF
ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OPR1 DW 0222H
OPR2 DW 0111H
RES DW ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AX, OPR1
SUB AX, OPR2
MOV RES, AX
HLT
CODE ENDS
END START

Page 10
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

2. G) 16-bit signed multiplication


AIM: write an ALP for 16-bit signed multiplication & verify the result
TOOLS: MASM Software, PC.
REGISTERS USED: CS, DS, AX, DX
FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF
ALP:
ASSUME CS: CODE, DS: DATA
DATA SEGMENT
OPR1 DW 7593H
OPR2 DW 6845H
RES1 DW ?
RES2 DW ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AX, OPR1
IMUL OPR2
MOV RES1, AX
MOV RES2, DX
HLT
CODE ENDS
END START

2. H) 16-bit signed division


AIM: write an ALP for 16-bit signed division & verify the result
TOOLS: MASM Software, PC.
REGISTERS USED: CS, DS, AX
FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF
ALP:
ASSUME CS: CODE, DS: DATA
DATA SEGMENT
OPR1 DW 0110H
OPR2 DB 11H
RESQ DB ?
RESR DB ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AX, OPR1
IDIV OPR2
MOV RESQ, AX
MOV RESR, DX
HLT
CODE ENDS
END START

Page 11
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

MULTIBYTE ARITHMETIC OPERATIONS

2. I) 32-BIT Addition

AIM: write an ALP for 32-bit Addition& verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: CS, DS, AX, CX, SI, DI, BX

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OPR1 DD 12345678H
OPR2 DD 12345678H
RES DD ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
LEA SI, OPR1
LEA BX, OPR2
LEA DI, RES
MOV CX, 0004H
LOOP: MOV AL, [SI]
ADC AL, [BX]
MOV [DI], AL
INC SI
INC BX
INC DI
DEC CX
JNZ LOOP
HLT
CODE ENDS
END START

RESULT:
INPUT: OPR1= 12345678H
OPR2= 12345678H
OUTPUT: RES= 6B A5 88 57 H

Page 12
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

2. J) 32-BIT Subtraction

AIM: write an ALP for 32-bit subtraction & verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: CS, DS, AX, CX, SI, DI, BX

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OPR1 DD 12345678H
OPR2 DD 02345678H
RES DD ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
LEA SI, OPR1
LEA BX, OPR2
LEA DI, RES
MOV CX, 0004H
LOOP: MOV AL, [SI]
SBB AL, [BX]
MOV [DI], AL
INC SI
INC BX
INC DI
DEC CX
JNZ LOOP
HLT
CODE ENDS
END START

RESULT:
INPUT: OPR1= 12345678H
OPR2= 02345678H
OUTPUT: RES=10 00 00 00 H

Page 13
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

2. K) 32-BIT Multiplication

AIM: write an ALP for 32-bit Multiplication & verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: CS, DS, AX, CX, SI, DI, BX

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OPR1 DD 12345678H
OPR2 DB 36H
RESDQ ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
LEA SI, OPR1
LEA DI, RES
MOV CX, 0004H
MOV DX, 0000H
LOOP: MOV AL, [SI]
MOV AH,00H
MUL OPR2
ADD AX, DX
MOV DL, AH
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ LOOP
MOV [DI], AH
HLT
CODE ENDS
END START

RESULT:
INPUT: OPR1= 12345678H
OPR2= 36H
OUTPUT: RES=03 D7 0A 3D 50H

Page 14
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

2. L) 32-BIT Division

AIM: write an ALP for 32-bit Division & verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: CS, DS, AX, CX, SI, DI, BX

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OPR1 DD 12345678H
OPR2 DB 36H
RES DD ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
LEA SI, OPR1
LEA DI, RES
MOV CX, 0004H
ADD SI, 03H
MOV BP, SI
MOV AX, 0000H
BACK: MOV AL, [BP]
DIV OPR2
MOV [DI], AL
DEC BP
INC DI
DEC CX
JNZ BACK
INC DI
MOV [DI],AH
HLT
CODE ENDS
END START

RESULT:
INPUT: OPR1= 12345678H
OPR2= 36H
OUTPUT: RES=00 56 4D 74H

Page 15
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

ASCII OPERATIONS

2. M) ASCII addition

AIM: write an ALP for ASCII addition & verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: CS, DS, AX

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OPR1 DB 09H
OPR2 DB 05H
RES DW ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AH, 00H
MOV AL, OPR1
ADD AL, OPR2
AAA
MOV RES, AX
HLT
CODE ENDS
END START

RESULT:
INPUT: OPR1= 09H
OPR2= 05H
OUTPUT: RES= 01 04H

Page 16
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

2. N) ASCII SUBTRACTION

AIM: write an ALP for ASCII subtraction& verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: CS, DS, AX

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OPR1 DB 06H
OPR2 DB 02H
RES DW ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AH, 00H
MOV AL, OPR1
SUB AL, OPR2
AAS
MOV RES, AL
HLT
CODE ENDS
END START

RESULT:
INPUT: OPR1= 06H
OPR2= 02H
OUTPUT: RES= 04H

Page 17
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

2. O) ASCII MULTIPLICATION

AIM: write an ALP for ASCII multiplication & verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: CS, DS, AX

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OPR1 DB 09H
OPR2 DB 05H
RES DW ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AH, 00H
MOV AL, OPR1
MUL OPR2
AAM
MOV RES, AX
HLT
CODE ENDS
END START

RESULT:
INPUT: OPR1= 09 H
OPR2= 05H
OUTPUT: RES= 04 05H

Page 18
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

2. P) ASCII DIVISION

AIM: write an ALP for ASCII DIVISION& verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: CS, DS, AX

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OPR1 DW 0607H
OPR2 DB 09H
RESQ DB ?
RESR DB ?
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV AH, 00H
MOV AX, OPR1
AAD
DIV OPR2
MOV RESQ, AL
MOV RESR, AH
HLT
CODE ENDS
END START

RESULT:
INPUT: OPR1= 0607H
OPR2= 09H
OUTPUT: RESQ =07H
RESR=04H

Page 19
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

3. LOGICAL OPERATIONS

3. A) BCD to ASCII conversion

AIM: write an ALP to perform BCD to ASCII conversion& verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: AX, DS, BL, CL, CS

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
BCD DB 49H
ASCII 1 DB ?
ASCII 2 DB?
DATA ENDS
CODE SEGMENT
START:MOV AX,DATA
MOV DS,AX
MOV AL,BCD
AND AL,0FH
OR AL,00H
MOV ASCII 1,AL
MOV BL,BCD
AND CL,04H
ROL BL,BCD
AND CL,04H
ROL BL,CL
OR AL,30H
MOV ASCII2,AL
MOV AH,BL
HLT
CODE ENDS
END START

RESULT:
INPUT:
BCD: 49H
OUTPUT:
ASCII1: 34H
ASCII 2:39H

Page 20
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

3 B) PACKED BCD to UNPACKED BCD conversion

AIM: write an ALP to perform PACKED BCD to UNPACKED BCD conversion& verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: AX, DS, BL, CL, CS

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
BCD DB 49H
UNPCK 1 DB ?
UNPCK 2 DB ?
DATA ENDS
CODE SEGMENT
START:MOV AX,DATA
MOV DS,AX
MOV AL,BCD
AND AL,0FH
MOV UNPCK1,AL
MOV BL,BCD
MOV CL,04H
ROL BL,CL
AND BL,0FH
MOV UNPCK2,BL
MOV AH,BL
HLT
CODE ENDS
END START

RESULT:
INPUT:
BCD: 49H
OUTPUT:
UNPCK1: 04H
UNPCK2: 09H

Page 21
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

3. C) UNPACKED BCD to PACKED BCD conversion

AIM: write an ALP to perform UNPACKED BCD to PACKED BCD conversion& verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: AX, DS, BL, CL, CS

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
OPR1 DB 04H
OPR2 DB 09H
RES DB ?
DATA ENDS
CODE SEGMENT
START: MOV AX,DATA
MOV DS,AX
MOV AL,OPR1
MOV CL,04H
ROL AL,CL
ADD AL,OPR2
MOV RES,AL
HLT
CODE ENDS
END START

RESULT:
INPUT:
OPR1:04H
OPR2:09H
OUTPUT:
RES: 49H

Page 22
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

4. STRING OPERATIONS
4. A) MOVE A BLOCK

AIM: write an ALP to move a string from one location to another location without using string instructions

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
STR1 DB “JNTUK”
ORG 0010H
STR2 DB ?
DATA ENDS
CODE SEGMENT
START:MOV AX,DATA
MOV DS,AX
LEA SI,STR1
LEA DI,STR2
MOV CL,05H
BACK:MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
DEC CL
JNZ BACK
HLT
CODE ENDS
END START

RESULT:
INPUT: JNTUK
D DS: 0010
OUTPUT: JNTUK

Page 23
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

4. B) MOVE A BLOCK

AIM: write an ALP to move a string from one location to another location using string instructions

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
STR1 DB “JNTUK”
ORG 0010H
STR2 DB ?
DATA ENDS
CODE SEGMENT
START:MOV AX,DATA
MOV DS,AX
LEA SI,STR1
LEA DI,STR2
MOV CL,05H
CLD
REP MOVSB
HLT
CODE ENDS
END START

RESULT:
INPUT: JNTUK
D DS: 0010
OUTPUT: JNTUK

Page 24
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

4. C) REVERSING A STRING

AIM: write an ALP for REVERSING A STRING & verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
STR1 DB “JNTUK”
ORG 0010H
STR2 DB ?
DATA ENDS
CODE SEGMENT
START:MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,STR1
LEA DI,STR2
MOV CL,05H
ADD SI,04H
BACK:MOV AL,[SI]
MOV [DI],AL
DEC SI
INC DI
DEC CL
JNZ BACK
HLT
CODE ENDS
END START

RESULT:
INPUT:JNTUK
OUTPUT:KUTNJ

Page 25
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

4. D) LENGTH OF A GIVEN STRING.

AIM: write an ALP for LENGTH OF A GIVEN STRING

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
STR1 DB “JNTUK”
OPR1 DB ?
DATA ENDS
CODE SEGMENT
START:MOV AX,DATA
MOV DS,AX
MOV AL,00H
MOV CL,00H
MOV SI,OFFSET STR
BACK:CMP AL,[SI]
JNE GO
INC CL
INC SI
JNZ BACK
GO:MOV OPR1,CL
\ HLT
CODE ENDS
END START

RESULT:
INPUT:
STR1:JNTUK
OUTPUT:
0B80:0000 4A 4E 54 55 4B 05

Page 26
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

4. E) STRING COMPARISION

AIM: write an ALP for STRING COMPARISION & verify the result

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP: ASSUME CS:CODE,DS:DATA


DATA SEGMENT
MSG1 DB OAH,ODH,”MATCH FOUND”,OAH,ODH,”$”
MSG2 DBOAH,ODH,”MISMATCH FOUND”,$OAH,ODH,”$”
DATA ENDS
CODE SEGMENT
START: MOV AX, DATA
MOV DS,AX
MOV ES,AX
MOV SI,1000H
MOV DI,2000H
MOV CL,05H
CLD
REP CMPSB
JE MATCH
JMP MISMATCH
MATCH:LEA DX,MSG1
MOV AH,09H
INT 21H
INT 03H
MISMATCH:MOV DX,OFFSET MSG2
MOV AH,09H
INT 21H
INT 03H
CODE ENDS
END START

Page 27
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

4. F) ASCENDING ORDER .

AIM: write an ALP for ASCENDING ORDER

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
LIST DW 05H, 04H, 01H, 03H, 02H
COUNT EQU 05H
DATA ENDS

CODE SEGMENT
START:MOV AX,DATA
MOV DS, AX
MOV DX,COUNT
BACK: MOV CX,DX
MOV SI, OFFSET LIST
AGAIN: MOV AX, [SI]
CMP AX, [SI+2]
JC GO
XCHG AX, [SI+2]
XCHG AX,[SI]
GO: INC SI
INC SI
LOOP AGAIN
DEC DX
JNZ BACK
HLT
CODE ENDS
END START

RESULT:
INPUT: 05H, 04H, 01H, 03H, 02H

OUTPUT: 01H, 02H, 03H, 04H, 05H

Page 28
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

4. G) DECENDING ORDER.

AIM: write an ALP for DECENDING ORDER TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS: CODE, DS: DATA


DATA SEGMENT
LIST DW 05H, 04H, 01H, 03H, 02H
COUNT EQU 05H
DATA ENDS

CODE SEGMENT
START: MOV AX, DATA
MOV DS, AX
MOV DX, COUNT
BACK: MOV CX, DX
MOV SI, OFFSET LIST
AGAIN: MOV AX, [SI]
CMP AX, [SI+2]
JNC GO
XCHG AX, [SI+2]
XCHG AX,[SI]
GO: INC SI
INC SI
LOOP AGAIN
DEC DX
JNZ BACK
HLT
CODE ENDS
END START

RESULT:
INPUT: 05H, 04H, 01H, 03H, 02H

OUTPUT: 05H, 04H, 03H, 02H, 01H

Page 29
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

5. SQUARE ROOT OF A GIVEN NUMBER.

AIM: write an ALP for SQUARE ROOT OF A GIVEN NUMBER

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP

ASSUME CS:CODE,DS:DATA

DATA SEGMENT

NUM DB 36

RESULT DB ?

DATA ENDS

CODE SEGMENT

START: MOV AX,DATA

MOV DS,AX

MOV CL,NUM

MOV BL,1

MOV AL,0

UP:CMP CL,0

JZ ZRESULT

SUB CL,BL

INC AL

ADD BL,02H

JMP UP

ZRESULT:MOV RESULT,AL

HLT

CODE ENDS

END START

Page 30
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

6. ADDITION OF N NUMBER.

AIM: write an ALP for ADDITION OF N NUMBERS.

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP : ASSUME CS:CODE, DS:DATA


DATASEGMENT
NUM IST DB 52H, 23H, 32H
COUNT EQU 100D
RESULT DW 01H DUP (?)
DATA ENDS
CODE SEGMENT
ORG 200H
START:MOV AX,DATA
MOV DS,AX
MOV CX,COUNT
XOR AX,AX
XOR BX,BX
MOV SI,OFFSET NUMLIST
AGAIN:MOV BL,[SI]
ADD AX,BX
INC SI
DEC CX
JNZ AGAIN
MOV DI,OFFSET RESULT
MOV [DI],AX
MOV AH,4CH
INT 21H
CODE ENDS
END START

Page 31
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

7. SUM OF SQUARES/CUBES.

AIM: write an ALP for SUM OF SQUARES/CUBES OF GIVE N NUMBERS.

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS:CODE,DS:DATA
DATA SEGMENT
NUM DB 12H,13H,15H
SUM DW ?
DATA ENDS
CODE SEGMENT
START:MOV AX,DATA
MOV DS,AX
LEA SI,NUM
MOV CL,03H
MOV AX,0000H
MOV SUM,00H
BACK:MOV AL,[SI]
MUL AL
ADD AX,SUM
MOV SUM,AX
INC SI
DEC CL
JNZ BACK
HLT
CODE ENDS
END START

Page 32
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

8. NUMBER OF EVEN AND ODD NUMBERS.

AIM: write an ALP for EVEN AND ODD number

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP:

ASSUME CS:CODE,DS:DATA
DATA SEGMENT
LIST DW 2357H,0A579H,0C322H,0C91EH,0957H
COUNT EQU 006H
DATA ENDS
CODE SEGMENT
START:XOR BX,BX
XOR DX,DX
MOV AX,DATA
MOV DS,AX
MOV CL,COUNT
MOV SI,OFFSET LIST
AGAIN:MOV AX,[SI]
ROR AX,01
JC ODD
INC BX
JMP NEXT
ODD:INC DX
NEXT:ADD SI,02
DEC CL
JNZ AGAIN
MOV AH,4CH
INT 21H
CODE ENDS
END START

Page 33
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

9. NUMBER OF POSITIVE AND NEGATIVE NUMBERS

AIM: write an ALP for NUMBER OF POSITIVE AND NEGATIVE NUMBERS.

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP ASSUME CS:CODE,DS:DATA

DATA SEGMENT
LIST DW 2579H,0A500H,0C009H,0159H,0B900H
COUNT EQU 05H
DATA ENDS
CODE SEGMENT
START:XOR BX,BX
XOR DX,DX
MOV AX,DATA
MOV DS,AX
MOV CL,COUNT
MOV SI,OFFSET LIST
AGAIN:MOV AX,[SI]
SHL AX,01
JC NEG
INC BX
JMP NEXT
NEG:INC DX
NEXT:ADD SI,02
DEC CL
JNZ AGAIN
MOV AH,4CH
INT 21H
CODE ENDS
END START

Page 34
KKR & KSR INSTITUTE OF TECHNOLOGY & SCIENCES, GUNTUR

10. FACTORIAL OF A GIVEN NUMBER.

AIM: write an ALP for FACTORIAL OF A GIVEN NUMBER.

TOOLS: MASM Software, PC.

REGISTERS USED: DS, CS, AX, CX, SI, DI

FLAGS EFFECTED: AF, PF, ZF, SF, OF, CF

ALP : ASSUME CS:CODE,DS:DATA

DATA SEGMENT

NUM DW 04H

RES DW ?

DATA ENDS

CODE SEGMENT

START:MOV AX,DATA

MOV DS,AX

MOV AX,NUM

MOV BX,AX

BACK:DEC BX

MUL BX

CMP BX,0001H

JE NEXT

JNZ BACK

NEXT:MOV RES,AX

HLT

CODE ENDS

END START

Page 35

You might also like