+ All Categories
Home > Documents > Ec6504 Mpmc Unit 1

Ec6504 Mpmc Unit 1

Date post: 16-Aug-2015
Category:
Upload: wilson-andrade
View: 245 times
Download: 6 times
Share this document with a friend
Description:
Microprocessor basics
Popular Tags:
249
EC6504 MICROPROCESSOR AND MICROCONTROLLERS (Regulation 2013)
Transcript

EC6504 MICROPROCESSOR AND MICROCONTROLLERS(Regulation 2013)Study the Architecture of 8086MicroproceorLe!r" the dei#" !pect of I$O !"d Me%ory I"terf!ci"# circuitStudy !&out co%%u"ic!tio" !"d &u i"terf!ci"#'Study the Architecture of 805( %icroco"tro))er'8/14/15 2O*+ECTI,ES-NIT I. T/E 8086 MICROPROCESSOR 012Introduction to 8086 Microprocessor architecture Addressing modes - InstructionsetandassemblerdirectivesAssemblylanguage programming Modular Programming - Linking and elocation - !tacks - Procedures Macros Interrupts and interrupt service routines "yte and !tring Manipulation# -NIT II . 8086 S3STEM *-S STR-CT-RE0128086signals"asiccon$igurations!ystembustiming!ystemdesign using8086I%programmingIntroductiontoMultiprogramming !ystem"us!tructure-Multiprocessorcon$igurations&oprocessor' &loselycoupledandloosely&oupledcon$igurationsIntroductionto advanced processors#8/14/15 3S3LLA*-S-NIT III . I$O INTER4ACIN5012Memory Inter$acing and I(% inter$acing - Parallel communication inter$ace !erialcommunicationinter$ace)(AandA()Inter$ace-*imer +eyboard(displaycontrollerInterruptcontroller)MAcontroller Programmingandapplications&asestudies,*ra$$icLightcontrol'L-) display ' L&) display' +eyboard display inter$ace and Alarm &ontroller#-NIT I,. MICROCONTROLLER012Architectureo$80./!pecial0unctionegisters1!0s2-I(%PinsPorts and&ircuits-Instructionset-Addressingmodes-Assemblylanguage programming# 33 -NIT , . INTER4ACIN5 MICROCONTROLLER012Programming80./*imers-!erialPortProgramming-Interrupts ProgrammingL&)4+eyboardInter$acing-A)&')A&4!ensor Inter$acing--5ternalMemoryInter$ace-!tepperMotorand6ave$orm generation#TOTAL6 45 PERIODS8/14/15 4S3LLA*-S7/89u-&heng Liu' :lenn A#:ibson' ;Microcomputer !ystems, *he 8086 ( 8088 0amily - Architecture' Programming and )esign# !o$tEare!ystem !o$tEareBser !o$tEare8/14/15 8INTROD-CTION TO 8086LIST O4 INTEL MICROPROCESSORS8/14/15Introduction to 8086 (continued.....)9MICROPROCESSORS *3 OT/ER COMPANIES8/14/15Introduction to 8086 (continued.....)10ARC/ITECT-RE O4 A T3PICAL MICROCOMP-TER S3STEM8/14/15Introduction to 8086 (continued.....)11SO4T9ARE /IERARC/38/14/15Introduction to 8086 (continued.....)12used to Erite a program $or a microcomputer/# Machine Language "inary $orm o$ program 1Instructions ( data in/G and 0Gs $orm2)i$$icult $or programmer to memori@e-rror occurs easily># Assembly LanguageMore readable $orm o$ machine languageBses mnemonic codesAssembler needed to translate to machine codeC# =igh Level LanguageBses -nglish-like program statementsPrograms can usually be Eritten $aster 4 easily&ompiler needed to translate high-level language statement to machine code-5ecuted sloEly H eIuire more memoryT/REE LE,ELS O4 PRO5RAMMIN58/14/15Introduction to 8086 (continued.....)13An assembler translates the assembly language program into machine language programAssembly language program source codesMachine language program object codesASSEM*LER8/14/15Introduction to 8086 (continued.....)14Fumber 0ormats "inary 1or Integer27Jve' -ve IntegersH "ase >' 8' /0' /68 0loating Point 1or eal2 "inary &oded )ecimal 1"&)2 1or )ecimal2Alphanumeric &odes -"&)I&--5tended "inary &oded )ecimal Interchange &ode A!&II American !tandard &ode $or In$ormation InterchangeDATA REPRESENTATION8/14/15Introduction to 8086 (continued.....)155ENERAL OPERATION O4 A COMP-TER8/14/15Introduction to 8086 (continued.....)165ENERAL OPERATION O4 A COMP-TER8/14/15Introduction to 8086 (continued.....)17OPERATION O4 ;ith (6 &it &i"!ry ;ordD!t! &u 6 (6 &it 0re!d d!t! fro% or ;rite d!t! to %e%ory !"d port either (6 &it or 8 &it !t ! ti%eAddre &u 6 ?0 &it 0c!" !ddre upto ??0@(0485A6 @ (M* %e%ory )oc!tio"2' BAddre r!"#e 6 00000/ to 44444/CIt pro:ide (4= (6.&it re#iter' It h! %u)tip)eDed Addre !"d D!t! &u AD0. AD(5 !"d A(6 E A(1'8086 ARC/ITECT-RE8/14/15 228086 Arcitecture (continued!) /! FLoo> !he!dG fe!ture to i"cre!e the throu#hput' 0i'e2 It c!" prefetch upto 6 &yte fro% %e%ory !"d Hueue the% i" order to peed up i"tructio" eDecutio"'40 pi" du!) i" )i"e p!c>!#eSupp)y ,o)t!#e6 I5, J C)oc> Speed6 5M/K= 8M/K= (0M/K8086 i dei#"ed to oper!te i" t;o %ode= Mi"i%u% !"d M!Di%u%'8086 4EAT-RES8/14/15 238086 Arcitecture (continued!) CP-.MEMOR3 INTER4ACE&PB8086 Memory?0(6Addess BusData BusControl Bus8/14/15 248086 Arcitecture (continued!) 8086 ARC/ITECT-RE8/14/15 258086 Arcitecture (continued!) 8086 ARC/ITECT-RE8/14/15 268086 Arcitecture (continued!) The 8086 h! t;o p!rt6 the *u I"terf!ce -"it 0*I-2 4etche i"tructio"= Re!d !"d 9rite d!t!= !"d co%pute the ?0.&it !ddre for %e%ory oper!"dTr!"fer i"tructio" &yte i"to the 6 &yte 4I4O Hueuethe EDecutio" -"it 0E-2 Decode !"d EDecute the i"tructio" ui"# the (6.&it AL-'*oth u"it oper!te !y"chro"ou)y to #i:e the 8086 !" o:er)!ppi"# i"tructio" fetch !"d eDecutio" %ech!"i% ;hich i c!))ed ! Pipe)i"i"#'8086 ARC/ITECT-RE8/14/15 278086 Arcitecture (continued!) CSDSESSSIP8086 INTERNAL RE5ISTERS (6 *ITS 0? *3TES EAC/)Code SegmentData SegmentExtra SegmentStack SegmentInstruction PointerBIU egisters!" !#B" B#C" C#D" D#SPBPSIDIF$agsEUegisters!ccumu$atorBase egisterCount egisterData egisterStack PointerBase PointerSource Index egisterDestination Index egisterF$ag egister!%B%C%D%8/14/15 288086 Arcitecture (continued!) T/E 8086 MICROPROCESSOR6 RE5ISTERSI" tot!) there !re 4ourtee" (6.&it re#iter i" !" 80868/14/15 298086 Arcitecture (continued!) Re#iter Re#iter !re i" the CP- !"d !re referred to &y pecific "!%e D!t! re#iter/o)d d!t! for !" oper!tio" to &e perfor%ed There !re 4 d!t! re#iter 0A7= *7=C7= D72 Addre re#iter/o)d the !ddre of !" i"tructio" or d!t! e)e%e"tSe#%e"t re#iter 0CS= DS= ES= SS2Poi"ter re#iter 0SP= *P= IP2I"deD re#iter 0SI= DI2 St!tu re#iter8eep the curre"t t!tu of the proceor The t!tu re#iter i c!))ed the 4LA5 re#iterThe 8086 Microproceor6 Re#iter8/14/15 308086 Arcitecture (continued!) D!t! Re#iter6 A7= *7= C7= D7I"tructio" eDecute f!ter if the d!t! i i" ! re#iterD!t! Re#iter !re #e"er!) purpoe re#iter &ut they !)o perfor% peci!) fu"ctio"A7= *7= C7= D7!re the d!t! re#iterLo; !"d /i#h &yte of the d!t! re#iter c!" &e !cceed ep!r!te)yA/= */= C/= D/ !re the hi#h &yteAL= *L= CL= DL !re the )o; &yte8/14/15 318086 Arcitecture (continued!) A7 Accu%u)!tor Re#iter -ed i" Arith%etic= Lo#ic !"d D!t! Tr!"fer i"tructio"-ed i" Mu)tip)ic!tio" !"d Di:iio" oper!tio"-ed i" I$O oper!tio"*7*!e Re#iterA)o er:e ! !" !ddre re#iter-ed i" !rr!y oper!tio"-ed i" T!&)e Loo>up oper!tio" 07LAT2C7Cou"t re#iter-ed ! ! Loop Cou"ter-ed i" hift !"d rot!te oper!tio"D7D!t! re#iter-ed i" Mu)tip)ic!tio" !"d Di:iio"A)o ued i" I$O oper!tio"8/14/15 328086 Arcitecture (continued!) Co"t!i" the offet !ddree of %e%ory )oc!tio"C!" !)o &e ued i" Arith%etic !"d other oper!tio"SP6 St!c> poi"ter -ed ;ith SS to !cce the t!c> e#%e"t*P6 *!e Poi"ter Pri%!ri)y ued to !cce d!t! o" the t!c> C!" &e ued to !cce d!t! i" other e#%e"tPoi"ter !"d I"deD Re#iter8/14/15 338086 Arcitecture (continued!) SI6 Source I"deD re#iter i reHuired for o%e tri"# oper!tio" SI i !oci!ted ;ith the DS i" tri"# oper!tio"'DI6 Deti"!tio" I"deD re#iter i !)o reHuired for o%e tri"# oper!tio"' DI i !oci!ted ;ith the ES i" tri"# oper!tio"'The SI !"d the DI re#iter %!y !)o &e ued to !cce d!t! tored i" !rr!yPoi"ter !"d I"deD Re#iter8/14/15 348086 Arcitecture (continued!) Are Addre re#iterStore the %e%ory !ddree of i"tructio" !"d d!t!Me%ory Or#!"iK!tio" ?0 &it !ddre )i"e !ddree ( M* of %e%ory E!ch &yte i" %e%ory h! ! ?0 &it !ddre Addree !re eDpreed ! 5 heD di#it fro% 00000 . 44444 Pro&)e%6 ?0 &it !ddree !re TOO *I5 to fit i" (6 &it re#iterL So)utio"6 Me%ory Se#%e"tA e#%e"t "u%&er i ! (6 &it "u%&erSe#%e"t "u%&er r!"#e fro% 0000 to 4444*)oc> of 648 065=5M62 0i'e ?(62co"ecuti:e %e%ory &yte9ithi" ! e#%e"t= ! p!rticu)!r %e%ory )oc!tio" i pecified ;ith !" offetA" offet !)o r!"#e fro% 0000 to 4444Se#%e"t Re#iter . CS= DS= SS !"d ES8/14/15 358086 Arcitecture (continued!) Me%ory p!ce i di:ided i"to o:er)!ppi"# e#%e"tE!ch e#%e"t i of 64 8&yteSe#%e"t !ddre &e#i" !t !" !ddre th!t i di:ii&)e &y (6(0 or (0(6Se#%e"t re#iter co"t!i" the t!rti"# !ddre of ! e#%e"t'(6 &it ;ord ;i)) &e tored i" t;o co"ecuti:e %e%ory )oc!tio"'If firt &yte of the d!t! i tored !t !" e:e" !ddre= 8086 re!d the e"tire ;ord i" o"e oper!tio"'ED!%p)e if the (6 &it d!t! ?60A/ i tored !t e:e" !ddre 005?0/= the" for i"tructio" MO, *7= B005?0C=8086 re!d the firt &yte !"d tore the d!t! i" *L !"d re!d the eco"d &yte !"d tore the d!t! i" */'*L " 0005?02 */ "0005?(2Se#%e"ted Me%ory Architecture8/14/15 368086 Arcitecture (continued!) If the firt &yte of d!t! i tored !t !" odd !ddre= 8086 "eed t;o oper!tio" to re!d the (6 &it d!t!'ED!%p)e if the (6 &it d!t! 45?0/ i tored !t odd !ddre 005?(/= the" for i"tructio" MO, *7= B005?(C=I" firt oper!tio"= 8086 re!d the (6 &it d!t! fro% the 005?0 )oc!tio" !"d tore the d!t! of 005?( )oc!tio" i" re#iter *L !"d dic!rd the d!t! of 005?0 )oc!tio"'I" eco"d oper!tio"= 8086 re!d the (6 &it d!t! fro% the 005?? )oc!tio" !"d tore the d!t! of 005?? )oc!tio" i" re#iter */ !"d dic!rd the d!t! of 005?M )oc!tio"'8/14/15 378086 Arcitecture (continued!) (M* Me%ory Sp!ce di:ided i"to "o".o:er)!ppi"# e#%e"t #eg$1#eg$2#eg$3#eg$4#eg$5#eg$6#eg$7#eg$8#eg$15#eg$1664 %&&&&&&&FFFF1&&&&1FFFF2&&&&2FFFFEFFFFFFFFF8/14/15 388086 Arcitecture (continued!) Segmented memor' addressing( !)so$ute !ddress * Four )it $e+t shi+ted1,-)it segment .a$ueadded to a 1,-)it o/set 00000100002000030000400005000060000700008000090000A0000&0000'0000(0000)0000*0000#tarting Addre++ o, eac

