You are on page 1of 6

k8085kAssemblykLanguagekProgramsk&kExplanations1.kStatement :kStorekthekdatakbytek32Hkintokmemoryklocationk4000H. k Programk1:k k MVIkA,k32Hk:kStorek32Hkinkthekaccumulatork k STAk4000Hk:kCopykaccumulatorkcontentskatkaddressk4000HkHLTk:kTerminatekprogramke xecutionk k Programk2:kLXIkHk:kLoadkHLkwithk4000HkMVIkMk:kStorek32Hkinkmemoryklocationkpoint edkbykHLkregisterkpairk(4000H)k k HLTk:kTerminatekprogramkexecutionk 2.

kStatement: Exchangekthekcontentskofkmemoryklocationsk2000Hkandk4000H k Programk1:k k LDAk2000Hk:kGetkthekcontentskofkmemoryklocationk2000Hkintokaccumulatork k MOVkB,kAk:kSavekthekcontentskintokBkregisterk k LDAk4000Hk:kGetkthekcontentskofkmemoryklocationk4000Hintokaccumulatork k STAk2000Hk:kStorekthekcontentskofkaccumulatorkatkaddressk2000Hk k MOVkA,kBk:kGetktheksavedkcontentskbac kintokAkregisterk k STAk4000Hk:kStorekthekcontentskofkaccumulatorkatkaddressk4000Hk k Programk2:k k LXIkHk2000Hk:kInitializekHLkregisterkpairkaskakpointerktokmemoryklocationk2000H. k LXIkDk4000Hk:kInitializekDEkregisterkpairkaskakpointerktokmemoryklocationk4000H. k MOVkB,kMk:kGetkthekcontentskofkmemoryklocationk2000HkintokBkregister. k LDAXkDk:kGetkthekcontentskofkmemoryklocationk4000HkintokAregister. k MOVkM,kAk:kStorekthekcontentskofkAkregisterkintokmemoryklocationk2000H. k MOVkA,kBk:kCopykthekcontentskofkBkregisterkintokaccumulator. k STAXkDk:kStorekthekcontentskofkAkregisterkintokmemoryklocationk4000H. k HLTk:kTerminatekprogramkexecution 3.Samplekproblemk k (4000H)k=k14Hk k (4001H)k=k89Hk k Resultk=k14Hk+k89Hk=k9DHk k SourcekprogramkLXIkHk4000Hk:kHLkpointsk4000Hk k

MOVkA,kMk:kGetkfirstkoperandk k INXkHk:kHLkpointsk4001Hk k ADDkMk:kAddksecondkoperandk k INXkHk:kHLkpointsk4002Hk k MOVkM,kAk:kStorekresultkatk4002Hk k HLTk:kTerminatekprogramkexecutionk k 4.Statement: Subtractkthekcontentskofkmemoryklocationk4001Hkfromkthekmemorylocationk2000Hkand kplacekthekresultkinkmemoryklocationk4002H. k Programk-k4:kSubtractktwok8-bitknumbersk k Samplekproblem:k(4000H)k=k51Hk k (4001H)k=k19Hk k Resultk=k51Hk-k19Hk=k38Hk k Sourcekprogram:k k LXIkH,k4000Hk:kHLkpointsk4000Hk k MOVkA,kMk:kGetkfirstkoperandk k INXkHk:kHLkpointsk4001Hk k SUBkMk:kSubtractksecondkoperandk k INXkHk:kHLkpointsk4002Hk k MOVkM,kAk:kStorekresultkatk4002H. k HLTk:kTerminatekprogramkexecutionk k 5.Statement: Addkthek16-bitknumberkinkmemoryklocationsk4000Hkandk4001Hktothek16-bitknumberkin kmemoryklocationsk4002Hkandk4003H.kThekmostksignificanteightkbitskofkthektwoknum bersktokbekaddedkarekinkmemoryklocationsk4001Hkand4003H.kStorekthekresultkinkmem oryklocationsk4004Hkandk4005Hkwithkthekmostsignificantkbytekinkmemoryklocationk4 005H. k k Programk-k5.a:kAddktwok16-bitknumbersk-kSourcekProgramk1 k Samplekproblem:k k (4000H)k=k15Hk(4001H)k=k1CHk k (4002H)k=kB7Hk k (4003H)k=k5AHk k Resultk=k1C15k+k5AB7Hk=k76CCHk k

