Sei sulla pagina 1di 35

MICROPROCESSOR LAB MANUAL -10ECL-68

ACS COLLEGE OF ENGINEERING


BANGALORE

Department of
ELECTRONICS AND COMMUNICATION
ENGINEERING

Subject: 06ECL68 MICROPROCESSOR


LABORATORY

COMPILED, TESTED AND EDITED BY

Sri. A.M.Prasanna Kumar


Sri.Suresh R Patil
Professor & Head Assistant
Professor

Dept of ECE, ACSCE, Bangalore Page 1


MICROPROCESSOR LAB MANUAL -10ECL-68

1. DEVELOP AND EXECUTE AN ALP USING DATA TRANSFER


INSTRUCTIONS.
Byte and Word Data Transfer in Different Addressing Modes
1.1 ALP TO MOVE THE WORD DATA USING DIFFERENT ADDRESSING MODES.

.MODEL SMALL
.DATA
DST DW 04H DUP (?)
.CODE
MOV AX,@DATA
MOV DS, AX
LEA DI, DST
MOV AX, 0004H
MOV [DI], AX
MOV DX, AX
MOV [DI+2], AX
MOV BX, 04H
MOV [BX][DI], AX
MOV [BX+DI+02H], AX
MOV AH, 4CH
INT 21H
END

Block Interchange
1.2 ALP TO INTERCHANGE THE DATA FROM ONE LOCATION TO OTHER.

.MODEL SMALL
.DATA
ORG 1000 H
LIST1 DW 2357H, 0A579H
ORG 2000 H
LIST2 DW 0C322H, 0C911H
COUNT EQU 02H
.CODE
MOV AX,@DATA
MOV DS, AX
LEA SI, LIST1
MOV CX, COUNT
LEA DI, LIST2
BACK: MOV AX, [SI]
XCHG AX, [DI]
MOV [SI], AX
INC SI
INC SI
INC DI
INC DI
DEC CX
JNZ BACK
MOV AH, 4CH
INT 21H

Dept of ECE, ACSCE, Bangalore Page 2


MICROPROCESSOR LAB MANUAL -10ECL-68

END

Block Move
1.3 ALP TO MOVE THE BLOCK OF DATA FROM ONE LOCATION TO OTHER.

.MODEL SMALL
.DATA
ORG 1000 H
LIST DW 2357H, 0A579H, 0C322H, 0C911H
COUNT EQU 04H
DSTAD EQU 2000H
.CODE
MOV AX,@DATA
MOV DS, AX
LEA SI, LIST
MOV CX, COUNT
MOV DI, DSTAD
BACK: MOV AX, [SI]
MOV [DI], AX
INC SI
INC SI
INC DI
INC DI
DEC CX
JNZ BACK
MOV AH, 4CH
INT 21H
END

1.4 ALP TO MOVE THE BLOCK OF DATA FROM ONE LOCATION TO OTHER IN THE REVERSE
ORDER.

.MODEL SMALL
.DATA
ORG 1000 H
LIST DW 2357H, 0A579H, 0C322H, 0C911H
COUNT EQU 04H
DSTAD EQU 2000H
.CODE
MOV AX,@DATA
MOV DS, AX
LEA SI, LIST+6
MOV CX, COUNT
MOV DI, DSTAD
BACK: MOV AX, [SI]
MOV [DI], AX
DEC SI
DEC SI
INC DI
INC DI
DEC CX
JNZ BACK
MOV AH, 4CH

Dept of ECE, ACSCE, Bangalore Page 3


MICROPROCESSOR LAB MANUAL -10ECL-68

INT 21H
END
1.5 ALP TO MOVE THE BLOCK OF DATA (BYTE) WITH OVERLAP

.MODEL SMALL
.DATA
Y DB 3 DUP(?)
X DB 11H, 22H, 33H, 44H, 55H
.CODE
MOV AX,@DATA
MOV DS, AX
LEA SI, X
LEA DI, Y
MOV CX,0005H
BACK: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ BACK
MOV AH, 4CH
INT 21H
END

1.6 ALP TO MOVE THE BLOCK OF DATA (WORD) WITH OVERLAP

.MODEL SMALL
.DATA
Y DW 3 DUP(?)
X DW 1111H,222 2H,3333H,4444H,5555H
.CODE
MOV AX,@DATA
MOV DS, AX
LEA SI, X
LEA DI, Y
MOV CX,0005H
BACK: MOV AX, [SI]
MOV [DI], AX
INC SI
INC SI
INC DI
INC DI
DEC CX
JNZ BACK
MOV AH, 4CH
INT 21H
END

1.7 ALP TO MOVE THE BLOCK OF DATA (BYTE) WITHOUT OVERLAP

.MODEL SMALL
.DATA
Y DB 5 DUP(?)
X DB 11H, 22H, 33H, 44H, 55H

Dept of ECE, ACSCE, Bangalore Page 4


MICROPROCESSOR LAB MANUAL -10ECL-68

.CODE
MOV AX,@DATA
MOV DS, AX
LEA SI, X
LEA DI, Y
MOV CX,0005H
BACK: MOV AL, [SI]
MOV [DI], AL
INC SI
INC DI
DEC CX
JNZ BACK
MOV AH, 4CH
INT 21H
END

1.7 ALP TO MOVE THE BLOCK OF DATA (WORD) WITHOUT OVERLAP

.MODEL SMALL
.DATA
Y DW 5 DUP (?)
X DW 1111H, 2222H, 3333H, 4 444 H, 5555H
.CODE
MOV AX,@DATA
MOV DS, AX
LEA SI, X
LEA DI, Y
MOV CX, 0 005H
BACK: MOV AX, [SI]
MOV [DI], AX
INC SI
INC SI
INC DI
INC DI
DEC CX
JNZ BACK
MOV AH, 4CH
INT 21H

Dept of ECE, ACSCE, Bangalore Page 5


MICROPROCESSOR LAB MANUAL -10ECL-68

2. DEVELOP AND EXECUTE AN ALP USING ARITHMETIC AND LOGICAL


OPERATIONS
Addition and Subtraction of Multiprecision Numbers
2.1 ALP FOR ADDITION OF MULTI PRECISION NUMBERS (32 BITS).

.MODEL SMALL
.DATA
N1 DD 44447777H
N2 DD 0F222F879H
SUM DD ?
.CODE
MOV AX,@DATA
MOV DS,AX
MOV DX,0000H
MOV SI,OFFSET N1
MOV DI,OFFSET N2
MOV AX, [SI]
ADD AX, [DI]
MOV WORD PTR SUM, AX
INC SI
INC SI
INC DI
INC DI
MOV AX, [SI]
ADC AX, [DI]
JNC ADD1
INC DX
ADD1:MOV WORD PTR SUM+2, AX
MOV AH, 4CH
INT 21H
END

