mpmc lab manual.docx

48
MPMC Lab Manual Department of Electronics and Communication Engineering Kuppam Engineering College Kuppam

Upload: sivaprasad-reddy

Post on 31-Jan-2016

49 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: MPMC LAB MANUAL.docx

MPMC Lab Manual

Department of Electronics and Communication

Engineering

Kuppam Engineering College

Kuppam

Page 2: MPMC LAB MANUAL.docx

List Of Experiments

Module 1

1) A) Addition Of Two 8-Bit Numbers

B) Subtraction Of Two 8-Bit Numbers

2) A) Addition Of Two 16-Bit Numbers

B) Subtraction Of Two 16-Bit Numbers

3) A) Multiplication Of Two 8 -Bit Numbers

B) Multiplication Of Two 16 -Bit Numbers

4) A) Division Of 16-Bit Number By An 16-Bit Number

B) Division Of 32-Bit Number By An 16-Bit Number

5) A) Signed Multiplication B) Signed Division

6) A) Ascii Addition B) Ascii Subtraction

7) A) Ascii Multiplication B) Ascii Division

Module 2

1. Packed Bcd To Unpacked Bcd

2. Bcd To Ascii Conversion

Module 3

1. Block Move

2. String Reversing: For Any Known Character Length

3. Length Of The String

4. String Comparision

5. String Insertion

6.String Deletion

7. Display The String

Page 3: MPMC LAB MANUAL.docx

Module 4

1. A) Stepper motor interfacing in clockwise direction using 8086

B) Stepper motor interfacing in anticlockwise direction using 8086

2. A) Microcontroller Addition

B) Microcontroller Subtraction

C) Microcontroller Multiplication

D) Microcontroller Division

Page 4: MPMC LAB MANUAL.docx

1. (A) ADDITION OF TWO 8-BIT NUMBERS

AIM: To write an assembly language program to perform addition of two 8-bit signed and unsigned numbers

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

Program:

DATA SEGMENT X DB ? Y DB ?DATA ENDS

CODE SEGMENTASSUME CS: CODE, DS: DATA

START:MOV AX, DATAMOV DS, AXMOV AX,0000HMOV AL, XMOV BL, YADD AL, BLINT 03

CODE ENDS END STARTEND

Flags Affected: AF, CF, OF, PF, SF, ZF

Calculations:

SYMBOL ADDRESS VALUES1 VALUES2X 0000 12 FEY 0001 56 03

X = 12H 0001 0010Y = 56H 0101 0110 ---------------------------X+Y 0110 1000 = 68H CF=0

X = FEH 1111 1110 Y = 03H 0000 0011 --------------------------X+Y 0000 0001 = 01H CF=1, AF=1

Page 5: MPMC LAB MANUAL.docx

1. (B) SUBTRACTION OF TWO 8-BIT NUMBERS

AIM: To write an assembly language program to perform subtraction of two 8-bit signed and unsigned numbers

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

Program:

DATA SEGMENT X DB (?) Y DB (?)DATA ENDS

CODE SEGMENTASSUME CS: CODE, DS: DATA

START:MOV AX, DATAMOV DS, AXMOV AX,0000HMOV AL, XMOV BL, YSUB AL, BLINT 03

CODE ENDS END STARTEND

Flags Affected: AF, CF, OF, PF, SF, ZF

Calculations:

SYMBOL ADDRESS VALUES1 VALUES2X 0000 7D 02Y 0001 56 03

X = 7DH 0111 1101Y = 56H 0101 0110 --------------------------X-Y 0010 0111 = 27H CF=0

X = 02H 0000 0010 Y = 03H 0000 0011 -------------------------X-Y 1111 1111 = FFH CF=1, AF=1, PF=1, SF=1

Page 6: MPMC LAB MANUAL.docx

2. (A) ADDITION OF TWO 16-BIT NUMBERS

AIM: To write an assembly language program to perform addition of two 16-bit signed and unsigned numbers

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

Program:

DATA SEGMENT X DW ? Y DW ?RES DW ?DATA ENDS

CODE SEGMENTASSUME CS: CODE, DS: DATA

START:MOV AX, DATAMOV DS, AXMOV AX, XMOV BX, YADD AX, BXMOV RES,AXINT 03

CODE ENDS END STARTEND

FLAGS which may affect: AF, CF, OF, PF, SF, ZF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2X 0000 1234 FDFEY 0002 5678 1234

RES 0004