+eg-ent1 .& .e-or/ #0ace0&&&(&&&&0&&&(FFFF0&&&(&20&Seg!ddr(1/set8/14/15 398086 Arcitecture (continued!) The *I- h! ! dedic!ted !dder for deter%i"i"# Phyic!) %e%ory !ddreePhyic!) Me%ory Addre 5e"er!tio"Ph'sica$ !ddress 22& Bits)!dder1/set 3a$ueor E/ecti.e address 21, )its)Segment egister 21, )its) &&&&8/14/15 408086 Arcitecture (continued!) Phyic!) Me%ory Addre 5e"er!tio"Lo#ic!) Addre i pecified ! Se#%e"t6OffetPhyic!) !ddre i o&t!i"ed &y hifti"# the e#%e"t !ddre 4 &it to the )eft !"d !ddi"# the offet !ddreThu the phyic!) !ddre of the )o#ic!) !ddre A44*648A? iA44*0 I 48A? A18??00(0 (000 (00( (00( 00(00000 (((( (0(0 0(00 (0((00(0 (000 0(00 0(((8/14/15 418086 Arcitecture (continued!) O:er)!ppi"# e#%e"t8/14/15 428086 Arcitecture (continued!) /# -ven though addresses associated Eith the instructions are /6 bits only' alloEs the memory capacity to be /M"># More than one &ode' )ata or !tack segment can be used $or programs more than 63+" long#C# 0acilitates' use o$ separate memory areas $or a program' its data and the stack#3# Permit a program and(or its data to be put into di$$erent areas o$ memory each time the program is e5ecuted#Ad:!"t!#e of ui"# Se#%e"t Re#iter8/14/15 438086 Arcitecture (continued!) Sep!r!tio" of ! pro#r!%G Code= D!t! !"d St!c> e#%e"t N Pro#r!% re)oc!tio" ui"# the CS re#iter8/14/15 448086 Arcitecture (continued!) 4)!#C!rry f)!#P!rity f)!#AuDi)i!ry f)!#Oero f)!#O:erf)o; f)!#Directio" f)!#I"terrupt e"!&)eTr!p f)!#Si#" f)!#6 . t!tu f)!#M . co"tro) f)!#8/14/15 458086 Arcitecture (continued!) !tatus or &onditional $lags, *hese are set according to the results o$ the arithmetic or logic operations#Feed not be altered by the user#&ontrol $lags, Bsed to control some operations o$ the MPB# *hese $lags are to be set by the user' in order to achieve some speci$ic purposes#4)!#8/14/15 468086 Arcitecture (continued!) C4 0c!rry2 Co"t!i" c!rry fro% )eft%ot &it fo))o;i"# !rith%etic= !)o co"t!i" )!t &it fro% ! hift or rot!te oper!tio"'P4 0p!rity2 I"dic!te the "u%&er of ( &it th!t reu)t fro% !" oper!tio"'0(@e:e"2A4 0!uDi)i!ry c!rry2 Co"t!i" c!rry out of &it M i"to &it 4 for peci!)iKed !rith%etic 0*CD2'O4 0Kero2 I"dic!te ;he" the reu)t of !rith%etic or ! co%p!rio" i Kero' 0(@ye2S4 0i#"2 Co"t!i" the reu)ti"# i#" of !" !rith%etic oper!tio" 0(@"e#!ti:e2O4 0o:erf)o;2 I"dic!te o:erf)o; of the )eft%ot &it duri"# !rith%etic'St!tu or Co"ditio"!) or Co"ditio" Code 4)!#8/14/15 478086 Arcitecture (continued!) D4 0directio"2 I"dic!te )eft or ri#ht for %o:i"# or co%p!ri"# tri"# d!t!'I4 0i"terrupt2 I"dic!te ;hether eDter"!) i"terrupt !re &ei"# proceed or i#"ored'T4 0tr!p2 Per%it oper!tio" of the proceor i" i"#)e tep %ode'Co"tro) f)!#6 8/14/15 488086 Arcitecture (continued!) Au%e th!t the pre:iou i"tructio" perfor%ed the fo))o;i"# !dditio"=Exam4$e(((0 0(0( 0(0( 0(0(0(0( 00(( 00(0 0(00(00( 00(0 00(( 000(SF= ZF=PF= CF=AF=OF=0 000 00 (00( 0(00 0(0(00(( (0(0 0(0( 0(000((0 00(( (00( (00( 0(0(SF= ZF=PF= CF=AF=OF=1 01 0108/14/15 498086 Arcitecture (continued!) O,ER,IE9IF*%)B&*I%F *% 80868086 A&=I*-&*B-A))-!!IF: M%)-!8086 IF!*B&*I%F !-*A!!-M"L- )I-&*ID-!A!!-M"L9 LAF:BA:- P%:AMMIF:M%)BLA P%:AMMIF:!*A&+!P%&-)B-!MA&%!IF*-BP*! AF) IF*-BP* !-DI&- %B*IF-!"9*- AF) !*IF: P%:AMMIF:8/14/15 50ADDRESSIN5 MODES8/14/15 51,!riou %ethod ued to !cce i"tructio" oper!"d i c!))ed ! Addrei"# Mode5e"er!) I"tructio" 4or%!tOper!"d %!y &e co"t!i"ed i" Re#iter= Me%ory I$O port'Three &!ic %ode of !ddrei"# !re I%%edi!te Re#iterMe%oryADDRESSIN5 MODES1PC1DE 14erand 14erand8/14/15 52Addre++ing .ode+ED!%p)e6 If CS@?446h N IP@6M4Ah= ho; theJ (. The )o#ic!) !ddre ?. The offet !ddre M. The phyic!) !ddre 4. The )o;er r!"#e of the e#%e"t 5. The upper r!"#e of the e#%e"t M. The phyic!) !ddre6 ?. The offet !ddre i the co"te"t of the IP re#iter ;hich i6 6M4A (. The )o#ic!) !ddre i the CS6 IP co"te"t ;hich i6 ?44666M4A So)utio"6 8/14/15 53Addre++ing .ode+ (continued...)8086 Addrei"# %ode . c)!ified !ccordi"# to f)o; of i"tructio" eDecutio"A' SeHue"ti!) f)o; i"tructio" Arith%eticLo#ic!) D!t! tr!"ferProceor co"tro)*' Co"tro) tr!"fer i"tructio"INTCALLRET+-MP8/14/15 54Addre++ing .ode+ (continued...)A' SeHue"ti!) f)o; i"tructio" (' I%p)ied Addrei"#%ode?' I%%edi!te !ddrei"# %odeM' Direct !ddrei"# %ode4' Re#iter !ddrei"# %ode5' Re#iter I"direct !ddrei"# %ode6' I"deDed !ddrei"# %odeA' Re#iter Re)!ti:e !ddrei"# %ode8' *!ed I"deDed !ddrei"# %ode1' Re)!ti:e *!ed I"deDed !ddrei"# %ode*' Co"tro) tr!"fer i"tructio"(' I"tere#%e"t Direct !ddrei"# %ode?' I"tere#%e"t I"direct !ddrei"# %odeM' I"tr! e#%e"t Direct !ddrei"# %ode4' I"tr! e#%e"t I"direct !ddrei"# %ode8/14/15 55Addre++ing .ode+ (continued...)(' I%p)ied Addrei"# $ The d!t! :!)ue$d!t! !ddre i i%p)icit)y !oci!ted ;ith the i"tructio"' AAA AAS AAM AAD DAA DAS 7LATSeHue"ti!) 4)o; I"tructio"8/14/15 56Addre++ing .ode+ (continued...)?' I%%edi!te Addrei"# E D!t! $ oper!"d i p!rt of the i"tructio"MO, A7= ?5*4 JMO, AL= 8E/ JM' Direct Addrei"# E D!t! i poi"ted &y (6 &it offet :!)ue pecified i" the i"tructio"MO, A7= B5000/C JSeHue"ti!) 4)o; I"tructio"B AL8E CB A7?5*4 / C1, Bit Data5 Bit DataEffecti:e Addr @ 5000SourceDestinationPhyAddr @ (0/PDS I 5000/8/14/15 57Addre++ing .ode+ (continued...)4' Re#iter Addrei"# E D!t! i i" the re#iter pecified i" the i"tructio"MO, *7= A7 No PhyAddr= i"ce d!t! i i" re#r (6 *IT Oper!"d Re#iter .8 *IT Oper!"d Re#iter .A7= *7= C7=D7= SI= DI= SP= *P AL= A/= *L= */= CL= C/= DL= D/8/14/15 58Addre++ing .ode+ (continued...)5' Re#iter I"direct Addrei"# E D!t! i poi"ted &y the offet :!)ue i" the re#iter= pecified i" the i"tructio"MO, A7= B*7CDef!u)t Se#%e"t . DS or ESOffet E *7 or SI or DIPhyAddr @ DSES*7SIDII(0/PIfDS@5000/J*7@(044J !"d PhyAddr @ (0/P5000/ I (044/ @ 5(044/The" Effecti:eAddr @ (0448/14/15 59Addre++ing .ode+ (continued...)6' I"deDed Addrei"# D!t! i poi"ted &y the offet i" the i"deD re#iter pecified i" the i"tructio"DS i the def!u)t e#%e"t re#iter for SI !"d DIMO, A7= BSICD!t! i !:!i)!&)e i" the )o#ic!) !ddre BDS6SICPhyAddr @DSSIDII(0/PEffecti:e Addr @ BSIC8/14/15 60Addre++ing .ode+ (continued...)A' Re#iter Re)!ti:e Addrei"# D!t! i poi"ted &y the u% of 8 &it or (6 &it dip)!ce%e"t pecified i" the i"tructio" p)uOffet pecified i" the re#iter E*7= *P= SI= DIDef!u)t e#%e"t re#iter E DS= ESMO, A7= 50/ B*7CEffecti:eAddr @ 50/IB*7CPhyAddr @ DSES*7*PSIDII(0/P8/14/15 61Addre++ing .ode+ (continued...)8' *!ed I"deDed Addrei"# D!t! i poi"ted &y co"te"t of &!e re#iter pecified i" the i"tructio" p)uCo"te"t of i"deD re#iter pecified i" the i"tructio"Def!u)t e#%e"t re#iter E DS= ESMO, A7= B*7C BSICEffecti:eAddr @*7*PSIDIIPhyAddr @ *7*PSIDII(0/PDSESI8/14/15 62Addre++ing .ode+ (continued...)1' Re#iter Re)!ti:e Addrei"# D!t! i poi"ted &y the u% of 8 &it or (6 &it dip)!ce%e"t pecified i" the i"tructio" p)uOffet pecified i" the &!e re#iter E*7= *P p)uOffet pecified i" the i"deD re#iter E SI= DIDef!u)t e#%e"t re#iter E DS= ESEffecti:eAddr @*7*PSIDIIPhyAddr @ *7*PSIDII(0/PDSESI8 &it(6 &itI8 &it(6 &itI8/14/15 63Addre++ing .ode+ (continued...)I"tr!e#%e"t Direct Addrei"# E Co"tro) tr!"fer i"tructio" !"d Addre ;here co"tro) i tr!"ferred )ie i" the same e#%e"tI%%edi!te dip)!ce%e"t :!)ue pecified i" i"tructio"Dip)!ce%e"t i ;'r't IP re#iter co"te"tShort jump E i'e 0.?A Q d Q I?A.(2 @ 0.(?8 Q d Q I(?A 2@ 0.80/ Q d Q IA4/ 2Long jump E i'e 0.?(5 Q d Q I?(5 2 @ 0.M?A68 Q d Q I M?A68 2ED!%p)e6 +MP S/ORT LA*EL LA*EL )ie ;ithi" 0.(?8 to I(?A 2 fro% the curre"t IP co"te"tCo"tro) Tr!"fer I"tructio"8 &it i#"ed dip)!ce%e"t FdG(6 &it i#"ed dip)!ce%e"t FdG8/14/15 64Addre++ing .ode+ (continued...)Code Se#%e"tCS6 M000/ IP6 0000/I"tr!e#%e"t Direct Addrei"# EShort +u%p orNe!r +u%pThe Ru%p deti"!tio" i i" the !%e code e#%e"tTo eDecute the Ru%p= o")y the co"te"t of I"tructio" Poi"ter 0IP2 re#iter "eed to &e ch!"#ed +MP NE7T CS6 M000/ IP6 00(0/INC *7NE7T6CS6 M000/ IP6 00?0/8/14/15 65Addre++ing .ode+ (continued...)I"tr!e#%e"t I"direct Addrei"# E Co"tro) tr!"fer i"tructio" !"d Addre ;here co"tro) i tr!"ferred )ie i" the same e#%e"tDip)!ce%e"t :!)ue pecified i"direct)y E ! co"te"t of ! re#iter or ! %e%ory )oc!tio" i" the i"tructio"-ed i" u"co"ditio"!) i"tructio"ED!%p)e6 +MP B*7C Effecti:eAddr @ B*7CPhyAddr @ (0/PBCSCIB*7C8/14/15 66Addre++ing .ode+ (continued...),&&&&,FFFFCode Se#%e"tDisplacement from current location:675AB61000 = !65AB "= !#60#710*7 @ A5A*/CS @ 6000/Effecti:e Addr @PhyAddr @I"tr!e#%e"t I"direct Addrei"#,1&&&+MP B*7C,60!BMO, A7= *7B*7C(0/PBCSCIB*7C8/14/15 67Addre++ing .ode+ (continued...)I"tere#%e"t Direct Addrei"# E Co"tro) tr!"fer i"tructio" !"d Addre ;here co"tro) i tr!"ferred )ie i" the different e#%e"t*r!"chi"# fro% o"e code e#%e"t to !"other code e#tCS !"d IP of deti"!tio" !ddre !re pecified i" i"tructio"ED!%p)e6 +MP 5000/6 ?000/ Effecti:eAddr @ Phyic!)Addr @?000/(0/ P 5000/ I ?000/ @ 5?000/8/14/15 68Addre++ing .ode+ (continued...)Lo"# +u%p or 4!r +u%pThe Ru%p deti"!tio" i i" ! differe"t code e#%e"tTo eDecute the Ru%p= 8086 h! to ch!"#e the co"te"t of Code Se#%e"t 0CS2 re#iter !"d IP re#iter Co$e Se%ment ACS: &000" 'P: 0000"()P *+,-'*C B,CS: &000" 'P: 0010"*+,-1CS: 6000" 'P: 0050"Co$e Se%ment BI"tere#%e"t Direct Addrei"#CS: 6000" 'P: 0000"8/14/15 69Addre++ing .ode+ (continued...)I"tere#%e"t I"direct Addrei"# E Co"tro) tr!"fer i"tructio" !"d Addre ;here co"tro) i tr!"ferred )ie i" the different e#%e"t*r!"chi"# fro% o"e code e#%e"t to !"other code e#tCS !"d IP of deti"!tio" !ddre !re pecified i"direct)y i" the i"tructio"St!rti"# !ddre of ! %e%ory &)oc> pecified i" i"t"0i'e2 co"te"t of ! %e%ory &)oc> co"t!i"i"# 4 &yteIP0LS*2= IP0MS*2= CS0LS*2= CS0MS*2ED!%p)e6 +MP B?000/C Effecti:eAddr @ ?000/ Phyic!)Addr @ (0/ P DS I ?000/8/14/15 70Addre++ing .ode+ (continued...)I"tere#%e"t I"direct Addrei"#)SB .SB'PCS78P 92&&&":DS * ,&&&",&&&&,FFFF,2&&&,2&&2,2&&3,2&&1,&1&&,,";;"&&"6&"6&&&&6FFFF6;;,,00 70// 668/14/15 71Addre++ing .ode+ (continued...)O,ER,IE9IF*%)B&*I%F *% 80868086 A&=I*-&*B-A))-!!IF: M%)-!8086 INSTR-CTION SETA!!-M"L- )I-&*ID-!A!!-M"L9 LAF:BA:- P%:AMMIF:M%)BLA P%:AMMIF:!*A&+!P%&-)B-!MA&%!IF*-BP*! AF) IF*-BP* !-DI&- %B*IF-!"9*- AF) !*IF: P%:AMMIF:8/14/15 728086 INSTR-CTION SET8/14/15 73(' D!t! Copy $ Tr!"fer I"tructio"?' Arith%etic I"tructio"M' Lo#ic!) I"tructio"4' Shift !"d Rot!te I"tructio"5' Stri"# M!"ipu)!tio" I"tructio"6' *r!"ch !"d Loop I"tructio"5' 4)!# M!"ipu)!tio" I"tructio"6' M!chi"e Co"tro) I"tructio"8086 INSTR-CTION SET8/14/15 74In+truction #et (continued...)(' DATA TRANS4ER INSTR-CTIONSTr!"fer d!t! fro% o"e re#iter or %e%ory )oc!tio" to !"other re#iter or %e%ory )oc!tio"Source6 Se#'Re#iter $ 5e"'Re#iter $Me%')oc!tio"Deti"!tio"6 Se#'Re#iter $ 5e"'Re#iter $Me%')oc!tio"Note6 *oth Source !"d Deti"!tio" c!""ot &e Me%'Loc"8/14/15 75In+truction #et (continued...)5e"er!) purpoe &yte or ;ord tr!"fer i"tructio"MO, Copy &yte or ;ord fro% pecified ource to pecified deti"!tio"P-S/Copy pecified ;ord to top of t!c>POPCopy ;ord fro% top of t!c> to pecified )oc!tio"7C/5EDch!"#e &yte or eDch!"#e ;ord7LATTr!")!te ! &yte i" AL ui"# ! t!&)e i" %e%orySi%p)e i"put !"d output port tr!"fer i"tructio"INCopy ! &yte or ;ord fro% pecified port to !ccu%u)!torO-TCopy ! &yte or ;ord fro% !ccu%u)!tor to pecified port8/14/15 76In+truction #et (continued...)Speci!) !ddre tr!"fer i"tructio"6LEALo!d effecti:e !ddre of oper!"d i"to pecified re#iterLDSLo!d DS re#iter !"d other pecified re#iter fro% %e%oryLESLo!d ES re#iter !"d other pecified re#iter fro% %e%ory4)!# tr!"fer i"tructio"LA/4Lo!d 0copy to 2 A/ ;ith the )o; &yte of the f)!# re#iterSA/4Store 0copy2 A/ re#iter to )o; &yte of f)!# re#iterP-S/4Copy f)!# re#iter to top of t!c>POP4Copy ;ord !t top of t!c> to f)!# re#iter8/14/15 77 In+truction #et (continued...)I"tructio"Co%%e"tMO, DS= 5000/Not ,!)idJ i%%edi!te !ddrei"# ;ith e#%e"t re#iter "ot per%ittedMO,A7= 5000/JMO,DS= A7MO,A7= B?000/CMO,A7= BSICMO,A7 = 50/B*7CP-S/A7P-S/DSP-S/B5000/CI%%edi!te !ddrei"#Re#iter !ddrei"#Direct !ddrei"#I"direct !ddrei"#$ I"deDed !ddrRe#iter re)!ti:e Puh /i#her *yte A/ i"to the )oc!tio" poi"ted &y SP !"d Puh Lo;er *yte AL i"to the )oc!tio" poi"ted &y SP.(J SPSP.? Co"te"t of )oc' 5000/ fo))o;ed &y500(/ i" DS !re puhed i"to the t!c>8/14/15 78 In+truction #et (continued...)(o not clic2 te -ou+e to +ee te ,ull ani-ationED!%p)e ( 6P8"o;i"# th!t= DS@?04?/'SI@500/=A7@?(4E=MO, BSIC=A7 (#320424(#3204204#I350020920420921421 4)A4 A54)218/14/15 79 In+truction #et (continued...)77?0000?44447777?444E?444DPhyic!) AddreSt!c> Se#%e"tP-S/ A7?444C?444*8844SP @ 444ESS @?000 4444 444D444C 444*A/ AL88 44ED!%p)e ? 68/14/15 80 In+truction #et (continued...)I"tructio"Co%%e"t(' POPA7?' POPDSM' POPB5000/C(' 7C/5B5000/C= A7?' 7C/5*7= A7(' INAL= 0M/?' INA7= D7M' MO,D7= 0800/INA7= D7 EDch!"#e d!t! &$; A7 N %e%')oc B5000/C i" d!t! e#'EDch!"#e d!t! &$; A7 N *70M/ i 8.&it port !ddreBD7C i 6.&it port !ddre Pop t!c> top co"te"t poi"ted &y SP i"to Lo;er *yte of the re#iter $ %e%' )oc!tio" !"d "eDt &yte i" the t!c> i"to /i#her *yte of the re#iter $ %e%' )oc!tio" J SPSPI? Co"te"t of t!c> top !"d "eDt &yte i" the t!c>!re popped i"to 5000/ N 500(/ i" DS8/14/15 81 In+truction #et (continued...)?0000?4444?444E?444DPhyic!) Addre77St!c> Se#%e"tPOPA7?444C?444*8844SP @ 444ESS @?000 4444 444D444C 444*A/ ALDD DD 88 44ED!%p)e M 68/14/15 82 In+truction #et (continued...)I"tructio"Co%%e"t(' O-T0M/= AL?' O-TD7= A7M' MO,D7= 0M00/ O-T D7= A7(' Se"d d!t! i" AL to ! port ;hoe !ddre i 0M/?' Se"d d!t! i" A7 to ! port ;hoe !ddre i i" D7M'Se"d d!t! i" A7 to ! port ;hoe !ddre i i" D7= et ! 0M00/8/14/15 83 In+truction #et (continued...)7LAT c!))ed tr!")!te i"tructio"'The oper!tio" of 7LAT i to ch!"#e the :!)ue of AL ;ith the %e%ory poi"ted to &y 0ALI*72,or te e6a-0le +lide+ do not clic2 te -ou+e to +ee te ,ull ani-ation.e-7A58&9: A5A53dataA53dddd&93----data dddd8----ED!%p)e 4 68/14/15 84 In+truction #et (continued...) More c)e!r)y the 7LAT i"tructio" co":ert the co"te"t of re#iter AL= ui"# ! t!&)e'It &e#i""i"# !ddre i co"t!i"ed i" re#iter *7' The co"te"t of re#iter AL i i"terpreted ! ! re)!ti:e !ddre i" the t!&)e' 7LAT i the o")y i"tructio" th!t !dd 8 &it "u%&er to (6 &it "u%&erL7LAT doe "ot Affect the f)!#''8/14/15 85 In+truction #et (continued...)Pro#r!% ui"# 7LAT Co%%e"tMO,A7= SE5 TA*LEMO,DS= A7MO,AL= CODEMO,*7= O44SET TA*LE7LAT(' Addre of e# co"t!i"i"# L-T i tored i" DS?' Code of >ey preed tr!"ferred to ALM' Offet of code L-T i"to *7ued ! *!e Addr &y 7LATEffectAddr @(0PSE5 I *7IAL4' AL B(0PSE5 I *7IALC0ser1B20F3161e4s5#55 1BD interface5056 CP0A.7se%Displa4B,.0- )em6Se%.0-

