Você está na página 1de 60

Microprocessor Lab

2012

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 1000H LIST1 DW 2357H, 0A579H ORG 2000H LIST2 DW 0C322H, 0C911H COUNT EQU 02H .CODE

ACS College of Engineering

Page 1

Dept of ECE

Microprocessor Lab
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 END

2012

Block Move
1.3 ALP TO MOVE THE BLOCK OF DATA FROM ONE LOCATION TO OTHER. .MODEL SMALL .DATA ORG 1000H 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

ACS College of Engineering

Page 2

Dept of ECE

Microprocessor Lab
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

2012

1.4 ALP TO MOVE THE BLOCK OF DATA FROM ONE LOCATION TO OTHER IN THE REVERSE ORDER. .MODEL SMALL .DATA ORG 1000H 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

ACS College of Engineering

Page 3

Dept of ECE

Microprocessor Lab
INC DI DEC CX JNZ BACK MOV AH, 4CH 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(?)

2012

ACS College of Engineering

Page 4

Dept of ECE

Microprocessor Lab
X DW 1111H,2222H,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 .CODE MOV AX,@DATA MOV DS, AX LEA SI, X LEA DI, Y MOV CX,0005H BACK: MOV AL, [SI]

2012

ACS College of Engineering

Page 5

Dept of ECE

Microprocessor Lab
MOV [DI], AL INC SI INC DI DEC CX JNZ BACK MOV AH, 4CH INT 21H END 1.8 ALP TO MOVE THE BLOCK OF DATA (WORD) WITHOUT OVERLAP .MODEL SMALL .DATA Y DW 5 DUP (?) X DW 1111H, 2222H, 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

2012

END ACS College of Engineering Page 6 Dept of ECE

Microprocessor Lab 2. DEVELOP AND EXECUTE AN ALP USING ARITHMETIC AND LOGICAL OPERATIONS

2012

Addition and Subtraction of Multiprecision Numbers


2.1 ALP FOR ADDITION OF MULTI PRECISION NUMBERS (32 BITS). .MODEL SMALL .DATA N1 DW 4444H, 7777H N2 DW 3333H,4444H SUM DW 03H DUP(?) COUNT EQU 03H .CODE MOV AX,@DATA

MOV DS,AX MOV DX,0000H MOV SI,OFFSET N1 MOV DI,OFFSET N2 MOV SUM BACK: MOV AX, [SI] ADC AX, [DI] MOV INC SI INC SI INC DI INC DI INC BX INC BX DEC CX JNZ BACK JNC ADD1 INC DX ADD1:MOV [BX], AX [BX], AX BX, OFFSET

MOV AH, 4CH INT 21H

END

ACS College of Engineering

Page 7

Dept of ECE

Microprocessor Lab

2012

2.2 ALP FOR SUBTRACTION OF MULTIPRECISION NUMBERS (32 BITS). .MODEL SMALL .DATA N1 DW 4444H, 7777H N2 DW 3333H,4444H SUM DW 03H DUP(?) COUNT EQU 03H .CODE MOV AX,@DATA

MOV DS,AX MOV SI,OFFSET N1 MOV DI,OFFSET N2 MOV SUM BACK: MOV AX, [SI] SBB AX, [DI] MOV INC SI INC SI INC DI INC DI INC BX INC BX DEC CX JNZ BACK MOV AH, 4CH INT 21H END [BX], AX BX, OFFSET

ACS College of Engineering

Page 8

Dept of ECE

Microprocessor Lab

2012

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

ACS College of Engineering

Page 9

Dept of ECE

Microprocessor Lab
MOV RESULT,AX MOV RESULT+2,DX

2012