X = 1234H 0001 0010 0011 0100 X =Y = 5678H 0101 0110 0111 1000 Y = --------------------------------------------- ---------------------------------------

X+Y= X+Y

CF= AF= CF=, AF=

Page 7: MPMC LAB MANUAL.docx

2(B) SUBTRACTION OF TWO 16-BIT NUMBERS

AIM: To write an assembly language program to perform subtraction of two 16-bit signed and unsigned numbers

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

Program:

DATA SEGMENT X DW ? Y DW ?RES DW ?DATA ENDS

CODE SEGMENTASSUME CS: CODE, DS: DATA

START:MOV AX, DATAMOV DS, AXMOV AX, XMOV BX, YSUB AX, BXMOV RES,AXINT 03

CODE ENDS END STARTEND

FLAGS which may affect: AF, CF, OF, PF, SF, ZF

Calculations: SYMBOL ADDRESS VALUES1 VALUES2

X 0000 3322 1ABCY 0002 2211 8E12

RES 0004

X = X = Y = Y =

---------------------------- -----------------X+Y= X+Y CF=, AF= CF=, AF=

Page 8: MPMC LAB MANUAL.docx

3. (A) MULTIPLICATION OF TWO 8 -BIT NUMBERS

AIM: To write an assembly language program to perform multiplication of two 8-bit unsigned numbers

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

Program:

DATA SEGMENT X DB ? Y DB ?RES DW ?DATA ENDS

CODE SEGMENTASSUME CS: CODE, DS: DATA

START:MOV AX, DATAMOV DS, AXMOV AL, XMOV BL, YMUL BLMOV RES,AxINT 03

CODE ENDS END STARTEND

FLAGS AFFECTED: OF, CF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2X 0000 12 FFY 0001 34 AA

RES 0002

Page 9: MPMC LAB MANUAL.docx

3. (B) MULTIPLICATION OF TWO 16 -BIT NUMBERSAIM: To write an assembly language program to perform multiplication of two 16-bit unsigned numbers

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

Program:

DATA SEGMENT

X DW ? Y DW ?RESLW DW ?RESHW DW ?

DATA ENDS

CODE SEGMENTASSUME CS: CODE, DS: DATA

START:MOV AX, DATAMOV DS, AXMOV AX, XMOV BX, YMUL BXMOV RESLW,AXMOV RESHW,DXINT 03

CODE ENDS END STARTEND

FLAGS AFFECTED: OF, CF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2X 0000Y 0002

RESLW 0004RESHW 0006

Page 10: MPMC LAB MANUAL.docx

4. (A) DIVISION OF 16-BIT Number by an 8 -BIT NUMBER

AIM: To write an assembly language program to perform division of 16-bit unsigned number by 8-bit unsigned number

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

PROGRAM:DATA SEGMENT X DW ? Y DB ?

Q DB ?R DB ?

DATA ENDS

CODE SEGMENTASSUME CS: CODE, DS: DATA

START:MOV AX, DATAMOV DS, AXMOV AX, XMOV BL, YDIV BLMOV Q,ALMOV R,AHINT 03

CODE ENDS END STARTEND

FLAGS AFFECTED: IF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2X 0000 014D 1200Y 0002 34 55Q 0003R 0004

Page 11: MPMC LAB MANUAL.docx

4(b) DIVISION OF 32-BIT Number by a 16-BIT NUMBER

AIM: To write an assembly language program to perform division of 32-bit unsigned number by 16-bit unsigned number.

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

PROGRAM:DATA SEGMENT DLW DW ? DHW DW ? Divisr DW ?Q DW ?R DW ?DATA ENDS

CODE SEGMENTASSUME CS: CODE, DS: DATA

START:MOV AX, DATAMOV DS, AX

MOV AX, DLW MOV DX, DHW MOV BX, Divisr

DIV BXMOV Q,AXMOV R,DXINT 03

CODE ENDS END STARTEND

FLAGS AFFECTED: IF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2DLW 0000 0032 0BCDDHW 0002 02AB 00ABDivisr 0004 2012 ABCD

Q 0006R 0008

Page 12: MPMC LAB MANUAL.docx

5. (A) Signed Multiplication

AIM: To write an assembly language program to perform multiplication of two 16-bit signed numbers

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

PROGRAM:DATA SEGMENT

X DW ?Y DW ?RESLW DW ?RESHW DW ?

DATA ENDS

CODE SEGMENTASSUME CS: CODE, DS: DATA