(4004H)k=kCCHk k (4005H)k=k76Hk k SourcekProgramk1:k k LHLDk4000Hk:kGetkfirstkI6-bitknumberkinkHL k XCHGk:kSavekfirstkI6-bitknumberkinkDEk k LHLDk4002Hk:kGetksecondkI6-bitknumberkinkHL k MOVkA,kEk:kGetklowerkbytekofkthekfirstknumberk k ADDkLk:kAddklowerkbytekofktheksecondknumberk k MOVkL,kAk:kStorekresultkinkLkregisterk k MOVkA,kDk:kGetkhigherkbytekofkthekfirstknumberk k ADCkHk:kAddkhigherkbytekofktheksecondknumberkwithkCARRYk k MOVkH,kAk:kStorekresultkinkHkregisterk k SHLDk4004Hk:kStorekI6-bitkresultkinkmemoryklocationsk4004Hkandk4005H. k HLTk:kTerminatekprogramkexecutionk k 6.Statement: Addkthekcontentskofkmemoryklocationsk40001Hkandk4001Hkandkplacethekresultkinkthe kmemoryklocationsk4002Handk4003H. k Samplekproblem:k(4000H)k=k7FHk k (400lH)k=k89Hk k Resultk=k7FHk+k89Hk=klO8Hk(4002H)k=k08Hk k (4003H)k=k0lHk k Sourcekprogram:k k LXIkH,k4000Hk:HLkPointsk4000Hk k MOVkA,kMk:Getkfirstkoperandk k INXkHk:HLkPointsk4001Hk k ADDkMk:Addksecondkoperandk k INXkHk:HLkPointsk4002Hk k MOVkM,kAk:Storektheklowerkbytekofkresultkatk4002Hk k MVIA,k00k:Initializekhigherkbytekresultkwithk00Hk kADCkAk:Addkcarrykinkthekhighkbytekresultk k INXkHk:HLkPointsk4003Hk k MOVkM,kAk:Storekthekhigherkbytekofkresultkatk4003Hk

k HLTk:Terminatekprogramkexecutionk k 7.Statement: Subtractkthek16-bitknumberkinkmemoryklocationsk4002Hkandk4003Hfromkthek16-bitknu mberkinkmemoryklocationsk4000Hkandk4001H.kThekmostsignificantkeightkbitskofkthek twoknumberskarekinkmemoryklocationsk4001Hkandk4003H.Storekthekresultkinkmemorykl ocationsk4004Hkandk4005Hkwithkthekmostksignificantbytekinkmemoryklocationk4005H. k Samplekproblemk k (4000H)k=k19Hk k (400IH)k=k6AHk(4004H)k=kI5Hk(4003H)k=k5CHk k Resultk=k6A19Hk-k5C15Hk=kOE04Hk(4004H)k=k04Hk k (4005H)k=kOEHk k Sourcekprogram:k k LHLDk4000Hk:kGetkfirstk16-bitknumberkinkHL k XCHGk:kSavekfirstk16-bitknumberkinkDEk k LHLDk4002Hk:kGetksecondk16-bitknumberkinkHL k MOVkA,kEk:kGetklowerkbytekofkthekfirstknumberk k SUBkLk:kSubtractklowerkbytekofktheksecondknumberk k MOVkL,kAk:kStorekthekresultkinkLkregisterk k MOVkA,kDk:kGetkhigherkbytekofkthekfirstknumberk k SBBkHk:kSubtractkhigherkbytekofksecondknumberkwithkborrowk k MOVkH,kAk:kStorekl6-bitkresultkinkmemoryklocationsk4004Hkandk4005H. k SHLDk4004Hk:kStorekl6-bitkresultkinkmemoryklocationsk4004Hkandk4005H. k HLTk:kTerminatekprogramkexecutionk k 8.Statement: Findkthekl'skcomplementkofktheknumberkstoredkatkmemoryklocation4400Hkandkstorekt hekcomplementedknumberkatkmemoryklocationk4300H. k Samplekproblem:k(4400H)k=k55Hk k k Resultk=k(4300B)k=kAABkSourcekprogram:kLDAk4400Bk:kGetktheknumberk k CMAk:kComplementknumberk k STAk4300Hk:kStorekthekresultk k HLTk:kTerminatekprogramkexecutionk k 9.Statement: Findkthek2'skcomplementkofktheknumberkstoredkatkmemoryklocation4200Hkandkstorekt