2.2 ALP FOR SUBTRACTION OF MULTIPRECISION NUMBERS (32 BITS).

.MODEL SMALL
.DATA
N1 DD 33335555H
N2 DD 0F111F222H
DIFF DD ?
.CODE
MOV AX,@DATA
MOV DS,AX
MOV DX,0000H
MOV SI,OFFSET N1
MOV DI,OFFSET N2
MOV AX,[SI]
SUB AX,[DI]
MOV WORD PTR DIFF,AX
INC SI
INC SI

Dept of ECE, ACSCE, Bangalore Page 6


MICROPROCESSOR LAB MANUAL -10ECL-68

INC DI
INC DI
MOV AX,[SI]
SBB AX,[DI]
JNC SUB1
INC DX
SUB1: MOV WORD PTR DIFF+2, AX
MOV AH, 4CH
INT 21H
END

Multiplication and Division of Signed and Unsigned Hexadecimal Numbers


2.3 ALP FOR MULTIPLICATION OF TWO 16 BITS UNSIGNED HEXADECIMAL NUMBERS.

.MODEL SMALL
.DATA
N1 DW 1234H
N2 DW 7689H
RESULT DW 2 DUP (?)
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AX,N1
MOV BX,N2
MUL BX
MOV RESULT,AX
MOV RESULT+2,DX
MOV AH,4CH
INT 21H
END

2.4 ALP FOR SIGNED MULTIPLICATION OF TWO 16 BITS HEXADECIMAL NUMBERS.

.MODEL SMALL
.DATA
N1 DW 1234H
N2 DW 0ABCAH
RESULT DW 2 DUP (?)
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AX,N1
MOV BX,N2
IMUL BX
MOV RESULT,AX
MOV RESULT+2,DX
MOV AH,4CH
INT 21H
END

2.5 ALP FOR DIVISON OF TWO 16 BITS UNSIGNED HEXADECIMAL NUMBERS.

.MODEL SMALL

Dept of ECE, ACSCE, Bangalore Page 7


MICROPROCESSOR LAB MANUAL -10ECL-68

.DATA
DVD DD 15752510H
DVR DW 0FFFFH
QUOT DW ?
REMD DW ?
.CODE
MOV AX,@DATA
MOV DS,AX
MOV SI,OFFSET DVD
MOV AX,WORD PTR [SI]
MOV DX,WORD PTR [SI+2]
MOV CX,DVR
DIV CX ; IDIV FOR SIGNED NUMBERS
MOV QUOT,AX
MOV REMD,DX
MOV AH,4CH
INT 21H
END

ASCII Adjustment Instructions


2.6DEVELOP AND EXECUTE AN ALP FOR PERFORMING ALL ASCII ARITHMETIC
INSTRUCTIONS.

.MODEL SMALL
.DATA
N1 DB 39H
N2 DB 31H
RES DW 6 DUP (?)
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AX,0000H
MOV AL,N1
ADD AL,N2
AAA ; FOR ADDITION
MOV RES,AX
MOV AX,0000H
MOV AL,N1
SUB AL,N2
AAS ; FOR SUBTRACTION
MOV RES+2,AX
MOV AX,0000H
MOV AL,N1
MOV BL,N2
MUL BL
AAM ;FOR MULTIPLICATION
MOV RES+3,AX
MOV AX,0000H
MOV AL,N1
MOV BL,N2
AAD ; FOR DIVISON
DIV BL
MOV RES+4,AX

Dept of ECE, ACSCE, Bangalore Page 8


MICROPROCESSOR LAB MANUAL -10ECL-68

MOV RES+5,DX
MOV AH,4CH
INT 21H
END

Code Conversions (BCD to binary and vice versa) (16 bit data)
2.7DEVELOP AND EXECUTE AN ALP TO CONVERT BCD TO BINARY NUMBER (16 BIT NUMBER)
.MODEL SMALL

.DATA
BCD DW 5160H
THO EQU 03E8H
HUN EQU 0064H
TEN EQU 000AH
BIN DW ?
.CODE
MOV AX,@DATA
MOV DS,AX
MOV BX,BCD
MOV AX,BX
AND AX,000FH
MOV BIN,AX
MOV AX,BX
AND AX,00F0H
MOV CL,04
ROR AX,CL
MOV DX,TEN
MUL DX
ADD BIN,AX
MOV AX,BX
AND AX,0F00H
XCHG AL,AH
MOV DX,HUN
MUL DX
ADD BIN,AX
MOV AX,BX
AND AX,0F000H
XCHG AL,AH
ROR AX,CL
MOV DX,THO
MUL DX
ADD BIN,AX
MOV AH,4CH
INT 21H
END

2.8 DEVELOP AND EXECUTE AN ALP TO CONVERT BINARY TO BCD NUMBER (16 BIT NUMBER)

.MODEL SMALL
.DATA
TENTHO EQU 2 710 H
THO EQU 3E8H
HUN EQU 64H

Dept of ECE, ACSCE, Bangalore Page 9


MICROPROCESSOR LAB MANUAL -10ECL-68

TEN EQU 0AH


BIN DW 0FFFFH
BCD DB 10 DUP(0)
TEMP DB 10 DUP(0)
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AX,BIN
CMP AX,TENTHO
JC ABC
MOV DX,0000H
MOV BX,TENTHO
DIV BX
MOV TEMP,AL
MOV BIN,DX
ABC: MOV AX,BIN
CMP AX,THO
JC CDE
MOV DX,0000H
MOV BX,THO
DIV BX
MOV TEMP+1,AL
MOV BIN,DX
CDE: MOV AX,BIN
CMP AX,HUN
JC DEF
MOV DX,0000H
MOV BX,HUN
DIV BX
MOV TEMP+2,AL
MOV BIN,DX
DEF: MOV AX,BIN
MOV DX,0000H
MOV BX,TEN
DIV BX
MOV TEMP+3,AL
MOV TEMP+4,DL
MOV AL,TEMP+3
MOV CL,04
ROL AL,CL
MOV BL,TEMP+4
OR AL,BL
MOV BCD+2,AL
MOV AL,TEMP+1
MOV CL,04
ROL AL,CL
MOV BL,TEMP+2
OR AL,BL
MOV BCD+1,AL
MOV AL,TEMP
MOV BCD,AL
MOV AH,4CH
INT 21H
END

Dept of ECE, ACSCE, Bangalore Page 10


MICROPROCESSOR LAB MANUAL -10ECL-68

Arithmetic programs to find Square, Cube, LCM and Factorial


2.9 DEVELOP AND EXECUTE AN ALP TO FIND SQUARE AND CUBE OF A POSITIVE INTEGER

