microprocessors & interfacing lab manual

37
Microprocessors & Interfacing Lab 1 EXPERIMENT NO.1 ADDITION OF TWO 16-BIT NUMBERS-SIGNED & UNSIGNED AIM: To write an assembly language program to perform addition of two 16-bit signed and unsigned numbers. REGISTERS USED: AX,DS FLAGS AFFECTED: AF,CF,OF,PF,SF,ZF PROGRAM: ASSUME CS:CODE,DS:DATA DATA SEGMENT OPR1 DW 4269H OPR2 DW 1000H RES DW ? DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX MOV AX,OPR1 ADD AX,OPR2 MOV RES,AX MOV AH,4CH INT 21H CODE ENDS END START END RESULT: UNSIGNED NUMBERS INPUT: OPR1 = 4269H OPR2 = 1000H OUTPUT : RES = 5269H SIGNED NUMBERS ____________________________________________________________ ____________ Dept.of E.C.E, S.K.D Engg College,Gooty

Upload: jeravi84

Post on 27-Apr-2015

2.839 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 1

EXPERIMENT NO.1

ADDITION OF TWO 16-BIT NUMBERS-SIGNED & UNSIGNED

AIM: To write an assembly language program to perform addition of two 16-bit signed and unsigned numbers.REGISTERS USED: AX,DSFLAGS AFFECTED: AF,CF,OF,PF,SF,ZFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 4269HOPR2 DW 1000HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1ADD AX,OPR2MOV RES,AXMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:UNSIGNED NUMBERSINPUT: OPR1 = 4269H

OPR2 = 1000HOUTPUT: RES = 5269H

SIGNED NUMBERSINPUT: OPR1 = 9763H

OPR2 = A973HOUTPUT: RES = 40D6H , CF = 1

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 2: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 2

SUBTRACTION OF TWO 16-BIT NUMBERS-SIGNED & UNSIGNED

AIM: To write an assembly language program to perform subtraction of two 16-bit signed and unsigned numbers.REGISTERS USED: AX,DSFLAGS AFFECTED: AF,CF,OF,PF,SF,ZFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 4269HOPR2 DW 1000HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1SUB AX,OPR2MOV RES,AXMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:UNSIGNED NUMBERSINPUT: OPR1 = 4269H

OPR2 = 1000HOUTPUT: RES = 3269H

SIGNED NUMBERSINPUT: OPR1 = 9763H

OPR2 = 8973HOUTPUT: RES = 0DF0H

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 3: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 3

MULTIPLICATION OF TWO 16-BIT UNSIGNED NUMBERS

AIM: To write an assembly language program to perform multiplication of two 16-bit unsigned numbers.REGISTERS USED: AX,DSFLAGS AFFECTED: OF,CFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 2000HOPR2 DW 4000HRESLW DW ?RESHW DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1MUL OPR2MOV RESLW,AXMOV RESHW,DXMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:INPUT: OPR1 = 2000H

OPR2 = 4000HOUTPUT: RESLW = 0000H (AX)

RESHW = 0800H (DX)

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 4: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 4

MULTIPLICATION OF TWO 16-BIT SIGNED NUMBERS

AIM: To write an assembly language program to perform multiplication of two 16-bit signed numbers.REGISTERS USED: AX,DSFLAGS AFFECTED: OF,CFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 7593HOPR2 DW 6845HRESLW DW ?RESHW DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1IMUL OPR2MOV RESLW,AXMOV RESHW,DXMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:CASE I: Two positive numbersINPUT: OPR1 = 7593H

OPR2 = 6845HOUTPUT: RESLW = 689FH (AX)

RESHW = 2FE3H (DX)CASE II: one positive number & one negative numberINPUT: OPR1 = 8A6DH 2’s Complement of (-7593H)

OPR2 = 6845HOUTPUT: RESLW = 9761H (AX) 2’s Complement

RESHW = D01CH (DX) of (- 2FE3689FH)CASE III: two negative numbersINPUT: OPR1 = 8A6DH 2’s Complement of (-7593H)

OPR2 = 97BBH 2’s Complement of (-6845H)OUTPUT: RESLW = 689FH (AX)

RESHW = 2FE3H (DX)

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 5: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 5

DIVISION OF UNSIGNED NUMBERS

AIM: To write an assembly language program to perform division of 16-bit unsigned number by 8-bit unsigned number.REGISTERS USED: AX,DSFLAGS AFFECTED: IFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 2C58HOPR2 DB 56HRESQ DB ?RESR DB ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1DIV OPR2MOV RESQ,ALMOV RESR,AHMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:INPUT: OPR1 = 2C58H (DIVIDEND)