START:MOV AX, DATAMOV DS, AXMOV AX, XMOV BX, YIMUL BXMOV RESLW, AXMOV RESHW, DXINT 03

CODE ENDS END STARTENDFLAGS AFFECTED: OF,CF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2X 0000Y 0002

RESLW 0004RESHW 0006

Case 1:Two Positive NumbersX = 7593, Y = 6845Case 2: one positive number & one negative number X = 8A6D, Y = 6845Case 3: two negative numbersX = 8A6D, Y = 97BB

Page 13: MPMC LAB MANUAL.docx

5. (B) Signed Division

AIM: To write an assembly language program to perform Division of 16-bit signed number by 8- Bit Signed Number

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

PROGRAM:DATA SEGMENT X DW ? Y DB ?Q DB ?R DB ?DATA ENDS

CODE SEGMENTASSUME CS: CODE, DS: DATA

START:MOV AX, DATAMOV DS, AXMOV AX, XMOV BL, YIDIV BLMOV Q, ALMOV R, AHINT 03

CODE ENDS END STARTENDFLAGS AFFECTED: IF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2X 0000Y 0002Q 0003R 0004

Case 1:Two Positive NumbersX = 26F8, Y = 56Case 2: one negative number & one positive numberX = D908, Y = 56Case 3: one positive number & one negative number X = 26F8, Y = AA

Page 14: MPMC LAB MANUAL.docx

6. (A) ASCII ADDITION

AIM: To write an ALP to perform the addition of two ASCII bytes.

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

PROGRAM: DATA SEGMENT

CHAR1 DB ?CHAR2 DB ?

RES DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:

MOV AX,DATAMOV DS,AXMOV AH,00HMOV AL,CHAR1ADD AL,CHAR2AAAMOV RES,AXINT 03H

CODE ENDSEND STARTENDFLAGS AFFECTED: AF,CF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2CHAR1 0000 ‘8’CHAR2 0001 ‘6’

RES 0002 040003 01

‘8’ + ‘6’ =

RES = 0104 (AX) unpacked BCD of 14

Page 15: MPMC LAB MANUAL.docx

6. (B) ASCII SUBTRACTION

AIM: To write an ALP to perform the subtraction of two ASCII bytes.

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

PROGRAM: DATA SEGMENT

CHAR1 DB ?CHAR2 DB ?RES DW ?

DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:

MOV AX,DATAMOV DS,AXMOV AH,00HMOV AL,CHAR1SUB AL,CHAR2AASMOV RES,AXINT 03H

CODE ENDSEND STARTEND

FLAGS AFFECTED: AF,CF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2CHAR1 0000 ‘9’ ‘5’CHAR2 0001 ‘5’ ‘9’

RES 0002 FC0003 00

‘5’ – ‘9’ =RES=00FC(AX)->2’s Complement of(-4)

Page 16: MPMC LAB MANUAL.docx

7. (A) ASCII MULTIPLICATION

AIM: To write an ALP to perform the multiplication of two ASCII bytes.

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

PROGRAM:

DATA SEGMENTNUM1 DB ?NUM2 DB ?RES DW ?

DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:

MOV AX,DATAMOV DS,AXMOV AH,00MOV AL,NUM1MUL NUM2AAMMOV RES,AXINT 03H

CODE ENDSEND STARTEND

FLAGS AFFECTED: PF,SF,ZF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2NUM1 0000 09NUM2 0001 05RES 0002 05

0003 04

09 * 05 = RES = 0405 (AX) unpacked BCD of 45

Page 17: MPMC LAB MANUAL.docx

7. (B) ASCII DIVISION

AIM: To write an ALP to perform the division of two ASCII numbers.

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

PROGRAM:

DATA SEGMENTDIVIDEND DW 0607HDIVISOR DB 09HRESQ DB ?RESR DB ?

DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:

MOV AX,DATAMOV DS,AXMOV AX,DIVIDENDAADMOV BH,DIVISORDIV BHMOV RESQ,ALMOV RESR,AHINT 03H

CODE ENDSEND STARTEND

FLAGS AFFECTED: PF,SF,ZF

CALCULATIONS:

SYMBOL ADDRESS

VALUES1 VALUES2

DIVIDEND 0000 0607DIVISOR 0002 09

RESQ 0003 07RESR 0004 04

INPUT:DIVIDEND = 0607H unpacked BCD of 67 DIVISOR = 09H

OUTPUT: RESQ = 07 (AL) RESR = 04 (AH)

