Vous êtes sur la page 1sur 21

EEE DEPARTMENT 8086 programs for MPMC LAB 8owtfonoitiddamrofrepotmargorpegaugnalylbmessanaetirW)1-.

srebmuntib0532,ISVOMdna repotsriffosserddasi0532; 0572,IDVOMdnarepodnocesfosserddasi0572; ]IS[,LAVOMretsigerLAotnideipocsidnarepotsrif; ]ID[,LBVOMretsigerLBotnideipocsidnarepodnoces; LB,LADDAsdnarepoowtfonoitidda; 00,HAVOMnoitiddafoyrracgnirotsrofderaelcsiretsigerHA; YRRACONCNJlebal YRRACON otpmujneht0sigalfFCfi; HACNIHAtnemercniesle; ,]IS[VOMXAderotssiHAniyrracdnaLAnimusgnivahXA; 30TNIkaerbgnikovni;-.tpurretnitniop61owtfonoitiddamrofrepotPLAnaetirW)2-.srebmun tibISVOM0532, ISotdnarepotsriffosserdda; IDVOM0572, IDotdnarepodnocesfosserdda; ]IS[,XAVOMretsigerXAotnideipocdnarepo; XBVOM[, ]IDretsigerXBotnideipocdnarepo; LDVOM00, yrracerotsotderaelcsiretsigerLD; XADDAXB, retsigerXBdnaXAfonoitidda; YRRACONCNJal YRRACON otpmujneht0siFCfi;lebLDCNIretsigerLDtnemercniesle; ISVOM:YRRACON0003, yrracdnamuserotsotsserdda; ]IS[VOMXA, yromemotXAmrofdeipocsimus; 20,ISDDAyrracerotsotdrowtxenotsserddaesaercni; LD,]IS[VOMyromemotLDmorfyrracerots; 30TNIkaerbgnikovni;-.tpurretnitniop23owtfonoitiddamrofrepotPLAaetirW)3-61gnivlov nisrebmuntib-.noitiddatib0532,ISVOMISotdnarepotsriffosserdda; 0572,IDVOMIDotdnarepodnocesfosserdda; ]IS[,XAVOM23fodrowrewol;-XAotdnarepotsriftib]ID[,XBVOM23fodrowrewol; -XBotdnarep odnocestib20,ISDDAdnarepotsriffosserddadrowrehgihotstniopIS; 20,IDDDAdnarepodnocesfosserddadrowrehgihotstniopID; IS[,XCVOM] 23fodrowrehgih; -XCotdnarepotsriftib]ID[,XDVOM23fodrowrehgih; -XDotdn arepotsriftib0003,ISVOM:YRRACONyrracdnamustluserehterotsotsserdda;

EEE DEPARTMENT MOV ADD MOV MOV ADC JNC INC SI,3000 ;address for the result. AX,BX ;lower word addition [SI],AX ;storing the 16 bit sum AL,00 ;clearing for carry CX,DX ;higher word addition with carry L1 ;if no-carry jump to label L1 AL ; else increment AL

L1: ADD SI,02 ;higher word result address XC,]IS[VOMtluserdrowrehgih; 20,ISDDAyrracrofsserddaotstniopIS; LA,]IS[VOMyromemotLAmrofyrrac; 30TNIkaerbgnikovni; -.tpurretnitniopitlummrofrepotPLAaetirW)4-46owtfonoitiddaety b-nitib61gnivlov-.noitiddatib0532,ISVOMdnarepotsriffosserdda; 0572,IDVOMdnarepodnocesfosserdda; 0003,PBVOMtluserehtfosserdda; CLCgalfyrracehtraelc; 40,LCVOMrebmunehtnihtiwdrowfoon; ]IS[,XAVOM:PUdnarepotsrifehtmrofdrow; ]ID[,XBVOMdnarepodnocesehtmorfdrowXB,XACDAsdrowowtfonoitidda; XA,]PB[VOMtluserehttaderotssimus; ISCNIISCNIdnarepotsriffodrowtxenotstniopIS; IDCNIIDCNIdnarepodnocesfodrowtxenotstniopID; PBCNIPBCNItluserfodrowtxenotstniopPB; PUPOOL0LCfiPUlebalotpmujdnaLCtnemerced; PBCEDPBtnemerced; 00,LAVOMyrracrofLAraelc; 1LCNJ1Llebalotpmuj0=FCfi; LACNILAtnemercni; LA,]PB[VOM:1Lyrracehterots; 30TNIkaerbgnikovni;-tpurretnitniop8owtfonoitcartbusmrofrepotPLAaetirW)5-srebmunt ib0532,ISVOMdnarepotsriffosserddasi0532; 0572,IDVOMnarepodnocesfosserddasi0572;d ]IS[,LAVOMretsigerLAotnideipocsidnarepotsrif; ]ID[,LBVOMretsigerLBotnideipocsidnarepodnoces; LB,LABUSsdnarepoowtfonoitcartbus; 00,HAVOMnoitcartbusfoworrobgnirotsrofderaelcsiretsigerHA; YRRACONCNJlebal YRRACON otpmujneht0sigalfFCfi;

EEE DEPARTMENT INC AH ;else increment AH NOCARRY: MOV SI,3000 ;address to store the result difference and borrow MOV [SI],AX ;AX having difference in AL and borrow in AH is stored INT 03 ;invoking break-point interrupt. 6) Write an ALP to perform subtraction of two 16-bit numbers. MOV SI,2350 ;address of first operand to SI 0572,IDVOMIDotdnarepodnocesfosserdda; ]IS[,XAVOMretsigerXAotnideipocdnarepo; ]ID[,XBVOMretsigerXBotnideipocdnarepo; 00,LDVOMyrracerotsotderaelcsiretsigerLD; XB,XABUSdnaXAfonoitcartbus;retsigerXBYRRACONCNJlebal YRRACON otpmujneht0siFCfi; LDCNIretsigerLDtnemercniesle; 0003,ISVOM:YRRACONworrobdnaecnereffiderotsotsserdda; XA,]IS[VOMyromemotXAmrofdeipocsiecnereffid; 20,ISDDAworroberotsotdrowtxenotsserddaesaercni; LD,]IS[VOMyromemotLDmorfworroberots; 30TNIkaerbgnikovni;-.tpurretnitniop23owtfonoitcartbusmrofrepotPLAaetirW)7-61gniv lovnisrebmuntib-.noitiddatib0532,ISVOMISotdnarepotsriffosserdda; 0572,IDVOMIDotdnarepodnocesfosserdda; ]IS[,XAVOM23fodrowrewol;-XAotdnarepotsriftib]ID[,XBVOM23fodrowrewol; -XBotdnarep odnocestib20,ISDDAdnarepotsriffosserddadrowrehgihotstniopIS; 20,IDDDA;dnarepodnocesfosserddadrowrehgihotstniopID]IS[,XCVOMwrehgih; 23fodro-XC otdnarepotsriftib]ID[,XDVOM23fodrowrehgih; -XDotdnarepotsriftibISVOM0003, .tluse rehtrofsserdda; XABUSXB, noitcartbusdrowrewol; ]IS[VOMXA, ecnereffidtib61ehtgnirots; LAVOM00, worrobrofgniraelc; XCBBSXD, ;worrobhtiwnoitcartbusdrowrehgih1LCNJonfi;-1LlebalotpmujyrracLACNILAtne mercniesle; ISDDA:1L20, sserddatluserdrowrehgih; ]IS[VOMXC, tluserdrowrehgih; ISDDA20, worrobrofsserddaotstniopIS; ]IS[VOMLA, yromemotLAmrofyrrac; 30TNIkaerbgnikovni; -.tpurretnitniopitlummrofrepotPLAaetirW)8-46owtfonoitcartbus etyb-61gnivlovnitib-.noitcartbustib0532,ISVOMdnarepotsriffosserdda;