MOV AH,4CH INT 21H END 2.5 ALP FOR DIVISON OF TWO 16 BITS UNSIGNED HEXADECIMAL NUMBERS. .MODEL SMALL .DATA DVD DW 1575H DVR DW 0FFFFH QUOT DW ? REMD DW ? .CODE MOV AX,@DATA MOV DS,AX MOV SI,OFFSET DVD MOV AX, [SI] MOV CX,DVR DIV CX MOV QUOT,AX MOV REMD,DX MOV AH,4CH INT 21H END 2.6 ALP FOR DIVISON OF TWO 16 BITS SIGNED HEXADECIMAL NUMBERS. .MODEL SMALL .DATA DVD DW 1575H DVR DW 0FFFFH QUOT DW ? REMD DW ? .CODE

MOV AX,@DATA MOV DS,AX MOV SI,OFFSET DVD MOV AX, [SI] MOV CX,DVR IDIV CX MOV QUOT,AX MOV REMD,DX MOV AH,4CH INT 21H END

ACS College of Engineering

Page 10

Dept of ECE

Microprocessor Lab

2012

ASCII Adjustment Instructions


2.6 DEVELOP 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 MOV RES,AX MOV AX,0000H MOV AL,N1 SUB AL,N2 AAS ; FOR SUBTRACTION ; FOR ADDITION

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

ACS College of Engineering

Page 11

Dept of ECE

Microprocessor Lab
DIV BL MOV RES+4,AX MOV RES+5,DX MOV AH,4CH INT 21H END

2012

Code Conversions (BCD to binary and vice versa) (16 bit data)
2.7 DEVELOP 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

ACS College of Engineering

Page 12

Dept of ECE

Microprocessor Lab
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 2710H THO EQU 3E8H HUN EQU 64H 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

2012

ACS College of Engineering

Page 13

Dept of ECE

Microprocessor Lab
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

2012

ACS College of Engineering

Page 14

Dept of ECE

Microprocessor Lab
ROL AL,CL MOV BL,TEMP+4

2012

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

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

ACS College of Engineering

Page 15

Dept of ECE

Microprocessor Lab
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 .STACK .DATA N DW 000FH, 0005H LCM DW 2 DUP (?) .CODE ; INITIALIZE DATA MEMORY LOCATIONS FOR THE OPERANDS ; THE CALCULATED RESULT IS STORED IN LCM. ; THE CODE PART OF THE PROGRAM STARTS HERE MOV AX,@DATA ; INITIALIZE DATA SEGMENT MOV DS, AX MOV DX, 0 MOV AX, N MOV BX, N+2 BACK: PUSH AX PUSH DX DIV BX ; DIVIDE FIRST NUMBER BY THE SECOND NUMBER ; CLEAR DX REGISTER ; LOAD THE FIRST NUMBER ; LOAD THE SECOND NUMBER ; SAVE THE BOTH NUMBERS ON TOP OF THE STACK ; BOTH CODE & DATA SEGMENT <=64K EACH. ; STACK INITIALIZED

2012

ACS College of Engineering

Page 16

Dept of ECE

Microprocessor Lab
CMP DX,0 JE EXIT POP DX POP AX ADD AX,N JNC NEXT INC DX NEXT: JMP BACK EXIT: POP LCM+2 POP LCM MOV AH, 4CH INT 21H END 2.11. DEVELOP AND EXECUTE AN ALP TO FIND THE GCD OF TWO 16-BIT UNSIGNED INTEGERS. .MODEL SMALL .STACK .DATA N1 DW 000FH N2 DW 0005H GCD DW ? .CODE MOV AX, @DATA MOV DS, AX MOV AX, N1 MOV BX, N2 BACK: CMP AX, BX JE EXIT JB INTRG DIVN: MOV DX, 0 DIV BX ; CHECK WHETHER AX IS DIVISIBLE BY BX ; INITIALIZE THE DATA SEGMENT ; INITIALIZE THE DS REGISTER ; N1 IS INITIALIZED ; N2 IS INITIALIZED ; ARE THEY EQUAL? ; IF YES, SAVE THE GCD ; IF NO, IS AX<BX? IF YES, INTERCHANGE THE NUMBERS ; INITIALIZING N1 WITH 000FH ; INITIALIZING N2 ; THE RESULT WILL BE STORED IN GCD ; BOTH CODE & DATA SEGMENT <=64K EACH ; STACK INITIALIZED ; TERMINATE THE PROGRAM ; ADD THE FIRST NUMBER TO THE CONTENTS OF AX ; IF THE RESULT IS GREATER THEN 16-BITS ; INCREMENT DX REGISTER ; RESPECT TILL THE REMAINDER IS ZERO ; POP THE LCM VALUE FROM THE TOP OF STACK ; IS THERE IS A NUMBER ? ; NO, TERMINATE THE PROGRAM ; YES, POP THE DATA STORED