.MODEL SMALL
.DATA
NUM DW 0FFEEH
RES DW 10 DUP(?)
.CODE
MOV AX,@DATA
MOV DS,AX
MOV SI,OFFSET NUM
MOV DI,OFFSET RES
MOV AX,[SI]
MUL AX
MOV [DI],AX
MOV [DI+2],DX
MOV AX,[SI]
MOV CX,[DI]
MUL CX
MOV [DI+4],AX
MOV BX,DX
MOV AX,[SI]
MOV CX,[DI+2]
MUL CX
ADD AX,BX
ADC DX,0000
MOV [DI+6],AX
MOV [DI+8],DX
MOV AH,4CH
INT 21H
END

2.10 DEVELOP AND EXECUTE AN ALP TO FIND THE LCM OF TWO 16 BIT UNSIGNED INTEGERS

.MODEL SMALL ; BOTH CODE & DATA SEGMENT <=64K EACH.


.STACK ; STACK INITIALIZED
.DATA
N DW 000FH, 0005H ; INITIALIZE DATA MEMORY LOCATIONS FOR THE OPERANDS
LCM DW 2 DUP (?) ; THE CALCULATED RESULT IS STORED IN LCM.
.CODE ; THE CODE PART OF THE PROGRAM STARTS HERE
MOV AX,@DATA ; INITIALIZE DATA SEGMENT
MOV DS, AX
MOV DX, 0 ; CLEAR DX REGISTER
MOV AX, N ; LOAD THE FIRST NUMBER
MOV BX, N+2 ; LOAD THE SECOND NUMBER
BACK: PUSH AX ; SAVE THE BOTH NUMBERS ON TOP OF THE STACK
PUSH DX
DIV BX ; DIVIDE FIRST NUMBER BY THE SECOND NUMBER
CMP DX,0 ; IS THERE IS A NUMBER ?

Dept of ECE, ACSCE, Bangalore Page 11


MICROPROCESSOR LAB MANUAL -10ECL-68

JE EXIT ; NO, TERMINATE THE PROGRAM


POP DX ; YES, POP THE DATA STORED
POP AX
ADD AX,N ; ADD THE FIRST NUMBER TO THE CONTENTS OF AX
JNC NEXT ; IF THE RESULT IS GREATER THEN 16-BITS
INC DX ; INCREMENT DX REGISTER
NEXT: JMP BACK ; RESPECT TILL THE REMAINDER IS ZERO
EXIT: POP LCM+2 ; POP THE LCM VALUE FROM THE TOP OF STACK
POP LCM
MOV AH, 4CH ; TERMINATE THE PROGRAM
INT 21H
END

2.11. DEVELOP AND EXECUTE AN ALP TO FIND THE GCD OF TWO 16-BIT UNSIGNED INTEGERS.

.MODEL SMALL ; BOTH CODE & DATA SEGMENT <=64K EACH


.STACK ; STACK INITIALIZED
.DATA
N1 DW 000FH ; INITIALIZING N1 WITH 000FH
N2 DW 0005H ; INITIALIZING N2
GCD DW ? ; THE RESULT WILL BE STORED IN GCD
.CODE
MOV AX, @DATA ; INITIALIZE THE DATA SEGMENT
MOV DS, AX ; INITIALIZE THE DS REGISTER
MOV AX, N1 ; N1 IS INITIALIZED
MOV BX, N2 ; N2 IS INITIALIZED
BACK: CMP AX, BX ; ARE THEY EQUAL?
JE EXIT ; IF YES, SAVE THE GCD
JB INTRG ; IF NO, IS AX<BX? IF YES, INTERCHANGE THE NUMBERS
DIVN: MOV DX, 0
DIV BX ; CHECK WHETHER AX IS DIVISIBLE BY BX
CMP DX, 0
JE EXIT ; IF YES, SAVE GCD
MOV AX, DX ; MOVE THE REMAINDER AS N1 DATA
JMP BACK ; REPEAT THE PROCEDURE
INTRG: XCHG AX, BX ; LOAD THE HIGHER NUMBER IS AX AND
JMP DIVN ; LOWER NUMBER IN DX AND CONTINUE
EXIT: MOV GCD, BX ; SAVE THE GCD NUMBER
MOV AH, 4CH ; TERMINATE THE PROGRAM
INT 21H
END

2.12 DEVELOP AND EXECUTE AN ALP TO COMPUTE THE FACTORIAL OF A POSITIVE INTEGER N
USING RECURSIVE PROCEDURE
.
.MODEL SMALL
.STACK
.DATA
NUM DW 5
RESULT DW ?
.CODE
MOV AX,@DATA ; INITIALIZE THE DS REGISTER
MOV DS,AX
MOV AX,01 ; INITIALIZE THE RESULT AS 01 IF THE NUMBER IS 0

Dept of ECE, ACSCE, Bangalore Page 12


MICROPROCESSOR LAB MANUAL -10ECL-68

MOV CX,NUM ; INITIALIZE THE NUMBER


CMP CX,0 ; CHECK WHETHER NUMBER IS 0
JE EXIT ; IF YES, GO TO TERMINATE THE PROGRAM
MOV BX, CX ; SAVE THE NUMBER IN BX
CALL FACT ; CALL THE FACTORIAL FUNCTION
EXIT: MOV RESULT, AX ; SAVE THE FACTORIAL IN RESULT
MOV AH, 4CH ; TERMINATE THE PROGRAM
INT 21H
FACT PROC NEAR ;FUNCTION FOR FACTORIAL
CMP BX,01 ;IS BX CONTENT=01?
JZ ST01 ; IF YES, GO TO INITIALIZE AX
PUSH BX ; IF NO, SAVE INTERMEDIATE VALUE ON STACK
DEC BX ; REDUCE BX VALUE
CALL FACT
POP BX ; POP THE VALUE STORED AND
MUL BX ; MULTIPLY WITH AX REGISTER
RET ; RETURN TO THE CALLED PROGRAM
ST01: MOV AX,0 1 ;INITIALIZE AX REGISTER 01
RET ; RETURN TO THE CALLED PROGRAM
FACT ENDP ; END OF THE FACTORIAL FUNCTION
END

Dept of ECE, ACSCE, Bangalore Page 13


MICROPROCESSOR LAB MANUAL -10ECL-68

3. BIT MANIPULATION INSTRUCTIONS


Data Positive and Negative
3.1 DEVELOP AND EXECUTE AN ALP TO FIND WHETHER THE GIVEN NUMBERS ARE POSITIVE
OR NEGATIVE

.MODEL SMALL
.DATA
COUNT EQU 05H
LIST DW 2357H, 0A579H, 0C911H, 0C000H
POSNUM DW 01 DUP(0)
NEGNUM DW 01 DUP(0)
.CODE
MOV AX,@DATA
MOV DS, AX
LEA SI, LIST
MOV CL, COUNT
BACK: MOV AX,[SI]
SHL AX,01
JC NEG1
INC POSNUM
JMP NEXT
NEG1: INC NEGNUM
NEXT: ADD SI, 02
DEC CL
JNZ BACK
MOV AH, 4CH
INT 21H