EEE DEPARTMENT MOV MOV CLC MOV UP: MOV SBB MOV DI,2750 ;address of second operand BP,3000 ;address of the result ;clear the carry flag CL,04 ;no of word within the number MOV AX,[SI] ;word form the first operand BX,[DI] ;word from the second operand AX,BX ;subtraction of two words [BP],AX ;difference is stored at the result

ISCNIISCNIdnarepotsriffodrowtxenotstniopIS; IDCNIIDCNIdnarepodnocesfodrowtxenotstniopID; PBCNIPBCNItluserfodrowtxenotstniopPB; PUPOOL0LCfiPUlebalotpmujdnaLCtnemerced; PBCEDPBtnemerced; 00,LAVOMworrobrofLAraelc; 1LCNJ1Llebalotpmuj0=FCfi; LACNILAtnemercni; LA,]PB[VOM:1Lworrobehterots; 30TNIkaerbgnikovni;-tpurretnitniop8trevnocotPLAaetirW)9-.rebmunDCBdekcapnuotrebm unDCBdekcaptib0002,ISVOM]IS[,LAVOMLA,LBVOMF0,LADNA40,LCVOMLC,LBRHSLB,HAVOM0003,I SVOMXA,]IS[VOM30TNI8owtfonoitiddamrofrepotPLAaetirW)01-.srebmundekcapDCBtib0532, ISVOM0572,IDVOM]IS[,LAVOM]ID[,LBVOMLB,LADDAAAD00,HAVOM1LCNJHACNI0003,ISVOM:1LXA, ]IS[VOM30TNI

EEE DEPARTMENT 11) Write a ALP to perform subtraction of two 8-bit BCD packed numbers. MOV MOV MOV MOV SUB DAS SI,2350 DI,2750 AL,[SI] BL,[DI] AL,BL