2012

ACS College of Engineering

Page 17

Dept of ECE

Microprocessor Lab
CMP DX, 0 JE EXIT MOV AX, DX JMP BACK INTRG: XCHG AX, BX JMP DIVN EXIT: MOV GCD, BX MOV AH, 4CH INT 21H END ; IF YES, SAVE GCD ; MOVE THE REMAINDER AS N1 DATA ; REPEAT THE PROCEDURE ; LOAD THE HIGHER NUMBER IS AX AND ; LOWER NUMBER IN DX AND CONTINUE ; SAVE THE GCD NUMBER ; TERMINATE THE PROGRAM

2012

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 MOV CX,NUM CMP CX,0 JE EXIT MOV BX, CX CALL FACT ; INITIALIZE THE RESULT AS 01 IF THE NUMBER IS 0 ; INITIALIZE THE NUMBER ; CHECK WHETHER NUMBER IS 0 ; IF YES, GO TO TERMINATE THE PROGRAM ; SAVE THE NUMBER IN BX ; CALL THE FACTORIAL FUNCTION ;

EXIT: MOV RESULT, AX SAVE THE FACTORIAL IN RESULT ; MOV AH, 4CH INT 21H FACT PROC NEAR CMP BX,01 ;FUNCTION FOR FACTORIAL ;IS BX CONTENT=01? TERMINATE THE PROGRAM

ACS College of Engineering

Page 18

Dept of ECE

Microprocessor Lab
JZ ST01 PUSH BX DEC BX CALL FACT POP BX MUL BX RET ; POP THE VALUE STORED AND ; MULTIPLY WITH AX REGISTER ; RETURN TO THE CALLED PROGRAM ; IF YES, GO TO INITIALIZE AX ; IF NO, SAVE INTERMEDIATE VALUE ON STACK ; REDUCE BX VALUE

2012

ST01: MOV AX,01 ;INITIALIZE AX REGISTER 01 RET FACT ENDP END ; RETURN TO THE CALLED PROGRAM ; END OF THE FACTORIAL FUNCTION

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

ACS College of Engineering

Page 19

Dept of ECE

Microprocessor Lab
INC POSNUM JMP NEXT NEG1: INC NEGNUM NEXT: ADD SI, 02 DEC CL JNZ BACK MOV AH, 4CH INT 21H

2012

End

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 01 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 INC EVENNUM JMP NEXT ODD1: INC ODDNUM NEXT: ADD SI, 02 DEC CL

ACS College of Engineering

Page 20

Dept of ECE

Microprocessor Lab
JNZ BACK MOV AH, 4CH INT 21H END

2012

Logical 1s and 0s in a given Data


3.3 DEVELOP AND EXECUTE AN ALP TO COUNT LOGICAL 1S AND 0S .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

ACS College of Engineering

Page 21

Dept of ECE

Microprocessor Lab

2012

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 MSBS 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 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

ACS College of Engineering

Page 22

Dept of ECE

Microprocessor Lab
INT 21H END

2012

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

ACS College of Engineering

Page 23

Dept of ECE

Microprocessor Lab
LAST: MOV AH, 4CH INT 21H END

2012