Page 18: MPMC LAB MANUAL.docx

MODULE 21. PACKED BCD TO UNPACKED BCD

AIM: To write an assembly language program to perform PACKED BCD into UNPACKED BCD conversion.

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

PROGRAM:

ASSUME CS:CODE,DS:DATADATA SEGMENT

BCD DB 49HCOUNT DB 04HUBCD1 DB ?UBCD2 DB ?

DATA ENDS

CODE SEGMENTSTART:MOV AX,DATA

MOV DS,AXMOV AL,BCDMOV BL,ALAND AL,0FHMOV UBCD1,ALMOV AL,BLAND AL,0F0HMOV CL,COUNTROR AL,CLMOV UBCD2,ALINT 03H

CODE ENDSEND STARTEND

FLAGS AFFECTED: PF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2BCD 0000 49

UBCD1 0002UBCD2 0003

INPUT: BCD = 49

OUTPUT: UBCD1 = 09

Page 19: MPMC LAB MANUAL.docx

UBCD2 = 04

Page 20: MPMC LAB MANUAL.docx

2. BCD TO ASCII CONVERSION

AIM: To write an assembly language program to perform BCD to ASCII conversion.

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

PROGRAM:

ASSUME CS:CODE,DS:DATADATA SEGMENT

BCD DB 49HCOUNT DB 04HASCII1 DB ?ASCII2 DB ?

DATA ENDSCODE SEGMENTSTART:MOV AX,DATA

MOV DS,AXMOV AL,BCDMOV BL,ALAND AL,0FHOR AL,30HMOV ASCII1,ALMOV AL,BLAND AL,0F0HMOV CL,COUNTROR AL,CLOR AL,30HMOV ASCII2,ALINT 03H

CODE ENDSEND STARTEND

FLAGS AFFECTED: PF

CALCULATIONS:

SYMBOL ADDRESS VALUES1 VALUES2BCD 0000 49

ASCII1 0002ASCII2 0003

INPUT: BCD = 49

OUTPUT: ASCII1= 39 ASCII2= 34

Page 21: MPMC LAB MANUAL.docx

MODULE 31. BLOCK MOVE

AIM: To write an assembly language program to move the block of data from a specified source location to the specified destination location.

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

REGISTERS USED: AX, DS, ES, SI, DI

PROGRAM:

ASSUME CS:CODE,DS:DATADATA SEGMENT

ORG 2000HSTR DB 04H,0F9H,0BCH,98H,40HCOUNT EQU 05H

DATA ENDSEXTRA SEGMENT

ORG 3000HSTR1 DB 05 DUP(?)

EXTRA ENDSCODE SEGMENTSTART:MOV AX,DATA

MOV DS,AXMOV AX,DATAMOV ES,AXMOV SI,OFFSET STRMOV DI,OFFSET STR1MOV CL,COUNTCLDREP MOVSBINT 03H

CODE ENDSEND STARTEND

FLAGS AFFECTED: No flags are affected

RESULT:INPUT: STR (DS:2000H) = 04H,F9H,BCH,98H,40H

OUTPUT: STR1(ES:3000H) = 04H,F9H,BCH,98H,40H

Page 22: MPMC LAB MANUAL.docx

2. STRING REVERSING: for any Known Character Length

AIM: To write an assembly language program to reverse the given string.

RESOURCES REQUIERED: Personal Computer MASM/TASM Software Installed

REGISTERS USED: AX, DS, SI, BX

PROGRAM:

ASSUME CS:CODE,DS:DATADATA SEGMENT

STR DB 01H,02H,03H,04HCOUNT EQU 0004H

DATA ENDSCODE SEGMENTSTART:MOV AX,DATA

MOV DS,AXMOV BX,COUNTMOV SI,OFFSET STRBACK: MOV AL,[SI]

XCHG AL,[SI+BX-01]XCHG AL,[SI]INC SIDEC BXJZ STOPDEC BX

JNZ BACKSTOP:INT 03HCODE ENDSEND STARTEND

FLAGS AFFECTED: ZF,PF

RESULT:INPUT: STR (DS:0000H) = 01H,02H,03H,04H

OUTPUT: STR (DS:0000H) = 04H,03H,02H,01H

Page 23: MPMC LAB MANUAL.docx

3. LENGTH OF THE STRING

AIM: To write an assembly language program to find the length of the given string.

RESOURCES REQUIERED:

Personal Computer

MASM/TASM Software Installed

REGISTERS USED: AX,DS,SI,CL