00,HAVOM1LCNJHACNI0003,ISVOM:1LXA,]IS[VOM30TNI8nevigatrevnocotPLAaetirW)21-.edoc IICSAtnelaviuqestiotrebmunDCBdekcaptib0532,ISVOM]IS[,LAVOMLA,LBVOMF0,LADNA40,LCV OMLC,LBRHSLB,HAVOM0303,XARO0003,ISVOMXA,]IS[VOM30TNI61nevigatrevnocotPLAaetirW)3 1-.edocDCBtnelaviuqestiotedocIICSAtib0532,ISVOM]IS[,XAVOMF0F0,XADNA40,LCVOMLC,HA LHSHA,LADDA0003,IDVOMLA,]ID[VOM30TNI8nevigatrevnocotPLAaetirW)41-.rebmunlamiceda xehtnelaviuqestiotDCBtib0532,ISVOM]IS[,LAVOMLA,LBVOMF0,LBDNA40,LCVOM

EEE DEPARTMENT SHR MOV MUL ADD MOV MOV INT AL,CL CL,0A CL AL,BL SI,3000 [SI],AL 03

8nevigatrevnocotPLAaetirW)51-.rebmunDCBtnelaviuqestiotrebmunlamicedaxehtib0532,I SVOM]IS[,LAVOM00,HAVOMA0,LCVOMLCVID00,LADDAAADLA,LBVOMHA,LAVOM00,LADDAAAD90,LBPM CITAJ40,LCVOMLC,LBLHSLB,LADDA00,HAVOMDEPMJ40,LCVOM:ITLC,LALHSLA,HAVOMLB,LAVOM40, LCVOMLC,XALOR0003,ISVOMXA,]IS[VOM30TNI8owtfonoitiddaIICSAmrofrepotPLAaetirW)61-s rebmunIICSAtib0532,ISVOM0572,IDVOM]IS[,LAVOM]ID[,LBVOMLB,LADDAAAA00,HAVOM1LCNJ

EEE DEPARTMENT INC AH L1: MOV MOV INT OR AH,30 SI,3000 [SI],AX 03

17) Write a ALP to perform ASCII subtraction of two 8-bit ASCII numbers 0532,ISVOM0572,IDVOM]IS[,LAVOM]ID[,LBVOMLB,LABUSSAA00,HAVOM1LCNJHACNI03,HARO:1L0 003,ISVOMXA,]IS[VOM30TNI8owtfonoitacilpitlumIICSAmrofrepotPLAaetirW)81-srebmunII CSAtib0532,ISVOM0572,IDVOM]IS[,LAVOM]ID[,LBVOMF0,LADNAF0,LBDNA00,HAVOMLBLUMMAA03 03,XARO0003,ISVOMXA,]IS[VOM30TNI.etybIICSAybdrowIICSAnevigafonoisividIICSAmrofre potPLAaetirW)910532,ISVOM0572,IDVOM]ID[,LCVOMF0,LCDNA]IS[,XAVOMF0F0,XADNADAALCVI D0303,XARO

EEE DEPARTMENT MOV [SI],AX INT 03 20) Write a ALP to perform unsigned multiplication of two 8-bit numbers MOV SI,2350 MOV DI,2750 MOV AL,[SI] MOV BL,[DI] MUL BL MOV SI,3000 MOV [SI],AX INT 03 21) Write a ALP to perform signed multiplication of two 8-bit numbers MOV SI,2350 MOV DI,2750 MOV AL,[SI] MOV BL,[DI] IMUL BL MOV SI,3000 MOV [SI],AX INT 03 22) Write a ALP to perform unsigned multiplication of two 16-bit numbers MOV SI,2350 MOV DI,2750 MOV AX,[SI] MOV BX,[DI] MUL BX MOV SI,3000 MOV [SI],AX