3.6 DEVELOP 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 8C88H 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 CLC BACK: ROR BL,1 DEC CL JNZ BACK CMP BH,BL JZ PALIN DISP MSG2 JMP LAST BX,AX

ACS College of Engineering

Page 24

Dept of ECE

Microprocessor Lab

2012

PALIN: DISP MSG1 LAST: MOV AH,4CH INT 21H END

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

ACS College of Engineering

Page 25

Dept of ECE

Microprocessor Lab
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 AGAIN: CMP AL,[SI+1] JNC NEXT MOV AL,[SI+1] NEXT: INC SI DEC CL JNZ AGAIN LEA DI,LARGEST ; JC NEXT FOR SMALLEST NUMBER

2012

MOV [DI],AL MOV AH,4CH

INT 21H END

ACS College of Engineering

Page 26

Dept of ECE

Microprocessor Lab

2012

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

ACS College of Engineering

Page 27

Dept of ECE

Microprocessor Lab
LOOP SUBAGN MOV AH, 4CH INT 21H END

2012

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

ACS College of Engineering

Page 28

Dept of ECE

Microprocessor Lab
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 LOOP BACK MOV AH,09H LEA DX,RES+1 INT 21H MOV AH,4CH INT 21H END

2012

ACS College of Engineering

Page 29

Dept of ECE

Microprocessor Lab
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,09H INT 21H MOV AH,4CH INT 21H END

2012

ACS College of Engineering

Page 30

Dept of ECE

Microprocessor Lab
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 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

2012

MOV AH,01H INT 21H MOV CH,00H MOV CL,CHAR+1 LEA BX,CHAR+2 UP: CMP AL,[BX]

ACS College of Engineering

Page 31

Dept of ECE

Microprocessor Lab
JE SKIP INC BX LOOP UP DISP MSG4 JMP LAST SKIP: DISP MSG3 LAST: MOV AH,4CH INT 21H END

2012

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

ACS College of Engineering

Page 32

Dept of ECE

Microprocessor Lab
SUB CX, COUNT2 JB STOP MOV CX,COUNT2 DEC CX REPNZ CMPSB JNZ NOTFND MOV RESULT,01H ENDALL: MOV AH,4CH INT 21H STOP: MOV RESULT,00H JMP ENDALL NOTFND: MOV CL,DL LEA SI,SUBSTRG

2012

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

ACS College of Engineering

Page 33

Dept of ECE

Microprocessor Lab

2012

6.2 DEVELOP 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 POP DX LOOP BACK

ACS College of Engineering

Page 34

Dept of ECE

Microprocessor Lab
MOV AH,4CH INT 21H END

2012

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

ACS College of Engineering

Page 35

Dept of ECE

Microprocessor Lab

2012

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 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

ACS College of Engineering

Page 36

Dept of ECE

Microprocessor Lab
MOV BX, FL_HDL MOV CX,LEN MOV AH,40H INT 21H

2012

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

ACS College of Engineering

Page 37

Dept of ECE

Microprocessor Lab
MOV AH, 4CH INT 21H END 6.7 DEVELOP AND EXECUTE AN ALP TO READ SYSTEM

2012

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 INT 21H

MOV YR1,CX MOV MT1,DH MOV DT1,DL MOV WK1,AL

MOV AL,DT1 MOV AH,00 MOV DL,0AH DIV DL OR AX,3030H MOV BL,AL

ACS College of Engineering

Page 38

Dept of ECE

Microprocessor Lab
MOV BH,AH MOV DL,BL MOV AH,02 INT 21H

2012

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

ACS College of Engineering

Page 39

Dept of ECE

Microprocessor Lab
MOV AH,4CH INT 21H END 6.8 DEVELOP AND EXECUTE AN ALP TO READ SYSTEM TIME .MODEL SMALL .STACK .CODE MOV AH,2CH INT 21H MOV AL,CH CALL DISP

2012

MOV DL,':' MOV AH,2 INT 21H