1 # &/ 56757ED!%p)e 5 68/14/15 868086 In+truction #et (continued...)I"tructio"Co%%e"t(' LEA*7= ADR?' LEASI= ADRB*7CM' LDS*7= 5000/4' LES*7= 5000/(' *7Offet 0ADR2?' SIOffet 0ADR2 I B*7CNote6 Effecti:e Addre i !)o c!))ed ! Offet M' *70L*2 B5000/C*70/*2B500(/CDS$ES0L*2 B500?/CDS$ES0/*2 B500M/C8/14/15 878086 In+truction #et (continued...)I"tructio"Co%%e"t(' LA/4?' SA/4M' P-S/44' POP4(' A/B4)!# 0L*2C?' Set$Reet !)) co"ditio" code f)!# eDcept O:erf)o; f)!#M' SP SP.?J for e!ch P-S/ oper!tio"JPuh 4)!#Re#r0/*2 fo))o;ed &y 4)!#Re#r0L*2 i"to the t!c>SS6SP4' SP SPI?J for e!ch POP oper!tio"JPop i"to 4)!#Re#r0L*2 fo))o;ed i"to 4)!#Re#r0/*2 fro% t!c> SS6SP8/14/15 888086 In+truction #et (continued...)(' D!t! Copy $ Tr!"fer I"tructio"?' Arith%etic I"tructio"M' Lo#ic!) I"tructio"4' Shift !"d Rot!te I"tructio"5' Stri"# M!"ipu)!tio" I"tructio"6' *r!"ch !"d Loop I"tructio"5' 4)!# M!"ipu)!tio" I"tructio"6' M!chi"e Co"tro) I"tructio"8086 INSTR-CTION SET8/14/15 898086 In+truction #et (continued...)?'ARIT/METIC INSTR-CTIONSPerfor% Additio"= Su&tr!ctio"= Mu)tip)ic!tio"= Di:iio"= I"cre%e"t= Decre%e"t !)o"# ;ith ASCII !"d Deci%!) !dRut%e"tOper!"d i" 6 I%%edi!te $ Re#iter$ Me%ory )oc"'Note6 4)!# &it i" f)!# re#iter !re !ffected8/14/15 908086 In+truction #et (continued...)Additio" i"tructio"6ADDAdd pecified &yte to &yte or pecified ;ord to ;ordADCAdd &yte I &yte I c!rry f)!# 0or2;ord I ;ord I c!rry f)!#INCI"cre%e"t pecified &yte or pecified ;ord &y (AAAASCII !dRut !fter !dditio"DAADeci%!) 0*CD2 !dRut !fter !dditio"Mu)tip)ic!tio" i"tructio"M-LMu)tip)y u"i#"ed &yte &y &yte or u"i#"ed ;ord &y ;ordIM-LMu)tip)y i#"ed &yte &y &yte or i#"ed ;ord &y ;ordAAMASCII !dRut !fter %u)tip)ic!tio"8/14/15 918086 In+truction #et (continued...)Su&tr!ctio" I"tructio"6S-*Su&tr!ct &yte fro% &yte or ;ord for ;ordf)!# fro% ;ord'S**Su&tr!ct &yte !"d c!rry f)!# fro% &yte or ;ord !d c!rryDECDecre%e"t pecified &yte or pecified ;ord &y (NE5Ne#!te E i":ert e!ch &it of ! pecified &yte or ;ord !"d !dd (' 0for% ?G co%p)e%e"t2CMPCo%p!re t;o pecified &yte or t;o pecified ;ordAASASCII !dRut !fter u&tr!ctio"DASDeci%!) 0*CD2 !dRut !fter u&tr!ctio"8/14/15 928086 In+truction #et (continued...)Di:iio" I"tructio"6DI,Di:ide u"i#"ed ;ord &y &yte or u"i#"ed D9 &y ;ordIDI,Di:ide i#"ed ;ord &y &yte or i#"ed D9 &y ;ordAADASCII !dRut &efore di:iio"C*94i)) upper &yte of ;ord ;ith copie of i#" &it of )o;er &yteC9D4i)) upper ;ord of D9 ;ith i#" &it of )o;er ;ord8/14/15 938086 In+truction #et (continued...)ADD Add(' ADDA7= 0(00/?' ADDA7= *7M' ADDA7= BSIC4' ADDA7= B5000/C5' ADDB5000/C= 0(00/6' ADD0(00/(' I%%edi!te !ddrei"#?' Re#iter !ddrei"#M' I"deDed $ i"direct !ddrei"#4' Direct !ddrei"#5' I%%edi!te !ddrei"# 6' I%p)icit !ddrei"# 0deti"!tio" A72 N i%%edi!te !ddrei"#Reu)t i i" deti"!tio" oper!"dA)) the co"ditio" code f)!# !re !ffectedCo"te"t of e#%e"t re#iter c!""ot &e !ddedMe%ory to %e%ory !dditio" "ot poi&)e Source 6 Re#r $ Me%'Loc" $ i%%edi!te Deti"!tio" 6 Re#r $ Me%'Loc" 8/14/15 948086 In+truction #et (continued...)ADDC Add ;ith c!rry(' ADC0(00/?' ADCA7= *7M' ADCA7= BSIC4' ADCA7= B5000/C5' ADCB5000/C= 0(00/6' ADD0(00/(' I%%edi!te !ddrei"#?' Re#iter !ddrei"#M' I"deDed $ i"direct !ddrei"#4' Direct !ddrei"#5' I%%edi!te !ddrei"# 6' I%p)icit !ddrei"# 0deti"!tio" A72 N i%%edi!te !ddrei"#S!%e ! ADD i"tructio"Add the c!rry f)!# &it ;ith the reu)t'A)) the co"ditio" code f)!# !re !ffected Source 6 Re#r $ Me%'Loc" $ i%%edi!te Deti"!tio" 6 Re#r $ Me%'Loc" 8/14/15 958086 In+truction #et (continued...)INC I"cre%e"t(' INCA7?' INCB*7CM' INCB5000/C(' Re#iter !ddrei"#?' Re#iter i"direct !ddrei"#M' Direct !ddrei"#Re#iter$Me%'co"te"t i"cre%e"ted $ decre%e"ted &y (A)) the co"ditio" code f)!# !re !ffected eDcept C4I%%edi!te oper!"d c!""ot &e i"cre%e"tedDEC Decre%e"t(' DECA7?' DECB*7CM' DECB5000/C(' Re#iter !ddrei"#?' Re#iter i"direct !ddrei"#M' Direct !ddrei"#8/14/15 968086 In+truction #et (continued...)S-* Su&tr!ct(' S-*A7= 0(00/?' S-*A7= *7M' S-*A7= BSIC4' S-*A7= B5000/C5' S-*B5000/C= 0(00/Det"'oper!"d Det"'oper!"d E Source oper!"dA)) the co"ditio" code f)!# !re !ffected(' I%%edi!te !ddrei"#?' Re#iter !ddrei"#M' I"deDed $ i"direct !ddrei"#4' Direct !ddrei"#5' I%%edi!te !ddrei"# Source 6 Re#r $ Me%'Loc" $ i%%edi!teDeti"!tio" 6 Re#r $ Me%'Loc" 8/14/15 978086 In+truction #et (continued...)S** Su&tr!ct ;ith &orro;(' S**A7= 0(00/?' S**A7= *7M' S**A7= BSIC4' S**A7= B5000/C5' S**B5000/C= 0(00/Det"'oper!"d Det"'oper!"d E 0Source oper!"d I C42A)) the co"ditio" code f)!# !re !ffected(' I%%edi!te !ddrei"#?' Re#iter !ddrei"#M' I"deDed $ i"direct !ddrei"#4' Direct !ddrei"#5' I%%edi!te !ddrei"# Source 6 Re#r $ Me%'Loc" $ i%%edi!teDeti"!tio" 6 Re#r $ Me%'Loc" 8/14/15 988086 In+truction #et (continued...)CMP Co%p!re(' CMPA7= 0(00/?' CMP*7= 0(00/M' CMP*7= BSIC4' CMP*7= C75' CMPB5000/C= 0(00/Det"'oper!"d E Source oper!"d Reu)t "ot tored !"y;hereA)) the co"ditio" code f)!# !re !ffectedO4@(0eHu!)2J C3@( 0rc S det"2J C3 @0= O4@0 0rc Q det"2(' I%%edi!te !ddrei"#?' I%%edi!te !ddrei"#M' I"deDed $ i"direct !ddrei"#4' Re#iter !ddrei"#5' Direct$I%%edi!te !ddrei"# Source 6 Re#r $ Me%'Loc" $ i%%edi!teDeti"!tio" 6 Re#r $ Me%'Loc" 8/14/15 998086 In+truction #et (continued...)EDecuted !fter ADDADD %ut h!:e !dded t;o ASCII "oGN reu)t i i" ALAAA co":ert AL to u"p!c>ed deci%!) di#it0I%p)icit !ddrei"#2!" 25 )its)!#"Ied *CD "u%&erCo":ert p!c>ed *CD "u%&er to u"p!c>ed *CD "oGReu)t h! to &e i" ALDAA Deci%!) AdRut Accu%u)!tor!" 25 )its)!#"I hellostkST*=T>mo ax! hellodat;ax ?@@ data segment start addressmo ds! ax;ds ?@@ initiali3e data segment registermo ah! dos9print ;ah ?@@ # DOS 41h string "unctionmo dx!OAAS$T strng ;dx ?@@ 7eginning o" stringint 41h ;DOS serice interruptmo ax! Bc00h ;ax ?@@ Bc DOS 41h program halt "unctionint 41h ;DOS serice interrupthellocod$'DS$'D ST*=T8/14/15 160 A++e-;l/ 5anguage =rogra--ing (continued...)3ET ANOT/ER 9A3 TO DE4INE SE5S;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; .se .stack!.data!.code directies to de"ine segment t8pes ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.stack 100h; resere 456 78tes o" stack space