ADD SI,02 MOV [SI],DX INT 03 23) Write a ALP to perform signed multiplication of two 16-bit numbers MOV SI,2350 MOV DI,2750 MOV AX,[SI] MOV BX,[DI] IMUL BX MOV SI,3000 MOV [SI],AX ADD SI,02 MOV [SI],DX INT 03

EEE DEPARTMENT 24) Write a ALP to perform unsigned division of a word by byte MOV SI,2350 MOV DI,2750 MOV AX,[SI] MOV BL,[DI] DIV BL MOV SI,3000 MOV [SI],AX INT 03 25) Write a ALP to perform unsigned division of a double word by word MOV SI,2350 MOV DI,2750 MOV BX,[DI] MOV AX,[SI] ADD SI,02 MOV DX,[SI] DIV BX MOV SI,3000 MOV [SI],AX ADD SI,02 MOV [SI],DX INT 03 26) Write a ALP to perform signed division of a word by byte MOV SI,2350 MOV DI,2750 MOV AX,[SI] MOV BL,[DI] IDIV BL

MOV SI,3000 MOV [SI],AX INT 03 27) Write a ALP to perform signed division of a double word by word MOV SI,2350 MOV DI,2750 MOV BX,[DI] MOV AX,[SI] ADD SI,02 MOV DX,[SI] IDIV BX MOV SI,3000 MOV [SI],AX ADD SI,02 MOV [SI],DX INT 03

EEE DEPARTMENT 28) Write a ALP to find the number of 1 unt no of 0's change JNC MOV MOV MOV to JC). SI,2350 AX,[SI] CL,00 bit in a given word. (IF question is to co

UP: SHL AX,01 JNC TI INC CL 0000,XAPMC:ITPUZNJ0003,ISVOMLC,]IS[VOM30TNI8fosrebmun01foyarraanisrebmunevitisop forebmunehtdnifotPLAaetirW)92-ezistib0532,ISVOMA0,LCVOM00,LDVOM]IS[,LAVOM:PU10,L ALORITCJLDCNIISCNI:ITLCCEDPUZNJ0003,ISVOMLD,]IS[VOM30TNI.rehtootnoitacolnevigamo rfgnirtsetybaevomotPLAaetirW)030004,ISVOM0005,IDVOM8000,XCVOMDLCPERBSVOM30TNIreh tootnoitacolnevigamorfgnirtsdrowaevomotPLAaetirW)130004,ISVOM0005,IDVOM4000,XCVO MDLCPERWSVOM30TNI

EEE DEPARTMENT 32) MOV MOV MOV Write a ALP to reverse a given byte string SI,4000 DI,5007 CX,0008