Data odd or Even


3.2 DEVELOP AND EXECUTE AN ALP TO CHECK WHETHER THE GIVEN DATA IS EVEN OR ODD
NUMBERS.

.MODEL SMALL
.DATA
COUNT EQU 05H
LIST DW 2357H,0A579H,0C911H,0C000H
EVENNUM DW 0 1 DUP(0)
ODDNUM DW 01 DUP(0)
.CODE
MOV AX,@DATA
MOV DS, AX
LEA SI, LIST
MOV CL, COUNT
BACK: MOV AX,[SI]
ROR AX,01
JC ODD1

Dept of ECE, ACSCE, Bangalore Page 14


MICROPROCESSOR LAB MANUAL -10ECL-68

INC EVENNUM
JMP NEXT
ODD1: INC ODDNUM
NEXT: ADD SI, 02
DEC CL
JNZ BACK
MOV AH, 4CH
INT 21H
END

Logical 1’s and 0’s in a given Data


3.3 DEVELOP AND EXECUTE AN ALP TO COUNT LOGICAL 1’S AND 0’S

.MODEL SMALL
.DATA
X DW 0088H
ZERO DW 01H DUP (00)
ONE DW 01H DUP (00)
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AX,X
MOV CX,08H
BACK: SHR AX,01H
JNC NEXT
INC [ONE]
JMP FW
NEXT: INC [ZERO]
FW: DEC CX
JNZ BACK
MOV AH,4CH
INT 21H
END

2 out of 5Code
3.4 DEVELOP AND EXECUTE AN ALP TO FIND WHETHER 2 OUT OF 5 CODE OR NOT FOR A GIVEN
NUMBER (THE FIRST 3 MSB’S MUST BE ZERO AND IN THE REMAINING 5 BITS 2 BITS MUST BE
ONES)

.MODEL SMALL
.STACK
.DATA
DAT DB 03H
MSG1 DB 'VALID CODE','$'
MSG2 DB 'INVALID CODE','$'
ONE_C DB 0
.CODE
MOV AX,@DATA
MOV DS,AX
MOV CX,05
MOV AL,DAT

Dept of ECE, ACSCE, Bangalore Page 15


MICROPROCESSOR LAB MANUAL -10ECL-68

AND AL,0E0H
CMP AL,00H
JNZ FAIL
MOV AL,DAT
BACK: ROR AL,01
JNC NEXT
INC ONE_C
NEXT: LOOP BACK
CMP ONE_C,02
JNZ FAIL
LEA DX,MSG1
JMP DISP
FAIL: LEA DX,MSG2
DISP: MOV AH,09H
INT 21H
MOV AH, 4CH
INT 21H
END

Bit Wise and Nibble Wise Palindrome


3.5 DEVELOP AND EXECUTE
AN ALP TO CHECK THE GIVEN 16 BIT NUMBER IS BITWISE PALINDROME
OR NOT

.MODEL SMALL
.DATA
MSG1 DB 'GIVEN BYTE IS PALINDROME $'
MSG2 DB 'GIVEN BYTE IS NOT PALINDROME $'
INPUT DW 0A5A5H
COUNT EQU 16
.CODE
MOV AX,@DATA
MOV DS, AX
MOV BX, INPUT
MOV CX, COUNT
MOV DX, BX
CLC
UP: ROL BX, 01H
RCR DX, 01H
LOOP UP
CMP BX, DX
JZ NEXT
LEA DX, MSG2
MOV AH, 09H
INT 21H
JMP LAST
NEXT: LEA DX, MSG1
MOV AH, 09H
INT 21H
LAST: MOV AH, 4CH
INT 21H
END

Dept of ECE, ACSCE, Bangalore Page 16


MICROPROCESSOR LAB MANUAL -10ECL-68

3.6DEVELOP AND EXECUTE


AN ALP TO CHECK THE GIVEN NUMBER IS NIBBLE PALINDROME OR NOT.
DISP MACRO MSG

MOV AH,09H
LEA DX,MSG
INT 21H
ENDM
.MODEL SMALL
.DATA
NUM DW 8C8 8H
MSG1 DB 'NUMBER IS NIBBLEWISE PALIN','$ '
MSG2 DB 'NUMBER IS NOT NIBBLEWISE PALIN','$'
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AX,NUM
MOV CL,04H
MOV BX,AX
CLC
BACK: ROR BL,1
DEC CL
JNZ BACK
CMP BH,BL
JZ PALIN
DISP MSG2
JMP LAST
PALIN: DISP MSG1
LAST: MOV AH,4CH
INT 21H
END

Dept of ECE, ACSCE, Bangalore Page 17


MICROPROCESSOR LAB MANUAL -10ECL-68

4. BRANCH/LOOP INSTRUCTIONS:
Programs on Arrays
4.1 DEVELOP AND EXECUTE AN ALP TO SORT A GIVEN SET OF 8 BIT UNSIGNED INTEGERS INTO
ASCENDING/ DESCENDING ORDER USING BUBBLE SORT ALGORITHM.

.MODEL SMALL
.STACK
.DATA
A DB 0DH,0CH,0AH,0BH,0EH
COUNT DW $-A
.CODE
MOV AX,@DATA
MOV DS,AX
MOV BX,COUNT
LEA SI,A
DEC BX
NXTPASS: MOV CX,BX
MOV SI,0
NXTCOMP: MOV AL,A[SI]
INC SI
CMP AL,A[SI]
JB NEXT ; FOR DESCENDING JA NEXT
XCHG AL,A[SI]
MOV A[SI-1],AL
NEXT: LOOP NXTCOMP
DEC BX
JNZ NXTPASS
MOV AH,4CH
INT 21H
END

4.2 DEVELOP AND EXECUTE AN ALP TO FIND LARGEST /SMALLEST NUMBERS

.MODEL SMALL
.DATA
COUNT EQU 05H
LARGEST DB 01H DUP(?)
LIST DB 52H,23H,26H,45H,15H
.CODE
MOV AX,@DATA
MOV DS,AX
LEA SI,LIST
MOV CL,COUNT
MOV AL,[SI]
DEC CL

Dept of ECE, ACSCE, Bangalore Page 18


MICROPROCESSOR LAB MANUAL -10ECL-68

AGAIN: CMP AL,[SI+1]


JNC NEXT ; JC NEXT FOR SMALLEST NUMBER
MOV AL,[SI+1]
NEXT: INC SI
DEC CL
JNZ AGAIN
LEA DI,LARGEST
MOV [DI],AL
MOV AH,4CH
INT 21H
END

4.3DEVELOP AND EXECUTE AN ALP TO PERFORM


ADDITION AND SUBTRACTION OF N NUMBERS