OPR2 = 56H (DIVISOR)OUTPUT: RESQ = 84H (AL)

RESR = 00H (AH)

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 6: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 6

DIVISION OF SIGNED NUMBERS

AIM: To write an assembly language program to perform division of 16-bit signed number by 8-bit signed number.REGISTERS USED: AX,DSFLAGS AFFECTED: IFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 26F8HOPR2 DB 0AAHRESQ DW ?RESR DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1IDIV OPR2MOV RESQ,ALMOV RESR,AHMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:CASE I: two positive numbersINPUT: OPR1 = 26F8H (DIVIDEND)

OPR2 = 56H (DIVISOR)OUTPUT: RESQ = 74H (AL)

RESR = 00H (AH)CASE II: one positive number & one negative numberINPUT: OPR1 = D908H 2’s Complement of (-26F8H)

OPR2 = 56HOUTPUT: RESQ = 8CH (AL) 2’s Complement of (- 74H)

RESR = 00H (AH) CASE III: one positive number & one negative number INPUT: OPR1 = 26F8H

OPR2 = AAH 2’s Complement of (-56H)OUTPUT: RESQ = 8CH (AL) 2’s Complement of (- 74H)

RESR = 00H (AH)

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 7: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 7

ASCII ADDITION

AIM: To write an ALP to perform the addition of two ASCII bytes.REGISTERS USED: AX,DSFLAGS AFFECTED: AF,CFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTCHAR DB '8'CHAR1 DB '6'RES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AH,00HMOV AL,CHARADD AL,CHAR1AAAMOV RES,AXMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:INPUT: CHAR = ‘8’

CHAR1 = ‘6’OUTPUT: RES = 0104 (AX) unpacked BCD of 14

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 8: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 8

ASCII SUBTRACTION

AIM: To write an ALP to perform the subtraction of two ASCII bytes.REGISTERS USED: AX,DSFLAGS AFFECTED: AF,CFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTCHAR DB '9'CHAR1 DB '5'RES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AH,00HMOV AL,CHARSUB AL,CHAR1AASMOV RES,AXMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:CASE I:INPUT: CHAR = ‘9’

CHAR1 = ‘5’OUTPUT: RES = 0004 (AX) CASE II:INPUT: CHAR = ‘5’

CHAR1 = ‘9’OUTPUT: RES = 00FC (AX) 2’s Complement of (-4)

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 9: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 9

ASCII MULTIPLICATION

AIM: To write an ALP to perform the multiplication of two ASCII bytes.REGISTERS USED: AX,DSFLAGS AFFECTED: PF,SF,ZFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTNUM1 DB 09NUM2 DB 05RES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AH,00MOV AL,NUM1MUL NUM2AAMMOV RES,AXMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:INPUT: NUM1 = 09

NUM2 = 05OUTPUT: RES = 0405 (AX) unpacked BCD of 45

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 10: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 10

ASCII DIVISION

AIM: To write an ALP to perform the multiplication of two ASCII numbers.REGISTERS USED: AX,DSFLAGS AFFECTED: PF,SF,ZFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTDIVIDEND DW 0607HDIVISOR DB 09HRESQ DB ?RESR DB ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,DIVIDENDAADMOV CH,DIVISORDIV CHMOV RESQ,ALMOV RESR,AHMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:INPUT: DIVIDEND = 0607H unpacked BCD of 67

DIVISOR = 09HOUTPUT: RESQ = 07 (AL)

RESR = 04 (AH)

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 11: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 11

EXPERIMENT NO.3

LOGICAL AND OPERATION

AIM: To write an Assembly language program to perform the Logical AND operation.REGISTERS USED: AX,DSFLAGS AFFECTED: PF,SF,ZFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 6493HOPR2 DW 1936HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1AND AX,OPR2MOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 6493H

OPR2 = 1936HOUTPUT: RES = 0012H

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 12: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 12

LOGICAL OR OPERATION

AIM: To write an Assembly language program to perform the Logical OR operation.REGISTERS USED: AX,DSFLAGS AFFECTED: PF,SF,ZFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 6493HOPR2 DW 1936HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1OR AX,OPR2MOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 6493H

OPR2 = 1936HOUTPUT: RES = 7DB7H

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 13: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 13

LOGICAL XOR OPERATION

AIM: To write an Assembly language program to perform the Logical XOR operation.REGISTERS USED: AX,DSFLAGS AFFECTED: PF,SF,ZFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 6493HOPR2 DW 1936HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1XOR AX,OPR2MOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 6493H