L1: CLD LODSB STD STOSB 1LPOOL30TNIgnirtsdrownevigaesreverotPLAaetirW)330004,ISVOMF005,IDVOM8000,XCVOMDL C:1LWSDOLDTSWSOTS1LPOOL30TNIgnirtsetybehtfohtgnelehtdnifotPLAaetirW)430003,ISVOM 00,LAVOM0000,XCVOMDLCBSDOL:1T00,LAPMC2TEJXCCNI1TPMJ0004,ISVOM:2TXC,]IS[VOM30TNIP LAaetirW)53.mehtgnomagnirtsretaergehtdnifdnagnirtsetybowterapmocot0003,ISVOM0004 ,IDVOMA000,XCVOM00,LBVOMDLCEPERBSPMC1TAJNEZJ

EEE DEPARTMENT INC BL T1: INC BL EN: MOV SI,5000 MOV [SI],BL INT 03 36) Write a ALP to arrange a unsigned byte string in their ascending order MOV CL,05 0003,ISVOM:TS50,LDVOM]IS[,LAVOM:PU10]IS[,LAPMC1TEBJ10]IS[,LAGHCXLA,]IS[VOMISCNI: 1TLDCEDPUZNJLCCEDTSZNJ30TNIredrognidnecsedriehtnignirtsetybdengisnuaegnarraotPLA aetirW)7350,LCVOM0003,ISVOM:TS50,LDVOM]IS[,LAVOM:PU10]IS[,LAPMC1TEAJ10]IS[,LAGHC XLA,]IS[VOMISCNI:1TLDCEDPUZNJLCCEDTSZNJ30TNIredrognidnecsariehtnignirtsetybdengi saegnarraotPLAaetirW)8350,LCVOM0003,ISVOM:TS50,LDVOM]IS[,LAVOM:PU10]IS[,LAPMC1TE LJ10]IS[,LAGHCXLA,]IS[VOM

EEE DEPARTMENT T1: DEC JNZ DEC JNZ INT INC SI DL UP CL ST 03

39) Write a ALP to arrange a signed byte string in their descending order 50,LCVOM0003,ISVOM:TS50,LDVOM]IS[,LAVOM:PU10]IS[,LAPMC1TEGJ10]IS[,LAGHCXLA,]IS[V OMISCNI:1TLDCEDPUZNJLCCEDTSZNJ30TNIredrognidnecsariehtnignirtsDROWdengisnuaegnar raotPLAaetirW)0450,LCVOM0003,ISVOM:TS50,LDVOM]IS[,XAVOM:PU20]IS[,XAPMC1TEBJ20]IS [,XAGHCXXA,]IS[VOM20,ISDDA:1TLDCEDPUZNJLCCEDTSZNJ30TNIegnarraotPLAaetirW)14redro gnidnecsedriehtnignirtsDROWdengisnua 50,LCVOM0003,ISVOM:TS50,LDVOM]IS[,XAVOM:PU20]IS[,XAPMC1TEAJ20]IS[,XAGHCX

EEE DEPARTMENT MOV [SI],AX T1: DEC JNZ DEC JNZ INT ADD SI,02 DL UP CL ST 03

redrognidnecsariehtnignirtsDROWdengisaegnarraotPLAaetirW)2450,LCVOM0003,ISVOM:TS 50,LDVOM]IS[,XAVOM:PU20]IS[,XAPMC1TELJ20]IS[,XAGHCXXA,]IS[VOM20,ISDDA:1TLDCEDPUZ NJLCCEDTSZNJ30TNI)34redrognidnecsedriehtnignirtsDROWdengisaegnarraotPLAaetirW50, LCVOM0003,ISVOM:TS50,LDVOM]IS[,XAVOM:PU20]IS[,XAPMC1TEGJ20]IS[,XAGHCXXA,]IS[VOM2 0,ISDDA:1TLDCEDPUZNJLCCEDTSZNJ30TNI.noitisopnevigatagnirtsetybevigaotnignirtsbus etybevigatresniotPLAaetirW)440003,ISVOM0004,IDVOMGNIRTSFOHTGNEL;70,LBVOMGNIRTSBU SFOHTGEL;40,HBVOMTRESNIOTNOITISOP;50,HDVOM00,HCVOM