.MODEL SMALL
.DATA
N1 DB 23H, 57H, 0A5H, 79H, 0C3H, 22H, 0C9H, 11H
N2 DB 12H, 37H, 0C5H, 0DEH, 0A3H, 9AH, 29H, 14H
SUM DB 8 DUP (?)
DIFF DB 8 DUP (?)
.CODE
MOV AX,@DATA
MOV DS, AX
MOV CX, 8
MOV BX, 7
MOV DX, 0
CLC
ADDAGN:MOV AL, N1[BX]
ADC AL, N2[BX]
MOV SUM[BX], AL
DEC BX
LOOP ADDAGN
JNC NEXT
INC DX
NEXT: MOV CX, 8
MOV BX, 7
CLC
SUBAGN:MOV AL, N1[BX]
SBB AL, N2[BX]
MOV DIFF[BX], AL
DEC BX
LOOP SUBAGN
MOV AH, 4CH
INT 21H
END

Dept of ECE, ACSCE, Bangalore Page 19


MICROPROCESSOR LAB MANUAL -10ECL-68

5. STRING MANIPULATIONS
5.1. DEVELOP AND EXECUTE AN ALP TO TRANSFER A GIVEN SOURCE STRING TO DESTINATION
STRING USING STRING INSTRUCTIONS
.
.MODEL SMALL
.DATA
SRC DB 'RRCE','$'
LEN EQU ($-SRC)
DST DB 4 DUP(?),'$ '
.CODE
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
LEA SI,SRC
LEA DI,DST
MOV CX,LEN
CLD
REP MOVSB
MOV AH,09H
LEA DX,DST
INT 21H
MOV AH,4CH
INT 21H
END

5.2 DEVELOP AND EXECUTE AN ALP TO REVERSE A GIVEN STRING.

.MODEL SMALL
.DATA
SRC DB 'RRCE','$'
LEN EQU ($-SRC)
RES DB '$', 6 DUP(?),'$'
.CODE
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
LEA SI,SRC
LEA DI,RES
MOV CX,LEN
ADD DI,CX
DEC DI
BACK: CLD
LODSB
STD
STOSB

Dept of ECE, ACSCE, Bangalore Page 20


MICROPROCESSOR LAB MANUAL -10ECL-68

LOOP BACK
MOV AH,09H
LEA DX,RES+1
INT 21H
MOV AH,4CH
INT 21H
END

5.3. DEVELOP AND EXECUTE AN ALP TO FIND WHETHER THE STRING IS PALINDROME OR NOT.

.MODEL SMALL
.DATA
SRC DB 'NAYAN','$'
COUNT EQU 05H
MSG1 DB 'PAL','$'
MSG2 DB 'NOT PAL','$'
.CODE
MOV AX,@DATA
MOV DS,AX
LEA SI,SRC
LEA DI,SRC+4
MOV CX,COUNT
BACK: MOV AL,[SI]
MOV BL,[DI]
CMP AL,BL
JNZ FAIL
INC SI
DEC DI
DEC CX
JNZ BACK
LEA DX,MSG1
JMP DISP
FAIL: LEA DX,MSG2
DISP: MOV AH,09 H
INT 21H
MOV AH,4CH
INT 21H
END

5.4. DEVELOP AND EXECUTE AN ALP SEARCH A CHARACTER IN A GIVEN STRING.


DISP MACRO MSG

LEA DX,MSG
MOV AH,09H
INT 21H
ENDM
.MODEL SMALL
.DATA
MSG1 DB 'ENTER THE STRING:$'
MSG2 DB 'ENTER THE CHARACTER TO BE SEARCHED:$'
MSG3 DB 'CHARACTER FOUND $'
MSG4 DB 'CHARACTER NOT FOUND $'
SRCH DB ?
CHAR DB 50

Dept of ECE, ACSCE, Bangalore Page 21


MICROPROCESSOR LAB MANUAL -10ECL-68

DB 00
DB 50 DUP(0)
.CODE
MOV AX,@DATA
MOV DS,AX
DISP MSG1
LEA DX,CHAR
MOV AH,0AH
INT 21H
DISP MSG2
MOV AH,01H
INT 21H
MOV CH,00H
MOV CL,CHAR+1
LEA BX,CHAR+2
UP: CMP AL,[BX]
JE SKIP
INC BX
LOOP UP
DISP MSG4
JMP LAST
SKIP: DISP MSG3
LAST: MOV AH,4CH
INT 21H
END

5.5. DEVELOP AND EXECUTE AN ALP THAT DETERMINES IF A GIVEN SUB-STRING IS PRESENT
OR NOT IN A MAIN STRING OF CHARACTERS. THE RESULT (1: PRESENT ,0:ABSENT) CAN BE
LEFT IN A MEMORY LOCATION.

.MODEL SMALL
.DATA
STRG DB ' GOD IS GREAT ','$'
COUNT1 DW ($-STRG)
SUBSTRG DB 'IS','$ '
COUNT2 DW ($-SUBSTRG)
RESULT DB ?
.CODE
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
MOV CX,COUNT1
LEA SI,SUBSTRG
LEA DI,STRG
CLD
MOV AL,[SI]
NEXT: REPNZ SCASB
INC SI
MOV DX,CX
SUB CX, COUNT2
JB STOP
MOV CX,COUNT2
DEC CX
REPNZ CMPSB

Dept of ECE, ACSCE, Bangalore Page 22


MICROPROCESSOR LAB MANUAL -10ECL-68

JNZ NOTFND
MOV RESULT,01H
ENDALL: MOV AH,4CH
INT 21H
STOP: MOV RESULT,00H
JMP ENDALL
NOTFND: MOV CL,DL
LEA SI,SUBSTRG
JMP NEXT
END
6. DOS INTERRUPTS: PROGRAM TO USE DOS INT 21H FUNCTION CALLS
6.1 DEVELOP AND EXECUTE AN ALP TO READ A CHARACTER FROM A KEYBOARD

.MODEL SMALL
.DATA
NUM DB ?
.CODE
MOV AX, @DATA
MOV DS, AX
MOV AH, 01H
INT 21H
MOV NUM, AL
MOV AH, 4CH
INT 21H
END

6.2DEVELOP AND EXECUTE AN ALP FOR BUFFERED KEYBOARD INPUT

.MODEL SMALL
.CODE
MOV AX,@DATA
MOV DS,AX
MOV DX,09H
MOV AH,0AH
INT 21H
MOV AH,4CH
INT 21H
END

6.3 DEVELOP AND EXECUTE AN ALP TO DISPLAY CHARACTER A TO Z WITH SPACE BETWEEN
ON CONSOLE

.MODEL SMALL
.STACK
.CODE
MOV CX,26
MOV DL,'A'
BACK: MOV AH,02
INT 21H
INC DL
PUSH DX
MOV DL,20H
MOV AH,02
INT 21H

Dept of ECE, ACSCE, Bangalore Page 23


MICROPROCESSOR LAB MANUAL -10ECL-68

POP DX
LOOP BACK
MOV AH,4CH
INT 21H
END