OPR2 = 1936HOUTPUT: RES = 7DA5H

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 14: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 14

LOGICAL NOT OPERATION

AIM: To write an Assembly language program to perform the Logical Invert operation.REGISTERS USED: AX,DSFLAGS AFFECTED: No flags are affected.PROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 6493HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1NOT AXMOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 6493H

OUTPUT: RES = 9B6CH

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 15: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 15

SHIFT ARITHMETIC / LOGICAL LEFT OPERATION

AIM: To write an Assembly language program to perform the Shift arithmetic / Logicaloperation.

REGISTERS USED: AX,DSFLAGS AFFECTED: SF,ZF,PFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 1639HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1SAL AX,01H (or) SHL AX,01HMOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 1639H

OUTPUT: RES = 2C72H

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 16: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 16

SHIFT LOGICAL RIGHT OPERATION

AIM: To write an Assembly language program to perform the Shift Logical Right operation.

REGISTERS USED: AX,DSFLAGS AFFECTED: SF,ZF,PFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 8639HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1SHR AX,01H MOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 8639H

OUTPUT: RES = 431CH

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 17: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 17

SHIFT ARITHMETIC RIGHT OPERATION

AIM: To write an Assembly language program to perform the Shift Arithmetic Rightoperation.

REGISTERS USED: AX,DSFLAGS AFFECTED: SF,ZF,PFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 8639HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1SAR AX,01H MOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 8639H

OUTPUT: RES = C31CH

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 18: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 18

ROTATE RIGHT WITHOUT CARRY

AIM: To write an Assembly language program to perform the Rotate Right without carry operation.

REGISTERS USED: AX,DSFLAGS AFFECTED: CF,OFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 1639HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1ROR AX,01HMOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 1639H

OUTPUT: RES = 8B1CH

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 19: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 19

ROTATE RIGHT WITH CARRY

AIM: To write an Assembly language program to perform the Rotate Right with carryoperation.

REGISTERS USED: AX,DSFLAGS AFFECTED: CF,OFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 1639HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1RCR AX,01HMOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 1639H

OUTPUT: RES = 0B1CH

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 20: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 20

ROTATE LEFT WITHOUT CARRY

AIM: To write an Assembly language program to perform the Rotate Left without carry operation.

REGISTERS USED: AX,DSFLAGS AFFECTED: CF,OFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 8097HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1ROL AX,01HMOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 8097H

OUTPUT: RES = 012FH

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 21: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 21

ROTATE LEFT WITH CARRY

AIM: To write an Assembly language program to perform the Rotate Left with carry operation.

REGISTERS USED: AX,DSFLAGS AFFECTED: CF,OFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTOPR1 DW 8097HRES DW ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,OPR1RCL AX,01HMOV RES,AXMOV AH,4CHINT 21HCODE ENDS END STARTEND

RESULT:INPUT: OPR1 = 8097H

OUTPUT: RES = 012EH

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 22: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 22

EXPERIMENT NO.5

ASCENDING ORDER

AIM: To write an assembly language program to arrange the given numbers in ascending order.REGISTERS USED: AX,DS,ES,SI,DIFLAGS AFFECTED: AX,DS,SI,CX,DXPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTLIST DW 05H,04H,01H,03H,02HCOUNT EQU 05HDATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV DX,COUNT-1BACK:MOV CX,DXMOV SI,OFFSET LISTAGAIN:MOV AX,[SI]CMP AX,[SI+2]JC GOXCHG AX,[SI+2]XCHG AX,[SI]GO:INC SIINC SILOOP AGAINDEC DXJNZ BACKMOV AH,4CHINT 21HCODE ENDSEND STARTEND

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

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

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 23: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 23

DESCENDING ORDER

AIM: To write an assembly language program to arrange the given numbers in ascending order.REGISTERS USED: AX,DS,SI,CX,DXFLAGS AFFECTED: CF,AF,PROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTLIST DW 03H,04H,01H,05H,02HCOUNT EQU 05HDATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV DX,COUNT-1BACK:MOV CX,DXMOV SI,OFFSET LISTAGAIN:MOV AX,[SI]CMP AX,[SI+2]JNC GOXCHG AX,[SI+2]XCHG AX,[SI]GO:INC SIINC SILOOP AGAINDEC DXJNZ BACKMOV AH,4CHINT 21HCODE ENDSEND STARTEND

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

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

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 24: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 24

PACKED BCD TO UNPACKED BCD

AIM: To write an assembly language program to perform packed bcd into unpacked bcd conversion.