EEE DEPARTMENT DEC DH MOV CL,DH CLD REP MOVSB MOV AX,SI MOV SI,5000 MOV CL,BH DLCPERBSVOMXA,ISVOMLB,LCVOMHD,LCBUSDLCPERBSVOM30TNI.gnirtsafonoitisopnevigamorfs etybforebmunnevigaeteledotPLAaetirW)540003,ISVOMIS,IDVOMGNIRTSFOHTGEL;70,LBVOMET ELEDOTETYBFOON;20,HBVOMNOITELEDTRATSOTEREHWNOITISOP;40,HDVOMHDCED0000,XCVOMHD,LC VOMXC,IDDDAHB,LCDDAXC,ISDDALB,LAVOMLC,LABUSLA,LCVOMDLCPERBSVOMISCNI00,]IS[VOM30T NIneercsno htlaewsiegdelwonk gnirtsehtyalpsidotecivresSODgnisuMSAMrofPLAaetirW)64ATA D:SD,EDOC:SCEMUSSATNEMGESATAD $ , htlaewsiegdelwonk BDGSMSDNEATADTNEMGESEDOC

EEE DEPARTMENT START: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MSG MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS

TRATSDNEohcehtiwdraobyekmorfsretcarahcfognirtsadaerotecivresSODgnisuMSAMrofPLAae tirW)74 % saretcarahctsalhtiwATAD:SD,EDOC:SCEMUSSATNEMGESATAD BDGSM $ , :%saretcarahctsalht wgnirtsaretne)0(PUDH04BDRTSSDNEATADTNEMGESEDOCATAD,XAVOM:TRATSXA,SDVOMH90,HAVOMG SMTESFFO,XDVOMH12TNIH10,HAVOMRTSTESFFO,ISVOMISCEDH12TNI:PUISCNILA,]IS[VOM % ,LAPMCPU ZNJHC4,HAVOMH12TNISDNEEDOCTRATSDNEtuohtiwdraobyekmorfsretcarahcfognirtsadaerotec ivresSODgnisuMSAMrofPLAaetirW)84 % saretcarahctsalhtiwohceATAD:SD,EDOC:SCEMUSSATNEMG ESATAD $ , :%saretcarahctsalhtiwgnirtsaretne BDGSM)0(PUDH04BDRTSSDNEATADTNEMGESEDOCATAD, XAVOM:TRATS

EEE DEPARTMENT MOV MOV MOV INT MOV MOV DEC DS,AX AH,09H DX,OFFSET MSG 21H AH,08H SI,OFFSET STR SI

UP: INT 21H ISCNILA,]IS[VOM % ,LAPMCPUZNJHC4,HAVOMH12TNISDNEEDOCTRATSDNEevawralugnairtaetarenegd na5528hguorhtretrevnocgolanaotlatigidaecafretniotPLAaetirW)946EFF0,XDVOM08,LAVOM LA,XDTUO0EFF0,XDVOM00,LAVOMFF00,XCVOM:YCTXNLA,XDTUO:PMRPULACNILCCEDPMRPUZNJFF00, XCVOMLACED:PMRNDLA,XDTUOLCCEDPMRNDZNJYCTXNPMJ30TNIevawerauqsaetarenegdna5528hguo rhtretrevnocgolanaotlatigidaecafretniotPLAaetirW)056EFF0,XDVOM08,LAVOMLA,XDTUO0E FF0,XDVOM00,LAVOMFF00,XCVOM:PULA,XDTUOLCCED:YCHYCHZNJ

EEE DEPARTMENT XOR AL,0FF ;you can also use NOT AL JMP UP INT 03 51) Write a ALP to interface a stepper motor through 8255 and rotate continuousl y in clock wise direction MOV AL,80 MOV DX,0FFE6 OUT DX,AL MOV AL,11 MOV DX,0FFE0 AGAIN: OUT DX,AL MOV CX,0FFF BACK: LOOP BACK ROR AL,01 JMP AGAIN INT 03 52) Write a ALP to interface a stepper motor through 8255 and rotate continuousl y in ANTI-clockwise direction MOV AL,80 MOV DX,0FFE6 OUT DX,AL MOV AL,11 MOV DX,0FFE0 AGAIN: OUT DX,AL MOV CX,0FFF BACK: LOOP BACK ROL AL,01 JMP AGAIN INT 03

Vous aimerez peut-être aussi