hekcomplementedknumberkatkmemoryklocationk4300H. k Samplekproblem: k (4200H)k=k55H k Resultk=k(4300H)k=kAAHk+k1k=kABH k Sourcekprogram:k k LDAk4200Hk:kGetktheknumberk k CMAk:kComplementktheknumberk k ADI,k01kHk:kAddkonekinktheknumberk k STAk4300Hk:kStorekthekresultk k HLTk:kTerminatekprogramkexecutionk k 10.Statement: Pac kthektwokunpac edkBCDknumberskstoredkinkmemoryklocations4200Hkandk4201Hkandk storekresultkinkmemoryklocationk4300H.kAssumekthekleastsignificantkdigitkiskstor edkatk4200H. Samplekproblem:k k (4200H)k=k04k(4201H)k=k09k k Resultk=k(4300H)k=k94k k Sourcekprogramk k LDAk4201Hk:kGetkthekMostksignificantkBCDkdigitk k RLCkRLCk k RLCkRLCk:kAdjustkthekpositionkofktheksecondkdigitk(09kiskchangedktok90) kANIkFOHk:kMa ekleastksignificantkBCDkdigitkzerok k MOVkC,kAk:kstorekthekpartialkresultk k LDAk4200Hk:kGetktheklowerkBCDkdigitk k ADDkCk:kAddklowerkBCDkdigitk k STAk4300Hk:kStorekthekresultk k HLTk:kTerminatekprogramkexecutionk k 11.Statement: TwokdigitkBCDknumberkiskstoredkinkmemoryklocationk4200H.Unpac kthekBCDknumberkan dkstorekthektwokdigitskinkmemoryklocationsk4300Hkand4301Hksuchkthatkmemoryklocat ionk4300HkwillkhaveklowerkBCDkdigit. k Samplekproblemk k (4200H)k=k58k k Resultk=k(4300H)k=k08kandk k

(4301H)k=k05k k Sourcekprogramk k LDAk4200Hk:kGetkthekpac edkBCDknumberk k ANIkFOHk:kMas klowerknibblek k RRCkRRCk k RRCkRRCk:kAdjustkhigherkBCDkdigitkaskaklowerkdigitk k STAk4301Hk:kStorekthekpartialkresultk k LDAk4200Hk:k.GetkthekoriginalkBCDknumberk k ANIkOFHk:kMas khigherknibblek k STAk4201Hk:kStorekthekresultk k HLTk:kTerminatekprogramkexecutionk k 12.Statement: Readkthekprogramkgivenkbelowkandkstatekthekcontentskofkallregisterskafterkthekex ecutionkofkeachkinstructionkinksequence. k Mainkprogram:k k 4000HkLXIkSP,k27FFHk k 4003HkLXIkH,k2000Hk k 4006HkLXIkB,k1020Hk k 4009HkCALLkSUBk k 400CHkHLT

You might also like