MOV AL,CL CALL DISP MOV AH,4CH 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

ACS College of Engineering

Page 40

Dept of ECE

Microprocessor Lab
RET DISP ENDP END

2012

ACS College of Engineering

Page 41

Dept of ECE

Microprocessor Lab

2012

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 1S IN THE INPUT DATA. .MODEL SMALL .STACK64 .DATA MSG1 DB 13,10,THE NO. OF 1S 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, 08H 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 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

ACS College of Engineering

Page 42

Dept of ECE

Microprocessor Lab
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

2012

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, 86H, 89H .CODE BEGIN:MOV AX, @DATA MOV DS, AX MOV AL, 80H MOV DX, 0123H OUT DX, AL MOV CX, 05H 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, 04H LOOP1:MOV BL, 08H MOV AL, [SI] LOOP2:ROL AL, 1 MOV DX, 0121H OUT DX, AL

ACS College of Engineering

Page 43

Dept of ECE

Microprocessor Lab
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, 08FFFH 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, 200 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, 0FFFH L2: MOV BX, OFFFH L3: DEC BX JNZ L3

2012

ACS College of Engineering

Page 44

Dept of ECE

Microprocessor Lab
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, 200 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, 0FFFH L2: MOV BX, OFFFH L3: DEC BX JNZ L3 LOOP L2 POP CX RET DELAY ENDP END

2012

8.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

ACS College of Engineering

Page 45

Dept of ECE

Microprocessor Lab
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:$ 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

2012

ACS College of Engineering

Page 46

Dept of ECE

Microprocessor Lab
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 MOV AH, 4CH INT 21H END

2012

ACS College of Engineering

Page 47

Dept of ECE

Microprocessor Lab
VIVA QUESTIONS 1. Differentiate between microprocessor 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 8086 ALU works? 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 popping from 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 how XLAT instruction works? 17. When is the address object transfer instruction used? 18. Name all the memory reference addressing 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 Opcode? 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 cannot be used? 26. Which are the addressing modes that are not available in MOV instruction? 27. What is the maximum size of the stack one can have at any instant of time in 8086? 28. Can a programmer have more than one stack memory? Support your answer. 29. Which register cannot be popped from the top of 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? 35. What is the difference between .EXE and .COM files? 36. How can one convert .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 different types of assembler construct models available and what are its functions? 39. What is the necessity to have special 1 bit 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 intersegment and intrasegment CALL instruction? 52. Give a sequence of operation for intersegment indirect CALL instruction. 53. When should the optional pop value be given in the RET instruction?

2012

ACS College of Engineering

Page 48

Dept of ECE

Microprocessor Lab

2012

54. What are the conditional transfer instructions for signed numbers? 55. What is the function of LOOP instruction? LOOP instruction can be replaced by 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 direction flag set and reset? 62. What are the different 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 important. 69. What is control coupling 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 does it differ from a procedure? 73. What is the difference between a macro parameter and macro argument? 74. What is the use of directive 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 must the NEAR or FAR attribute appear in a PROC statement? 79. What is the difference between DOS and BIOS interrupt? 80. What is time multiplexing mode of operation? 81. How does 8086 perform DMA control operating using only one line RQ/GT pin? 82. What is the advantage of using 8086 in maximum 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 absence? 89. What is an interrupt? Are these required? 90. How microprocessor 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 buffers 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 maximum numbers of interrupting devices that can be connected to 8259 in cascaded mode? How many 8259s 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 advisable to program 8259 when interfaced to 8086? 108. How do the ICWs differ for master and slave in8259?

ACS College of Engineering

Page 49

Dept of ECE

Microprocessor Lab
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 operation 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 common cathode and common anode 7-segment display unit? 122. Why do we require two address lines A0 and A1 on 8255? 123. What are the combinations that are available in Mode 0 in 8255? 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 frequency 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 command 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?

2012

ACS College of Engineering

Page 50

Dept of ECE

Você também pode gostar