6.4 DEVELOP AND EXECUTE AN ALP DISPLAY A CHARACTER ,STRING ON CONSOLE

.MODEL SMALL
.DATA
DISP DB 'HI,HOW R U ? $'
.CODE
MOV AX,@DATA
MOV DS,AX
MOV DX,OFFSET DISP
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
END

6.5. DEVELOP AND EXECUTE AN ALP TO CREATE A FILE

.MODEL SMALL
.DATA
FILENAME DB 'TXT.ASM'
.CODE
MOV AX,@DATA
MOV DS,AX
MOV CX,0
MOV DX,OFFSET FILENAME
MOV AH,3CH
INT 21H
MOV AH,4CH
INT 21H
END

6.6 CREATION OF A NEW FILE,READ/WRITE FROM FILE

.MODEL SMALL
.DATA
FILENAME DB 'NEWTEXT.TXT’,0
STRMSG DB "HELLO$"
FL_ HDL DW ?
WRITEME DB "HI$"
LEN EQU ($-WRITEME)
BUFFER DB LEN DUP(20H)
.CODE
MOV AX,@DATA
MOV DS,AX
MOV DX, OFFSET STRMSG

Dept of ECE, ACSCE, Bangalore Page 24


MICROPROCESSOR LAB MANUAL -10ECL-68

MOV AH,09H
INT 21H
MOV CX,0
MOV DX, OFFSET FILENAME
MOV AH, 3CH
INT 21H
MOV DX, OFFSET FILENAME
MOV AL,2
MOV AH,3DH
INT 21H
MOV FL_HDL,AX
MOV DX, OFFSET WRITEME
MOV BX, FL_HDL
MOV CX,LEN
MOV AH,40H
INT 21H
MOV BX, FL_HDL
MOV AH, 3EH
INT 21H
MOV DX, OFFSET FILENAME
MOV AL,2
MOV AH, 3DH
INT 21H
MOV FL_HDL, AX
MOV DX, OFFSET BUFFER
MOV BX, FL_HDL
MOV CX, LEN
MOV AH, 3FH
INT 21H
MOV FL_HDL, AX
;MOV BX, FL_HDL
;MOV AH, 3EH
;INT 21H
MOV DX, OFFSET BUFFER
MOV AH, 09H
INT 21H
MOV AH, 4CH
INT 21H
END

6.7 DEVELOP AND EXECUTE AN ALP TO READ SYSTEM DATE/MONTH/DAY

.MODEL SMALL
.DATA
YR1 DW ?
MT1 DB ?
DT1 DB ?
WK1 DB ?
DAYS DB "SUN$MON$TUE$WED$THU$FRI$SAT$"
MONTHS DB "JAN$FEB$MAR$ APR$MAY$JUN$JUL$AUG$SEP$OCT$NOV$DEC$"
.CODE
MOV AX,@DATA
MOV DS,AX
MOV AH,2AH

Dept of ECE, ACSCE, Bangalore Page 25


MICROPROCESSOR LAB MANUAL -10ECL-68

INT 21H
MOV YR1,CX
MOV MT1,DH
MOV DT1,DL
MOV WK1,AL
MOV AL,DT1
MOV AH,00
MOV DL,0 AH
DIV DL
OR AX,3030H
MOV BL,AL
MOV BH,AH
MOV DL,BL
MOV AH,02
INT 21H
MOV DL,BH
MOV AH,02
INT 21H
MOV DX, OFFSET MONTHS
MOV AH,00
MOV AL,MT1
DEC AL
MOV BL,04
MUL BL
ADD DX,AX
MOV AH,09
INT 21H
MOV DX,OFFSET DAYS
MOV AH,00
MOV AL,WK1
MOV BL,04
MUL BL
ADD DX,AX
MOV AH,09
INT 21H
MOV AH,4CH
INT 21H
END

6.8DEVELOP AND EXECUTE AN ALP TO READ SYSTEM TIME

.MODEL SMALL
.STACK
.CODE
MOV AH,2CH
INT 21H
MOV AL,CH
CALL DISP
MOV DL,':'
MOV AH,2
INT 21H
MOV AL,CL
CALL DISP
MOV AH,4CH

Dept of ECE, ACSCE, Bangalore Page 26


MICROPROCESSOR LAB MANUAL -10ECL-68

INT 21H
DISP PROC NEAR
AAM
ADD AX,3030H
MOV BX,AX
MOV DL,BH
MOV AH,2
INT 21H
MOV DL,BL
MOV AH,2
INT 21H
RET
DISP ENDP
END

Interfacing Experiments
7.1 READ THE STATUS OF EIGHT INPUT BITS FROM THE LOGIC CONTROLLER INTERFACE AND
DISPLAY FF IF IT IS EVEN PARITY BITS OTHERWISE DISPLAY 0. ALSO DISPLAY THE
.
NUMBER OF 1’S IN THE INPUT DATA

.MODEL SMALL
.STACK64
.DATA
MSG1 DB 13 ,10,’THE NO. OF 1’S IN INPUT DATA IS:’,’$’
MSG2 DB ? , ?,’$’
.CODE
MOV AX, @DATA
MOV DS, AX
LEA DX, MSG1
MOV AH, 09H
INT 21H
MOV DX, 0123H
MOV AL, 82H
OUT DX, AL
MOV DX, 0121H
IN AL, DX
MOV BL, 00H
MOV CX, 0 8H
LOOP1:ROR AL, 01H
JNC NOCOUNT
INC BL
NOCOUNT:LOOP LOOP1
MOV AL, BL
AND AL, OFH
CALL BINASCII
MOV MSG2+1, AL
MOV AL, BL
AND AL, 0F0H
MOV CL, 04H
ROR AL, CL
CALL BINASCII
MOV MSG2, AL
Dept of ECE, ACSCE, Bangalore Page 27
MICROPROCESSOR LAB MANUAL -10ECL-68

LEA DX, MSG2


MOV AH, 09H
INT 21H
MOV AL, BL
ROR AL, 01H
JC ODDP
MOV AL, 0FFH
X2: MOV DX, 0120H
OUT DX, AL
MOV AH, 4CH
INT 21H
ODDP: MOV AL, 00
JMP X2
BINASCII PROC NEAR
CMP AL, OAH
JB LOOP2
ADD AL, 07H
LOOP2:ADD AL, 30H
RET
BINASCII ENDP
END

7.2 DISPLAY MESSAGES FIRE AND HELP ALTERNATELY WITH FLICKERING EFFECTS ON A 7
SEGMENT DISPLAY INTERFACE FOR A SUITABLE PERIOD OF TIME. ENSURE A FLASHING RATE
THAT MAKES IT EASY TO READ BOTH THE MESSAGES.