REGISTERS USED: AX,DS,BL,CLFLAGS AFFECTED: PFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTBCD DB 49HCOUNT DB 04HUBCD1 DB ?UBCD2 DB ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AL,BCDMOV BL,ALAND AL,0FHMOV UBCD1,ALMOV AL,BLAND AL,0F0HMOV CL,COUNTROR AL,CLMOV UBCD2,ALMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:INPUT: BCD = 49

OUTPUT: UBCD1 = 09

UBCD2 = 04

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 25: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 25

BCD TO ASCII CONVERSION

AIM: To write an assembly language program to perform BCD to ASCII conversion.REGISTERS USED: AX,DS,BL,CLFLAGS AFFECTED: PFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTBCD DB 49HCOUNT DB 04HASCII1 DB ?ASCII2 DB ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AL,BCDMOV BL,ALAND AL,0FHOR AL,30HMOV ASCII1,ALMOV AL,BLAND AL,0F0HMOV CL,COUNTROR AL,CLOR AL,30HMOV ASCII2,ALMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:INPUT: BCD = 49

OUTPUT: UBCD1 = 39

UBCD2 = 34

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 26: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 26

EXPERIMENT NO.3

MOVE BLOCK

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

REGISTERS USED: AX,DS,ES,SI,DIFLAGS AFFECTED: No flags are affectedPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTSTR DB 04H,0F9H,0BCH,98H,40HCOUNT EQU 05HDATA ENDSEXTRA SEGMENTORG 0010HSTR1 DB 5 DUP(?)EXTRA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AX,DATAMOV ES,AXMOV SI,OFFSET STRMOV DI,OFFSET STR1MOV CL,COUNTCLDREP MOVSBMOV AH,4CHINT 21HCODE ENDSEND STARTEND

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

OUTPUT: STR1 (DS:0010H) = 04H,F9H,BCH,98H,40H

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 27: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 27

REVERSE STRING

AIM: To write an assembly language program to reverse the given string.REGISTERS USED: AX,DS,SI,DI,CLFLAGS AFFECTED: ZF,PFPROGRAM: ASSUME CS:CODE,DS:DATADATA SEGMENTSTR DB 01H,02H,03H,04HCOUNT EQU 02HDATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV CL,COUNTMOV SI,OFFSET STRMOV DI,0003HBACK:MOV AL,[SI]XCHG [DI],ALMOV [SI],ALINC SIDEC DIDEC CLJNZ BACKMOV AH,4CHINT 21HCODE ENDSEND STARTEND

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

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

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 28: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 28

LENGTH OF THE STRING

AIM: To write an assembly language program to find the length of the given string.REGISTERS USED: AX,DS,SI,CLFLAGS AFFECTED: ZF,PF,SF,AF,CFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTSTR DB 01H,03H,08H,09H,05H,07H,02HLENGTH DB ?DATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV AL,00HMOV CL,00HMOV SI,OFFSET STRBACK:CMP AL,[SI]JNC GOINC CLINC SIJNZ BACKGO:MOV LENGTH,CLMOV AH,4CHINT 21HCODE ENDSEND STARTEND

RESULT:INPUT: STR (DS:0000H) = 01H, 03H,08H,09H,05H,07H,02H

OUTPUT: LENGTH = 07H (CL)

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 29: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 29

STRING COMPARISION

AIM: To write an assembly language program to compare the given strings.REGISTERS USED: AX,DS,SI,DI,CLFLAGS AFFECTED: ZF,CFPROGRAM:ASSUME CS:CODE,DS:DATADATA SEGMENTSTR DB 04H,05H,07H,08HCOUNT EQU 04HORG 0010HSTR1 DB 04H,06H,07H,09HDATA ENDSCODE SEGMENTSTART:MOV AX,DATAMOV DS,AXMOV SI,OFFSET STRMOV DI,OFFSET STR1MOV CL,COUNTCLDREP CMPSBMOV AH,4CHINT 21HCODE ENDSEND STARTEND

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

STR1 (DS:0010H) = 04H,06H,07H,09H

OUTPUT: I ): IF STR = STR1 THEN ZF = 1 & II ): IF STR ≠ STR1 THEN ZF = 0

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty

Page 30: Microprocessors & Interfacing Lab Manual

Microprocessors & Interfacing Lab 30

DOS / BIOS PROGRAMMING

●DISPLAY THE STRING●

AIM: To write an assembly language program to display the given string.REGISTERS USED: AX,DS,DXFLAGS AFFECTED: No flags are affectedPROGRAM: 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

RESULT:

WELCOME TO MICROPROCESSORS LAB

________________________________________________________________________Dept.of E.C.E, S.K.D Engg College,Gooty