PROGRAM:

ASSUME CS:CODE,DS:DATADATA SEGMENTSTR DB 01H,03H,08H,09H,05H,07H,02HLENGTH DB ?DATA ENDSCODE SEGMENT

START:MOV AX,DATAMOV DS,AXMOV AL,00HMOV CL,00HMOV SI,OFFSET STR

AGAIN:CMP AL,[SI]JNZ STOP;(or) JNC STOPINC CLINC SIJMP AGAIN

STOP:MOV LENGTH,CLINT 03H

CODE ENDSEND STARTEND

FLAGS AFFECTED: ZF,PF,SF,AF,CF

RESULT:INPUT: STR (DS:0000H) =

01H, 03H,08H,09H,05H,07H,02H

OUTPUT: LENGTH = 07H (CL)

Page 24: MPMC LAB MANUAL.docx

4. STRING COMPARISION

AIM: To write an assembly language program to compare the given strings.

RESOURCES REQUIERED:

Personal Computer MASM/TASM Software Installed

REGISTERS USED: AX, DS, SI, DI, CL

PROGRAM:

ASSUME CS:CODE,DS:DATA,ES:EXTRADATA SEGMENT

SRC DB 04H,05H,07H,08HCOUNT EQU 04H

DATA ENDSEXTRA SEGMENT

DST DB 04H,06H,07H,09HEXTRA ENDSCODE SEGMENT

START:MOV AX,DATAMOV DS,AXMOV AX,EXTRAMOV ES,AXMOV SI,OFFSET SRCMOV DI,OFFSET DSTMOV CX,0000HMOV CL,COUNTCLDREP CMPSBINT 03H

CODE ENDSEND STARTEND

FLAGS AFFECTED: ZF,CF

RESULT:

INPUT: SRC (DS:0000H) = 04H,05H,07H,08H

DST (ES:0000H) = 04H,06H,07H,09H

OUTPUT: I): IF SRC = DST THEN ZF = 1 & II): IF SRC ≠ DST THEN ZF = 0

Page 25: MPMC LAB MANUAL.docx

5. STRING INSERTION

AIM: To write an Assembly Language Program for inserting one string into the other.

RESOURCES REQUIERED:

Personal Computer MASM/TASM Software Installed

PROGRAM:

DATA SEGMENT src DB "New String" Nul DB 00H; pos DW 0002H;DATA ENDSEXTRA SEGMENT dst DB "Old String"EXTRA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:EXTRA MOV AX,DATA MOV AX,DATA MOV DS,AX MOV AX,EXTRA MOV ES,AX MOV SI,OFFSET src CALL getsrcLENGTH MOV BX,CX MOV DI,OFFSET dst CALL getdstLENGTH MOV DX,CX MOV DI,DX CMP pos,DX; JG Skip; MOV CX,pos; DEC CX;

AGAIN: MOV AL,ES:[DI] MOV ES:[DI+BX],AL CMP DI,CX JZ Skip DEC DI

JMP AGAINSkip: CLD;

MOV SI,OFFSET srcInsert:

MOV AL,[SI]MOV ES:[DI],AL

Page 26: MPMC LAB MANUAL.docx

INC SI INC DI DEC BX

JNZ Insert INT 03getsrcLENGTH PROC MOV AL,00H MOV CX,0000H UP1: CMP [SI],AL

JZ STOP1 INC SI INC CXJMP UP1

STOP1: RETgetsrcLENGTH ENDPgetdstLENGTH PROC MOV AL,00H MOV CX,0000H UP2: CMP ES:[DI],AL

JZ STOP2 INC DI INC CX

JMP UP2 STOP2: RETgetdstLENGTH ENDPCODE ENDSEND END

FLAGS AFFECTED: No flags are affected

OUTPUT: new string

Page 27: MPMC LAB MANUAL.docx

6.STRING DELETION

AIM: To write an Assembly Language Program for deleting a string in specified index range

RESOURCES REQUIERED:

Personal Computer MASM/TASM Software Installed

PROGRAM:

DATA SEGMENT src DB "COMPUTER"; Nul DB 00H; startidx DW 0002 endidx DW 0004DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA MOV AX,DATA MOV DS,AX MOV SI,OFFSET src CALL getsrcLENGTH MOV BP,startidx; MOV BX,endidx; CMP BP,BX; JG Skip; DEC BP; DEC BX; MOV SI,BP;AGAIN: MOV AL,[SI+BX]