.MODEL SMALL
.DATA
FIRST DB 86H, 0AFH, 0F9H, 08EH
SECOND DB 8CH, 0C7H, 86 H, 89H
.CODE
BEGIN:MOV AX, @DATA
MOV DS, AX
MOV AL, 80H
MOV DX, 0123H
OUT DX, AL
MOV CX, 0 5H
NEXT:MOV SI, OFFSET FIRST
CALL FLASH
CALL DELAY
CALL DELAY
MOV SI, OFFSET SECOND
CALL FLASH
CALL DELAY
CALL DELAY
LOOP NEXT
MOV AH, 4CH
INT 21H
FLASH PROC NEAR
PUSH CX
PUSH BX
MOV CX, 0 4H
LOOP1:MOV BL, 08H
MOV AL, [SI]

Dept of ECE, ACSCE, Bangalore Page 28


MICROPROCESSOR LAB MANUAL -10ECL-68

LOOP2:ROL AL, 1
MOV DX, 0121H
OUT DX, AL
PUSH AX
MOV DX, 0122H
MOV AL, 0FFH
OUT DX, AL
MOV AL, 00H
OUT DX, AL
POP AX
DEC BL
JZ NEXT1
JMP LOOP2
NEXT1:INC SI
LOOP LOOP1
POP BX
POP CX
RET
FLASH ENDP
DELAY PROC NEAR
PUSH CX
PUSH BX
MOV CX, 0 8FFFH
L1: MOV BX, 0FFFH
L2: DEC BX
JNZ L2
LOOP L1
POP BX
POP CX
RET
DELAY ENDP
END

7.3A). STEPPER IN CLOCKWISE DIRECTION

.MODEL SMALL
.CODE
MOV DX, 0123H
MOV AL, 80H
OUT DX, AL
MOV CX, 2 00
MOV DX, 0121H
MOV AL, 88H
L1: OUT DX, AL
CALL DELAY ROR AL, 1
LOOP LI
MOV AH, 4CH
INT 21H
DELAY PROC NEAR
PUSH CX
MOV CX, 0 FFFH
L2: MOV BX, OFFFH
L3: DEC BX
JNZ L3

Dept of ECE, ACSCE, Bangalore Page 29


MICROPROCESSOR LAB MANUAL -10ECL-68

LOOP L2
POP CX
RET
DELAY ENDP
END

7.3B) STEPPER IN ANTICLOCKWISE DIRECTION

.MODEL SMALL
.CODE
MOV DX, 0123H
MOV AL, 80H
OUT DX, AL
MOV CX, 2 00
MOV DX, 0120H
MOV AL, 88H
L1: OUT DX, AL
CALL DELAY
ROL AL, 1
LOOP LI
MOV AH, 4CH
INT 21H
DELAY PROC NEAR
PUSH CX
MOV CX, 0 FFFH
L2: MOV BX, OFFFH
L3: DEC BX
JNZ L3
LOOP L2
POP CX
RET
DELAY ENDP
END

7.4 SCAN THE 3X8 KEYPAD FOR KEY CLOSURE AND TO STORE THE CODE OF THE KEY PRESSED
IN A MEMORY LOCATION OR DISPLAY ON THE SCREEN. ALSO DISPLAY ROW AND COLUMN
NUMBERS OF THE KEY PRESSED.

DISP MACRO MSG


LEA DX, MSG
MOV AH, 09H
INT 21H
ENDM
.MODEL SMALL
.STACK64
.DATA
PA EQU 0120H
PB EQU 0121H
PC EQU 0122H
CR EQU 0123H
M1 DB 10,13,’ENTERED KEY IS:$’
M2 DB 10,13,ROW NUMBER IS:$’
M3 DB 10,13,COLUMKN NUMBER IS:$’
M4 DB 10,13,PRESS c TO CONTINUE:$’

Dept of ECE, ACSCE, Bangalore Page 30


MICROPROCESSOR LAB MANUAL -10ECL-68

ROW DB ?
COL DB ?
.CODE
START1:MOV AX, @DATA
MOV DS, AX
MOV AL 90H
MOV DX, CR
OUT DX, AL
START:MOV AL, 80H
MOV ROW, 1
MOV COL, 1
MOV CH, 0
MOV BL, 3
NEXTROW:ROL AL, 1
MOV BH, AL
MOV DX, PC
OUT DX, AL
MOV CL, 8
MOV DX, PA
IN AL, DX
NEXTCOL:RORAL, 1
JC DISPLAY
INC CH
IN COL
DEC CL
JNZ NEXTCOL
MOV COL, 1
INC ROW
MOV AL, BH
DEC BL
JNZ NEXTROW
X: JMP START
DISPLAY:DISP M1
MOV DL, CH
CMP DL, 0AH
JC DIGIT
ADD DL, 07H
DIGIT:ADD DL, 30H
MOV AH,2
INT 21H
ADD ROW, 30H
ADD COL, 30H
DISP M2
MOV DL, ROW
MOV AH, 2
INT 21H
DISP M3
MOV DL, COL
MOV AH, 2
INT 21H
DISP M4
MOV AH, 8
INT 21H
CMP AL, ‘c’
JZ X
Dept of ECE, ACSCE, Bangalore Page 31
MICROPROCESSOR LAB MANUAL -10ECL-68

MOV AH, 4CH


INT 21H
END

VIVA QUESTIONS
1. Differentiate between micro processor and microcomputer.
2. What are the differences between 8086 and 8088 µP?
3. What are the functions of each general purpose registers?
4. What are the important features of queue?
5. How does the performance of µP improve by having BIU and EU?
6. What is the importance of flag register?
7. What are the different types of data on which 808 6 ALU work s?
8. Why 8086 µP cannot work on floating point numbers?
9. Give an example and explain how AF is used by the system?
10. How can you access data from the stack memory area without pop ping fro m the
top of the stack?
11. How does the µP generate 20 bit address even though it has 16 bit registers?
12. What are the control flags? Describe each one of them.
13. Give two instructions that clear the AX register to zero.
14. Which segment register may not be popped from the stack?
15. Which is more efficient-a MOV with an offset or an LEA instruction?
16. Explain ho w XLAT instruction works?
17. When is the add ress object transfer instruction used?
18. Name all the memory reference add ressing modes.
19. What is the difference between register indirect and indexed or based addressing mode?
20. Explain why the µP always fetches 16 bits code from memory into the queue, even though the queue is 8 bits?
21. What are the instructions that have a “V” bit in the instruction Op code?
22. What is the use of MOD field in the instruction Opcode?
23. Does “S” and “W” field always appear together in an instruction Opcode? Why?
24. What does the “Z” bit in an instruction indicate?
25. What are the cases in which the segment override can not be used?
26. Which are the addressing modes that are not availab le in MOV instruction?
27. What is the maximum size of the stack one can have at any instant of time in 8 086?
28. Can a programmer have more than one stack memory? Support your answer.
29. Which register cannot be popped from the top o f the stack? Give reasons.
30. In indirect addressing mode, how many I/O devices can 8086 access?
31. How many I/O devices can 8086 access?
32. How one can differentiate whether µP is reading from memory or I/O.
33. Why is zero prefixed whenever there is an alphabet as first digit hexadecimal number?
34. Which are the instructions in data transfer group that affect the flags?