.data dos9print $:. #;de"ine a constantstrng D(-Hello World-!1;!10!- !e%&)er "eed hi"t fro% the pro#r!%%er J )i>e .Stor!#e reHuired for ! p!rticu)!r co"t!"t or ! :!ri!&)e=Lo#ic!) "!%e of the e#%e"t=Type of the differe"t routi"e !"d %odu)e=E"d of fi)e= etc'8/14/15 166 A++e-;ler> 5in2er>Relocator (continued...)An assembler translates the assembly language program into machine language programAssembly language program source codesMachine language program object codesAssembler converts Source code into Object codeLinker converts Object code into executable codeASSEM*LER8/14/15 167 A++e-;ler> 5in2er>Relocator (continued...)Assembler Eorks in passes,/# In the $irst pass' it determines the displacement o$ the named data items' the o$$set o$ labels etc# and puts this in$ormation to in a symbol table#># In the second pass' it produces the binary codes $or each instructions and inserts the o$$sets etc# that it calculated in the $irst pass#C# It generates tEo $iles namely obKect $ile 1#%"A2 and assembler list $ile 1#L!*2#ASSEM*LER8/14/15 168 A++e-;ler> 5in2er>Relocator (continued...)Linker is a program used to Koin several obKect $iles into one large obKect $ile#/# 6hile Eriting large programs it is good to divide them into modules so that each modules can be Eritten' tested' debugged independently and then use linker to combine the modules to $orm the actual program#># It produces tEo $iles - link file Ehich contains the binary codes o$ all the combined modules and a link map file Ehich contains the address in$ormation about the linked $iles#LIN8ER8/14/15 169 A++e-;ler> 5in2er>Relocator (continued...)A locator is the program used to assign the speci$ic addresses o$ Ehere the segments o$ obKect code are to be loaded in to main memory#/# -5amples include -L->"IF Ehich comes Eith the I"M P& )%!#># &onverts #e5e to #bin $iles Ehich has physical addressesLOCATORS8/14/15 170 A++e-;ler> 5in2er>Relocator (continued...)A debugger is the program Ehich alloEs to load the obKect code program in to system memory#/# It alloEs to look at the contents o$ the registers and memory locations a$ter a program is run#># It also alloEs to set breakpoints at any points in the program#C# It alloEs to $ind the source o$ the problem into the program#3# *here are lots o$ debuggers available like "orland *urbo )ebugger' Microso$tGs &ode vieE debugger etc#DE*-55ER8/14/15 171 A++e-;ler> 5in2er>Relocator O,ER,IE9IF*%)B&*I%F *% 80868086 A&=I*-&*B-A))-!!IF: M%)-!8086 IF!*B&*I%F !-*A!!-M"L- )I-&*ID-!A!!-M"L9 LAF:BA:- P%:AMMIF:M%)BLA P%:AMMIF:STAC8SP%&-)B-!MA&%!IF*-BP*! AF) IF*-BP* !-DI&- %B*IF-!"9*- AF) !*IF: P%:AMMIF:8/14/15 172STAC8S8/14/15 173A STAC8 i ! Last(Input()irst(%utput *LI)%+ re!d$;rite %e%ory 0i'e2 d!t! e#%e"tIt i ! top.do;" d!t! tructure= ;hoe e)e%e"t !re !cceed ui"# SS !"d SP re#iterSt!c> poi"ter i decre%e"ted &y ? ;hi)e Fpushing into, the t!c>St!c> poi"ter i i"cre%e"ted &y ? ;hi)e -poping off,the t!c>STAC88/14/15 174 #tac2+ (continued . . .)St!c> i ued to6Store retur" !ddree ;he"e:er ! procedure i c!))edS!:e co"te"t of re#iter $ re#iter t!tu of the proceor ;hi)e c!))i"# ! procedure/o)d d!t! or !ddree th!t ;i)) &e !cted upo" &y the procedureSTAC88/14/15 175 #tac2+ (continued . . .)ASS-MECS6CODE=SS6 STAC8STAC8 SE5MENTSTAC8DATA D940 D-P002STAC8TOP LA*EL9ORDSTAC8ENDSCODE SE5MENTMO, A7= STAC8MO, SS= A7 Ji"iti!)iKe t!c> Se#' Re#r'LEA SP= STAC8TOP Ji"iti!)iKe t!c> poi"ter............ Jpro#r!% i"tructio"CODE ENDSENDINITIALIOIN5 STAC8 MEMOR38/14/15 176 #tac2+ (continued . . .)P-S/ !);!y tr!"fer ? &yteof d!t! to the t!c>'Sy"t!D 6 P-S/ QrcSJ QrcS cou)d &e !"y ? &yte Re#iter or Me%ory )oc!tio" or I%%edi!te :!)ue9he" P-S/ i eDecuted= the %ot i#"ific!"t &yte i tored i" t!c> e#%e"t poi"ted to &y SP.(= !"d the )e!t i#"ific!"t &yte to )oc!tio" poi"ted &y SP.?'STAC8 INSTR-CTIONSP-S/ AND POP8/14/15 177 #tac2+ (continued . . .)SP*&1&&(o not clic2 te -ou+e to +ee te ,ull ani-ationED!%p)e .( 6 Let SS@?000/J SP@(00/= A7@M(4?/=PUS"!%SS*2&&&"31 *2!%31F22&&FD2&&FE2&1&&SP*&&FE SP*&&FD8/14/15 178 #tac2+ (continued . . .)ED!%p)e . ? Au%e SS@?000/=SP@(00/=A7@M(4?/=*7@4(MA/=C7@4444/'Sho; the ch!"#e i" the t!c> !fter eDecuti"# the fo))o;i"# i"tructio"6P-S/ A7P-S/ *7POP C7POP A78/14/15 179 #tac2+ (continued . . .)SS*2&&&"P-S/A7P-S/*7POP C7POP A731!" !#F2B"B#;1 3!FFC" C#FFSS@?000/=SP@(00/=A7@M(4?/=*7@4(MA/=C7@4444/'2&&FE2&&FF2&1&&31F2;13! 2&&FC2&&FD;1 3!%%SP*&&FCh SP*&&FEh SP*&1&&h8/14/15 180 #tac2+ (continued . . .)ED!%p)e ((69rite !" ALP to re:ere tri"# ui"# t!c> oper!tio"'STR D* F/ELLOG=00/ JRE,STR D* ?56 D-P0V2MO,C7= 0000/ Jcou"t "u%&er of &yteLEA SI= STRJLEA DI=RE,STRNE7T.C/AR6MO, AL= BSICCMP AL=00+E NE7TP-S/ A7 Jonl/ care a;out A5INCC7J+MPNE7T.C/ARNE7T6CMP C7=0000/Jcec2 i, c6 30 or te +tring i+ null+E DONE.RE,8/14/15 181 #tac2+ (continued . . .)POPA7MO,BDIC=ALINC DIDEC C7J+MP NE7TDONE.RE,6 MO, BDIC=00J to ter-inate ?it null8/14/15 182 #tac2+ (continued . . .)O,ER,IE9IF*%)B&*I%F *% 80868086 A&=I*-&*B-A))-!!IF: M%)-!8086 IF!*B&*I%F !-*A!!-M"L- )I-&*ID-!A!!-M"L9 LAF:BA:- P%:AMMIF:M%)BLA P%:AMMIF:!*A&+!PROCED-RESMA&%!IF*-BP*! AF) IF*-BP* !-DI&- %B*IF-!"9*- AF) !*IF: P%:AMMIF:8/14/15 183PROCED-RES8/14/15 184 A procedure i ! eHue"ce of i"tructio" ;ritte" to perfor% ! p!rticu)!r t!> Rep)!ci"# ! et of freHue"t)y ued i"tructio" &y ! procedure !:e pro#r!% %e%ory p!ce A CALL i"tructio" i" the %!i" pro#r!% c!ue 8086 to the eDecute the et of i"tructio" co"t!i"ed i" ! procedure A RET i"tructio" !t the e"d of procedure retur" eDecutio" to the "eDt i"tructio" i" the %!i" pro#r!%PROCED-RES 8/14/15 185 =rocedure+ (continued . . .).AI@5I@) AR 'A55I@B =RABRA.'A55=RA')(CR) I@#DRC'DIA@#R)D@)9D .AI@5I@) I@#DRC'DIA@#8/14/15 186 =rocedure+ (continued . . .)8/14/15 187 =rocedure+ (continued . . .) S!:e pro#r!% %e%ory p!ce Pro&)e% c!" &e di:ided i"to %!)) %odu)e A))o; reu!&i)ity of codeDi!d:!"t!#e T!>e %ore ti%e to eDecuteAD,ANTA5ES O4 -SIN5 PROCED-RES8/14/15 188 =rocedure+ (continued . . .) 8086 perfor% the fo))o;i"# oper!tio" ;he" ! CALL i"tructio" i eDecuted(' Store the !ddre of the i"tructio" !fter the CALL i"tructio" o" to the t!c>?' Ch!"#e the co"te"t of I"tructio" Poi"ter 0IP2 re#iter !"d i" o%e c!e the Code Se#%e"t 0CS2 re#iter to co"t!i" !"d poi"t to the t!rti"# !ddre of the procedure8086 CALL INSTR-CTION8/14/15 189 =rocedure+ (continued . . .) Direct Ne!r 0;ithi" e#%e"t2 CALL Direct 4!r 0i"ter e#%e"t2 CALL I"direct Ne!r 0;ithi" e#%e"t2 CALL I"direct 4!r 0;ithi" e#%e"t2 CALLT3PES O4 CALL INSTR-CTION8/14/15 190 =rocedure+ (continued . . .)9he" 8086 doe ! NEAR CALL= it puhe the i"tructio" poi"ter 0IP2 :!)ue 0for the i"tructio" !fter CALL2 o" to the t!c>A RET i"tructio" !t the e"d of ! procedure pop thi :!)ue &!c> to i"tructio" poi"ter 0IP2 to retur" to the c!))i"# pro#r!% 0%!i" pro#r!%2'8086 RET INSTR-CTION8/14/15 191 =rocedure+ (continued . . .)O,ER,IE9IF*%)B&*I%F *% 80868086 A&=I*-&*B-A))-!!IF: M%)-!8086 IF!*B&*I%F !-*A!!-M"L- )I-&*ID-!A!!-M"L9 LAF:BA:- P%:AMMIF:M%)BLA P%:AMMIF:!*A&+!P%&-)B-!MACROSIF*-BP*! AF) IF*-BP* !-DI&- %B*IF-!"9*- AF) !*IF: P%:AMMIF:8/14/15 192MACROS8/14/15 193MACROSA %!cro i the repe!ted)y !ppe!ri"# #roup of i"tructio"= th!ti #i:e" ! "!%e !t the t!rt of the pro#r!%'A %!cro c!" &e defi"ed !"y;here i" ! pro#r!% ui"# the directi:e MACRO !"d ENDMDefi"i"# ! M!cro6"!%e MACRO Boptio"!) !r#u%e"tCt!te%e"t''t!te%e"t''ENDM8/14/15 194 .acro+ (continued . . .)M!cro "!%e c!" &e ued i" the !ctu!) pro#r!%E:ery occurre"ce of the %!cro "!%e 0!p!rt fro% the defi"itio"2 i rep)!ced &y the t!te%e"t i" the %!cro defi"itio"'8/14/15 195 .acro+ (continued . . .)Ad:!"t!#e (' Repe!ted %!)) #roup of i"tructio" rep)!ced &y o"e %!cro ?' Error i" %!cro !re fiDed o")y o"ce= i" the defi"itio" M' Dup)ic!tio" of effort i reduced 4' Pro#r!%%i"# i %!de e!ier !"d )e error pro"e5' 5e"er!))y Huic>er i" eDecutio" th!" u&routi"eDi!d:!"t!#eI" )!r#e pro#r!%= %!cro produce )!r#er code iKe th!" procedure MACROS8/14/15 196 .acro+ (continued . . .)COMPARISON O4 MACROS AND PROCED-RES(' Ad:!"t!#e of ui"# procedure i th!t the %!chi"e code for the #roup of i"tructio" i" the procedure "eed to &e )o!ded i"to %!i" %e%ory o")y o"ce'?' Di!d:!"t!#e ui"# the procedure i the "eed for the t!c>'(' Ad:!"t!#e of ui"# %!cro i th!t it !:oid the o:erhe!d ti%e i":o):ed i" c!))i"# !"d retur"i"# fro% ! procedure'?' Di!d:!"t!#e i th!t %!cro %!>e the pro#r!% occupy %ore %e%ory th!" ui"# ! procedure'8/14/15 197 .acro+ (continued . . .)DE4ININ5 AND CALLIN5 A MACRO 9IT/O-T PARAMETERSED!%p)e6 To dip)!y the %e!#e MS5 o" CRTDISPLA3 MACROMO, A7=SE5 MS5MO,DS=A7MO,D7=O44SET MS5MO,A/=01/INT ?(/ENDM8/14/15 198 .acro+ (continued . . .)DE4ININ5 AND CALLIN5 A MACRO 9IT/ PARAMETERSED!%p)e6 To dip)!y t;o differe"t %e!#e MS5( !"d MS5? o" the CRTDISPLA3MACROMS5MO, A7=SE5 MS5MO,DS=A7MO,D7=O44SET MS5MO,A/=01/INT ?(/ENDMThe p!r!%eter MS5 c!" &e rep)!ced &y MS5( !"d MS5? ;hi)e c!))i"# the %!cro'.................................................................66DISPLA3MS5(66DISPLA3MS5?66.#B1 (& AA4E 0(4E F=rogra- ter-inated @AR.A55GHE0A4EA(4EFIH.#B2 (& AA4E 0(4E FRetr/E A;ortE *ailHE0A4EA(4EFIH8/14/15 199 .acro+ (continued . . .)O,ER,IE9IF*%)B&*I%F *% 80868086 A&=I*-&*B-A))-!!IF: M%)-!8086 IF!*B&*I%F !-*A!!-M"L- )I-&*ID-!A!!-M"L9 LAF:BA:- P%:AMMIF:M%)BLA P%:AMMIF:!*A&+!P%&-)B-!MA&%!INTERR-PTS AND INTERR-PT SER,ICE RO-TINES"9*- AF) !*IF: P%:AMMIF:8/14/15 200INTERR-PTS AND INTERR-PT SER,ICE RO-TINES8/14/15 2019/AT IS AN INTERR-PTVC!p!&i)itytoupe"dtheeDecutio"ofru""i"# pro#r!%!"deDecutio"of!"otherpro#r!%to fu)fi)) pecific reHuire%e"t upo" reHuetAfter fi"ihi"# the eco"d pro#r!%= !uto%!tic!))y retur"tothefirtpro#r!%!"dt!rteDecutio" fro% ;here it ;! )eft8/14/15 202 Interru0t+ and I#R (continued . . .)9/3 INTERR-PT CAPA*ILIT3 IS NECESSAR3VTo u"dert!"d thi . re:ie; of ho; XP$XC co%%u"ic!te ;ith the outide ;or)d %ut &e u"dertood'8/14/15 203 Interru0t+ and I#R (continued . . .)*ASIC *LOC8 DIA5RAM O4 A '6' Doe!"i"directf!rRu%ptothet!rtofthe procedure ;ritte" to repo"d to the i"terrupt'8/14/15 211 Interru0t+ and I#R (continued . . .)(' Puh 4LA5S?' C)e!r I4M' C)e!r T44' Puh CS5' Puh IP6' 4etch ISR!ddre%!i"Pro#r!%I"terrupt Ser:ice Routi"e 0ISR2P-S/ re#iter'''''''''''''''''''''''POP re#iterIRETPOP IPPOP CSPOP 4LA5S8/14/15 212 Interru0t+ and I#R (continued . . .)/O9 DOES 8086 5ET TO INTERR-PT SER,ICE RO-TINEV(' 8086)o!ditCS!"dIPre#iter;iththe address of ISR'?' So=the"eDti"tructio"to&eeDecutedithe firt i"tructio" of ISR8/14/15 213 Interru0t+ and I#R (continued . . .)(' I" !" 8086 yte%= e!ch Yi"terrupterZ 0eDter"!) !"d i"ter"!) 2 h! !" id23 8086 tre!t thi id[ ! interrupt(type2?' After recei:i"# INTR i#"!)= 8086 e"d!" INTA i#"!)M' After recei:i"# INTA i#"!)= i"terrupter re)e!e itG id[= 0i'e'2 type[ of the i"terrupt'5' 8086 %u)tip)ie thi id[ or type[ &y 4 to produce the deired !ddre of the )oc!tio" i" the I"terrupt ,ector T!&)e 0I,T2= ;here ISR !ddre i tored'6' 8086 re!d 4 co"ecuti:e &yte t!rti"# fro% thi )oc!tio" to #et the t!rti"# !ddre of ISRA' 4irt ? &yte !re )o!ded i" to IP8' Seco"d ? &yte to CS/O9 DOES 8086 5ET T/E ADDRESS O4 INTERR-PT SER,ICE RO-TINE 0ISR2V8/14/15 214 Interru0t+ and I#R (continued . . .)I" !" 8086 yte%= the firt (8&yte 0(0?4 &yte2 of %e%ory= fro% 00000 to 00M44= i et !ide ! ! T!&)e for tori"# the t!rti"# !ddree of i"terrupt er:ice routi"e'Si"ce 4 &yte !re reHuired to tore CS !"d IP :!)ue for e!ch ISR= the T!&)e c!" ho)d the t!rti"# !ddree for up to ?56 ISR'The t!rti"# !ddre of !" ISR i ofte" c!))ed the i"terrupt :ector or the i"terrupt poi"ter'So the T!&)e i referred to ! i"terrupt.:ector t!&)e or i"terrupt.poi"ter t!&)e'INTERR-PT ,ECTOR TA*LE 0I,T28/14/15 215 Interru0t+ and I#R (continued . . .)The ?56 i"terrupt :ector !re !rr!"#ed i" the t!&)e i" %e%ory ! fo))o; i" the "eDt )ide' Note 6The IP :!)ue i put i" ! the )o;er ;ord of the :ector !"d CS ! hi#her ;ord of the :ectorE!ch dou&)e ;ord i"terrupt :ector i ide"tified &y ! "u%&er fro% 0 to ?55 000h to 44h2INTEL c!)) thi "u%&er ! the T3PE of the i"terrupt8/14/15 216 Interru0t+ and I#R (continued . . .)AVAILABLE 3FFH TYPE 255FOR USER...(224) 080H TYPE 32TYPE 31RESERVED (27)...014H TYPE 5TYPE 4010HOv!"#$%I&TOTYPE 3P!'"()'* 00+H O) B,- I&TD'(./-'*I)-!)/# TYPE 2I)-!!01-2P$()-!2 008H &O&-3AS4ABLE(5) TYPE 1004H SI&5LE STEP+S B/2 A''!22 TYPE 0IP O""2- 000H DIVIDE ERROR9/AT /APPENS I4 T9O OR MORE INTERR-PTS OCC-R AT T/E SAME TIMEV/i#her priority i"terrupt ;i)) &e er:ed firt8/14/15 218 Interru0t+ and I#R (continued . . .)PRIORITIES O4 8086 INTERR-PTSI"terrupt Type PriorityDI,IDE ERROR= INT N= INT0NMIINTRSIN5LE STEP/I5/ESTLO9EST8/14/15 219 Interru0t+ and I#R (continued . . .)S'No CALL I"tructio" INT"i"tructio"/ Bponthee5ecution'thecontrol Eill Kump to any one o$ the / M" o$ memory locations #Bpone5ecutionthecontrolEill Kumptoa$i5edlocationinthe vector table#> *heusercaninsertinthe seIuenceo$instructionso$a program&anoccuratanytimeactivated by hardEare C %nceinitiateditcannotbe masked&an be masked3 6heninitiated'itstoresthe &!,IPo$thene5tinstructionon the stack6heninitiated'itstoresthe &!,IP o$ the ne5t instruction and alsothe$lagregisteronthe stack#. *helastinstructiono$the subroutine Eill be -* *helastinstructiono$theI!! Eill be I-* DI44ERENCES *ET9EEN CALL AND INT6 8/14/15 220 Interru0t+ and I#R (continued . . .)T/E INTERR-PT SET-ENCE O4 8086 MICROPROCESSOR6(' EDter"!) i"terf!ce e"d !" i"terrupt i#"!)= to the I"terrupt ReHuet 0INTR2 pi"= or !" i"ter"!) i"terrupt occur'?' The CP- fi"ihe the pree"t i"tructio" 0for ! h!rd;!re i"terrupt2 !"d e"d I"terrupt Ac>"o;)ed#e 0INTA2 to h!rd;!re i"terf!ce'M' The i"terrupt type N i e"t to the Ce"tr!) Proceor -"it 0CP-2 :i! the D!t! &u fro% the h!rd;!re i"terf!ce'4' The co"te"t of the f)!# re#iter !re puhed o"to the t!c>'5' *oth the i"terrupt 0I42 !"d 0T42 f)!# !re c)e!red' Thi di!&)e the INTR pi" !"d the tr!p or i"#)e.tep fe!ture'8/14/15 221 Interru0t+ and I#R (continued . . .)6' The co"te"t of the code e#%e"t re#iter 0CS2 !re puhed o"to the St!c>'A' The co"te"t of the i"tructio" poi"ter 0IP2 !re puhed o"to the St!c>'8' The ISR !ddre fro% the i"terrupt :ector t!&)e 0I,T2 i fetched= &y fi"di"# 04 D N2' 9here N i the FtypeG of i"terrupt' 1' I" the I,T= the firt ? &yte t!rti"# fro% 4 D N i p)!ced i"to the IP !"d the "eDt ? &yte fro% 04DN I?2 i p)!ced i"to the CS= o th!t the "eDt i"tructio" i eDecuted fro%the ISR !ddreed &y the i"terrupt :ector'(0' 9hi)e retur"i"# fro% the ISR &y the I"terrupt Retur" 0IRET2 i"tructio"= the IP= CS !"d 4)!# 0PS92 re#iter !re popped fro% the t!c> !"d retur" to the t!te prior to the i"terrupt'8/14/15 222 Interru0t+ and I#R (continued . . .)O,ER,IE9IF*%)B&*I%F *% 80868086 A&=I*-&*B-A))-!!IF: M%)-!8086 IF!*B&*I%F !-*A!!-M"L- )I-&*ID-!A!!-M"L9 LAF:BA:- P%:AMMIF:M%)BLA P%:AMMIF:!*A&+!P%&-)B-!MA&%!IF*-BP*! AF) IF*-BP* !-DI&- %B*IF-!*3TE AND STRIN5 PRO5RAMMIN58/14/15 223*3TE AND STRIN5 PRO5RAMMIN5 8/14/15 224STRIN5SA tri"# i ! erie of &yte or ;ord tored i" uccei:e %e%ory )oc!tio"8086 c!" perfor% the fo))o;i"# oper!tio" o" tri"#Mo:i"# ! tri"# fro% o"e p)!ce i" %e%ory to !"otherCo%p!re t;o tri"#Se!rch ! tri"# for ! pecified ch!r!cter8/14/15 225 #tring+ (continued . . .)STRIN5 INSTR-CTIONS& +tand+ ,or ;/teE and J +tand+ ,or ?ord8/14/15 226 #tring+ (continued . . .)String instructionsMOVS LODS STOSSTOSB STOSW LODSB LODSW MOVSB MOVSWMO,S*$ MO,S9 I"tructio"Copie ! &yte or ;ord fro% ! )oc!tio" i" the d!t! e#%e"t 0DS2 to the )oc!tio" i"the eDtr! e#%e"t 0ES2Offet of ource i" d!t! e#%e"t %ut &e i" SI re#iterOffet of deti"!tio" i" eDtr! e#%e"t %ut &e i" DI re#iter4or %u)tip)e &yte$;ord %o:e the cou"t i tored i" C7 re#iterMO,IN5 A STRIN58/14/15 227 #tring+ (continued . . .)ROLE O4 DIRECTION 4LA5 IN MO,IN5 A STRIN5D4 @ 0SI N DI ;i)) &e i"cre%e"ted &y ( or ? !fter e:ery &yte or ;ord i %o:edD4 @ (SI N DI ;i)) &e decre%e"ted &y (or ? !fter e:ery &yte or ;ord i %o:ed8/14/15 228 #tring+ (continued . . .)A PRO5RAM TO COP3 A STRIN5 O4 *3TES 4ROM ONE LOCATION IN MEMOR3 TO ANOT/ER8/14/15 229 #tring+ (continued . . .)LEA 0Lo!d Effecti:e Addre2 thi i"tructio" deter%i"e the offet of the :!ri!&)e or %e%ory )oc!tio" "!%ed ! the ource !"d put it i" the pecified (6.&it re#iterCLD 0C)e!r Directio" 4)!#2REP 0Repe!t2 A prefiD ;ritte" &efore o"e of the tri"# i"tructio" C!ue tri"# i"tructio" to &e repe!ted u"ti) C7@0LEA= CLD N REP INSTR-CTIONS4ORMO,IN5ASTRIN58/14/15 230 #tring+ (continued . . .)D!>! SE8SI8E F1 ! ?E= "18EA8S1 8S!B ES( D!>!S>!>( 813 !%B D!>!813 DSB !% Cinitia$iDe data segment register813 ESB !% Cinitia$iDe extra segment register#E! SIB 8S8086recogni@est;o>i"dofi"terrupt=h!rd;!rei"terrupt!"doft;!re i"terrupt' =ardEare interrupts are generated Ehen the peripheral' connected to the &PB reIuests $or some service# A so$tEare interrupt is a c!)) to a subroutine located in the operating system' usually the input-output routine# INT 1interrupt2 instruction is used Eithin application programs to reIuest the services o$ )%!' or %M-"I%!# *he INT i"tructio" c!)) !" oper!ti"# yte% u&routi"e= ide"tified &y ! "u%&er= i" the r!"#e 0 . 44h' *he synta5 is INT "u%&er*he &PB processes an interrupt instruction' using the interrupt vector table 0I,T2'It is situated in the $irst /+ bytes o$ memory' and has a total o$ >.6 entries' each o$ 3bytes# *he entry in the interrupt vector table' is identi$ied by the number' given in the interrupt instruction' and in turn points to an operating system subroutine# *he actual address in this table varies $rom machine to machine# P1CESSI?< !? I?>EUP>S>EPS1. De num)er +o$$oGing the I?> mnemonic te$$s the CPU Ghich entr' to$ocate in the interru4t .ector ta)$e. De addre++ o, te entr/ can ;e ,ound ;/-ulti0l/ing te nu-;er ;/ 4. Exam4$e( te +u;routine corre+0onding to I@D 10 ?ill ;e 0laced at addre++ a 40 E ?ile ,or I@D 3 ?ill ;e 0laced at A'.2. De '=C Ku-0+ to te addre++ +tored in te interru0t 21FU?C>I1? &1 "Exam4$e1 Read one caracter ,ro- te 2e/;oard into regi+ter A5E ?it ecoE and +tore it in te 21FU?C>I1? &2 "Aut0ut+ te caracter on te -onitor'all+ ?it1 A4 3 02(5 3 8 ;it$data (u+uall/ A#'IIE i, /ou?ant it 0rinted on te +creen)Return+1 noting)6a-0le1 tran+-it te caracter NON on te +creen.AL A4E 02.AL (5E NONI@D 21I?> 21 FU?C>I1? &5 "Read+ a caracter ,ro- te in0ut deI1? &E "Aut0ut a +tring on te +tandard out0ut de -a6 lengt o, +tringE> including 'RE 81 caracter+(& 0 > actual lengt o, +tring u+ed (& 81 (C=(0)(ADA )@(# E%!8P#E'A() #)B.)@D.AL A4E0A 4.AL (9E(ADA.AL (#E(9.AL (9EA**#)D &C** I@D 21 4'A() )@(#I?> 21 FU?C>I1? ;C "Der-inate ?it a return code. =er,or-+ a Mnal e6it to (A#E 0a++ing ;ac2 a return code. .#$(A# clo+e+ all te 0re


Recommended