mpmc lab manual.docx
Embed Size (px)
TRANSCRIPT

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

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

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

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

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

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=

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=

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

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

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

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

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

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

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

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)

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

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)

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

UBCD2 = 04

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

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

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

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)

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

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

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

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

FLAGS AFFECTED: No flags are affected
RESULT:
INPUT: computer
OUTPUT: couter

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

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

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

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

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

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.

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