Dept of ECE, ACSCE, Bangalore Page 32


MICROPROCESSOR LAB MANUAL -10ECL-68

35. What is the difference between .EXE and .COM files?


36. How can one co nvert .EXE file into .COM file?
37. What is the difference between trace “t” and trace “p” in the debug/code view?
38. What are the d ifferent types of assembler construct models available and what are its functions?
39. What is the necessity to have sp ecial 1 b it indicators in an instruction Opcode?
40. What is the difference between MUL and IMUL instructions?
41. How do instructions DAA and AAA differ?
42. What is the difference between DIV and IDIV instructions?
43. When do you use CBW and CWD instructions?
44. Which is the instruction that is similar to TEST instruction?
45. What is the difference between Shift and Rotate instruction?
46. What is the difference between Arithmetic and Logic shift instruction?
47. What is the default registers used in string instructions?
48. What is the maximum number of times an instruction can be executed using Repeat prefix String instruction?
49. Why LOCK prefix should not be used when using REP prefix String instruction?
50. When do we use Conditional Repeat prefix instructions?
51. What is the difference between in tersegment and intraseg ment CALL instruction?
52. Give a sequence of operation for intersegment indirect CALL instruction.
53. When should the optional po p value be given in the RET instruction?
54. What are the conditional transfer instructions for signed numbers?
55. What is the function of LOOP instruction? LOOP instruction can be replaced b y which instruction?
56. How does INT 3 differ from other software interrupts?
57. When do you use ESC prefix instruction?
58. What is the use of WAIT instruction?
59. Why is NOP instruction required?
60. How is TRAP flag set and reset?
61. How is directio n flag set and reset?
62. What are the d ifferent files that are created after assembling the program?
63. What is the procedure to convert .EXE file to .COM file?
64. What are the uses of DEBUG program? Mention some of the important commands.
65. What are the uses of assembler directives?
66. What is the difference between EQU directive and =?
67. When do we use EVEN directive and ORG directive?
68. Give some examples where Byte ptr, Word ptr directives are impo rtant.
69. What is control co upling and data coupling?
70. How are STRUC and RECIRD directive used?
71. What is recursion? What are its advantages and disadvantages?
72. Define Macro in assembly language program. How do es it d iffer from a procedure?
73. What is the difference between a macro parameter and macro argument?
74. What is the use of d irective Local in a macro program?
75. Can macro be nested?
76. How many times can a given identifier be defined locally in a given macro?
77. What is the use of conditional assembly? Give an example to support your answer.
78. Why mu st the NEAR or FAR attribute appear in a PROC statement?
79. What is the difference between DOS and BIOS interrupt?
80. What is time multip lexing mode of op eration?
81. How does 8086 perform DMA control op erating using only one line RQ/GT pin?
82. What is the advantage of using 8086 in maximu m mode?
83. What is the use of TEST pin?
84. Why does 8086 require 8284 clock generator chip?
85. Who decodes S0, S1, S2 status pins?
86. What is the use of LOCK pin?
87. What is the necessity of QS0 and QS1 pins in 8086?
88. Is it possible to do without BHE signal in 8086? What is the problem faced in its ab sence?
89. What is an interrupt? Are these required?
Dept of ECE, ACSCE, Bangalore Page 33
MICROPROCESSOR LAB MANUAL -10ECL-68

90. How micropro cessor is protected using DEN and DT/R signals?
91. How 8086 and 8088 differ with respect to pins?
92. What is the difference between memory read and I/O read cycle?
93. Describe the response of 8086 when its reset pin is asserted high.
94. Why are bu ffers often needed on the address, data and control busses in µP system?
95. Why do we require PCLK signal in 8284 chip?
96. What are the sources of interrupt to 8086?
97. How does 8086 respond to an interrupt?
98. What is the priority of interrupts in 8086?
99. How is the interrupt vector table arranged?
100. Does nested interrupt work in 8086? How?
101. Why do we require PIC 8259? What are its important features?
102. What are the different ways in which SP/EN pin used in 8259?
103. Are CAS0-CAS2 (cascaded) lines required in 8259? Why?
104. What are the maximu m numbers of interrupting devices that can be connected to 8259 in cascaded
mode? How many 8 259’s are
required for the same?
105. How does the priority resolver resolve the highest priority?
106. What is the sequence of operations performed when there is an interrupt to 8259 interrupt controller?
107. Is the call address of 8 ad visab le to program 8259 when interfaced to 808 6?
108. How do the ICWs differ for master and slave in8259?
109. How is specially fully nested mode helpful?
110. What way is buffer mode helpful in system?
111. How does 8259 know that you are programming op eration command word?
112. What is the advantage of specific over non specific End of interrupt?
113. Mention the advantages and disadvantages of Automatic End of interrupt?
114. How do we set priority in 8259?
115. What is special mask mode?
116. What are the differences between static RWM and dynamic RWM?
117. How is static memories classified?
118. How does 8086 access 16 bit data from odd address?
119. Give some examples for conditional and unconditional CPU initiated I/O devices.
120. What are the differences between programmable and non programmable I/O devices?
121. When do you use co mmon cathode and co mmon anode 7-segment display unit?
122. Why do we require two address lines A0 and A1 on 825 5?
123. What are the combinations that are available in Mode 0 in 8 255?
124. How does the control word of 8255 change if the MSB bit is 0 and 1.
125. Explain the operation of 8255 in Mode 1.
126. Give some applications for using 8255 in Mode 1 and Mode 2.
127. What is dynamic refresh while interfacing 8 seven segment displays to microprocessor through 8255?
128. What is the function of GATE pin in 8254 timer?
129. What is the minimum and maximum clock freq uency that can be provided to 8254?
130. What are the different modes in which 8254 can be programmed? Give some applications of each mode.
131. What is the use of counter latch command option in the control word of 8254?
132. Do we always get square wave in Mode 3 of 8254 > Explain.
133. How is read back co mmand helpful?
134. When do you prefer memory mapped I/O? What are its disadvantages?
135. What is fold back address? What are its advantages and disadvantages?
136. Is it possible to interface 8255 and 8253 to 8086 when only 8 I/O space is provided?
137. Give some practical applications of ADC and DAC together.
138. Why do we require a delay after exciting a winding in a stepper motor before exciting next?
139. What is the use of interrupt INTR in ADC?
140. What is an instruction, instruction set and a bus?

Dept of ECE, ACSCE, Bangalore Page 34


MICROPROCESSOR LAB MANUAL -10ECL-68

Dept of ECE, ACSCE, Bangalore Page 35

Potrebbero piacerti anche