MOV [SI+BP],AL INC SI CMP SI,CX;JNZ AGAIN

Skip: INT 03;getsrcLENGTH PROC MOV AL,00H MOV CX,0000H UP1: CMP [SI],AL

JZ STOP1 INC SI INC CXJMP UP1

STOP1: RETgetsrcLENGTH ENDP CODE ENDSEND END

Page 28: MPMC LAB MANUAL.docx

FLAGS AFFECTED: No flags are affected

RESULT:

INPUT: computer

OUTPUT: couter

Page 29: MPMC LAB MANUAL.docx

7. DISPLAY THE STRING

AIM: To write an assembly language program to display the given string.

RESOURCES REQUIERED: Personal Computer

MASM/TASM Software Installed

REGISTERS USED: AX, DS, DX

PROGRAM:

ASSUME CS:CODE,DS:DATADATA SEGMENTMSG DB 0DH,0AH,"WELCOME TO MICROPROCESSORS LAB",0DH,0AH,"$" DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AH,09HMOV DX,OFFSET MSGINT 21HMOV AH,4CHINT 21HCODE ENDSEND START END

FLAGS AFFECTED: No flags are affected

RESULT:

WELCOME TO MICROPROCESSORS LAB

Page 30: MPMC LAB MANUAL.docx

Module 4:

1. A) Stepper motor interfacing in clockwise direction using 8086

AIM: To write an Assembly Language Program to rotate stepper motor in clockwise direction.

RESOURCES REQUIRED:

8086/8088 Kit

PROGRAM:

A 2000MOV AX, 0000MOV ES, AXMOV DX, 0FFE6MOV AL, 80OUT DX, ALMOV AL, 11MOV DX, 0FFE0OUT DX, ALCALL 2020RCR AL, 1JMP 2010ADD DX, 0002MOV AL, [SI]OUT DX, ALINC SIMOV CX, 0800LOOP 2023RET

FLAGS AFFECTED: No flags are affected

Page 31: MPMC LAB MANUAL.docx

1. B) Stepper motor interfacing in anticlockwise direction using 8086

AIM: To write an Assembly Language Program to rotate stepper motor in anticlockwise direction.

RESOURCES REQUIRED:

8086/8088 Kit

PROGRAM:

A 2000MOV AX, 0000MOV ES, AXMOV DX, 0FFE6MOV AL, 80OUT DX, ALMOV AL, 11MOV DX, 0FFE0OUT DX, ALCALL 2020RCL AL, 1JMP 2010ADD DX, 0002MOV AL, [SI]OUT DX, ALINC SIMOV CX, 0800LOOP 2023RET

FLAGS AFFECTED: No flags are affected

Page 32: MPMC LAB MANUAL.docx

2. A) MICROCONTROLLER ADDITION

AIM: To write an Assembly Language Program to perform microcontroller addition.

RESOUCES REQUIRED:

8051 Kit

PROGRAM:

A 8000

MOV A, #05

MOV R1, #03

ADD A, R1

LJMP 03

G 8000

RESULT:

INPUT:

A=05

R1=03

OUTPUT:

A=08

Page 33: MPMC LAB MANUAL.docx

2. B) MICROCONTROLLER SUBTRACTION

AIM: To write an Assembly Language Program to perform microcontroller subtraction.

RESOUCES REQUIRED:

8051 Kit

PROGRAM:

A 8000

MOV A, #05

MOV R1, #03

SUBB A, R1

LJMP 03

G 8000

RESULT:

INPUT:

A=05

R1=03

OUTPUT:

A=02

Page 34: MPMC LAB MANUAL.docx

2. C) MICROCONTROLLER MULTIPLICATION

AIM: To write an Assembly Language Program to perform microcontroller multiplication.

RESOUCES REQUIRED:

8051 Kit

PROGRAM:

A 8000

MOV A, #05

MOV F0, #03

MUL AB

LJMP 03

G 8000

RESULT:

INPUT:

A=05

B=03

OUTPUT:

A=0F

NOTE: Here F0 is noting but register B.

Page 35: MPMC LAB MANUAL.docx

2. D) MICROCONTROLLER DIVISION

AIM: To write an Assembly Language Program to perform microcontroller division.

RESOUCES REQUIRED:

8051 Kit

PROGRAM:

A 8000

MOV A, #04

MOV F0, #02

DIV AB

LJMP 03

G 8000

RESULT:

INPUT:

A=04

R1=02

OUTPUT:

A=02