深入理解计算机系统习题答案_第1页
深入理解计算机系统习题答案_第2页
深入理解计算机系统习题答案_第3页
深入理解计算机系统习题答案_第4页
深入理解计算机系统习题答案_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

COMPUTERSYSTEMSAPROGRAMMERSPERSPECTIVEINSTRUCTORSSOLUTIONMANUAL1RANDALEBRYANTDAVIDROHALLARONDECEMBER4,20031COPYRIGHTCA02003,REBRYANT,DROHALLARONALLRIGHTSRESERVED2CHAPTER1SOLUTIONSTOHOMEWORKPROBLEMSTHETEXTUSESTWODIFFERENTKINDSOFEXERCISESA0PRACTICEPROBLEMSTHESEAREPROBLEMSTHATAREINCORPORATEDDIRECTLYINTOTHETEXT,WITHEXPLANATORYSOLUTIONSATTHEENDOFEACHCHAPTEROURINTENTIONISTHATSTUDENTSWILLWORKONTHESEPROBLEMSASTHEYREADTHEBOOKEACHONEHIGHLIGHTSSOMEPARTICULARCONCEPTA0HOMEWORKPROBLEMSTHESEAREFOUNDATTHEENDOFEACHCHAPTERTHEYVARYINCOMPLEXITYFROMSIMPLEDRILLSTOMULTIWEEKLABSANDAREDESIGNEDFORINSTRUCTORSTOGIVEASASSIGNMENTSORTOUSEASRECITATIONEXAMPLESTHISDOCUMENTGIVESTHESOLUTIONSTOTHEHOMEWORKPROBLEMS11CHAPTER1ATOUROFCOMPUTERSYSTEMS12CHAPTER2REPRESENTINGANDMANIPULATINGINFORMATIONPROBLEM240SOLUTIONTHISEXERCISESHOULDBEASTRAIGHTFORWARDVARIATIONONTHEEXISTINGCODECODE/DATA/SHOWANSC1VOIDSHOW_SHORTSHORTINTX23SHOW_BYTESBYTE_POINTER456VOIDSHOW_LONGLONGINTX78SHOW_BYTESBYTE_POINTER912CHAPTER1SOLUTIONSTOHOMEWORKPROBLEMS1011VOIDSHOW_DOUBLEDOUBLEX1213SHOW_BYTESBYTE_POINTER14CODE/DATA/SHOWANSCPROBLEM241SOLUTIONTHEREAREMANYWAYSTOSOLVETHISPROBLEMTHEBASICIDEAISTOCREATESOMEMULTIBYTEDATUMWITHDIFFERENTVALUESFORTHEMOSTANDLEASTSIGNIFICANTBYTESWETHENREADBYTE0ANDDETERMINEWHICHBYTEITISINTHEFOLLOWINGSOLUTIONISTOCREATEANINTWITHVALUE1WETHENACCESSITSFIRSTBYTEANDCONVERTITTOANINTTHISBYTEWILLEQUAL0ONABIGENDIANMACHINEAND1ONALITTLEENDIANMACHINECODE/DATA/SHOWANSC1INTIS_LITTLE_ENDIANVOID23/MSB0,LSB1/4INTX156/RETURNMSBWHENBIGENDIAN,LSBWHENLITTLEENDIAN/7RETURNINTCHAR8CODE/DATA/SHOWANSCPROBLEM242SOLUTIONTHISISASIMPLEEXERCISEINMASKINGANDBITMANIPULATIONITISIMPORTANTTOMENTIONTHAT0XFFISAWAYTOGENERATEAMASKTHATSELECTSALLBUTTHELEASTSIGNIFICANTBYTETHATWORKSFORANYWORDSIZEX/ALL1S/45RETURNX1X6CODE/DATA/SHIFTANSCTHEABOVECODEPEFORMSARIGHTSHIFTOFAWORDINWHICHALLBITSARESETTO1IFTHESHIFTISARITHMETIC,THERESULTINGWORDWILLSTILLHAVEALLBITSSETTO1PROBLEM245SOLUTIONTHISPROBLEMILLUSTRATESSOMEOFTHECHALLENGESOFWRITINGPORTABLECODETHEFACTTHAT1245CODE/DATA/XBYTECPROBLEM247SOLUTIONA0A1A0A1A2A4A3A6A5A8A7A10A9A0A1A12A11A13A14A11A9A11A14A11A16A15A11A7A13A11A14A17A14A11A14A15A10A12A11A19A18A13A11A14A17A14A11A9A11A16A15A10A12A11A7A13A14A11A9A11A9A11A9A11A16A15A11A21A20A13A11A14A17A14A17A14A17A14A15A10A12A11A21A22A13A11A14A17A14A17A14A11A16A15A10A12A11A21A20A13A11A9A11A14A17A14A17A14A15A10A24A23A13A14A17A14A11A9A11A9A11A16A15A25A13A14A11A14A17A14A17A14A15A23A13A11A9A11A9A11A9A11A9A11A16A15A10A11A13A14A17A14A17A14A17A14A17A14A15A14A13A14A17A14A17A14A17A14A11A16A15A11A13A11A14A17A14A17A14A17A14A15A10A12A11A21A22A13A14A11A9A11A9A11A9A11A16A15A11A21A20A13A11A14A17A14A17A14A17A14A15A10A12A11A21A22PROBLEM248SOLUTIONTHISPROBLEMLETSSTUDENTSREWORKTHEPROOFTHATCOMPLEMENTPLUSINCREMENTPERFORMSNEGATIONWEMAKEUSEOFTHEPROPERTYTHATTWOSCOMPLEMENTADDITIONISASSOCIATIVE,COMMUTATIVE,ANDHASADDITIVEINVERSESUSINGCNOTATION,IFWEDEFINEYTOBEX1,THENWEHAVEY1EQUALTOY,ANDHENCEYEQUALSY1SUBSTITUTINGGIVESTHEEXPRESSIONX11,WHICHEQUALSXPROBLEM249SOLUTIONTHISPROBLEMREQUIRESAFAIRLYDEEPUNDERSTANDINGOFTWOSCOMPLEMENTARITHMETICSOMEMACHINESONLYPROVIDEONEFORMOFMULTIPLICATION,ANDHENCETHETRICKSHOWNINTHECODEHEREISACTUALLYREQUIREDTOPERFORMTHATACTUALFORMASSEENINEQUATION216WEHAVEA1A12A26A10A27A29A28A30A26A32A31A33A1A34A27A29A28A36A35A33A9A4A1A38A37A40A39A42A41A43A28A44A35A45A28A17A37A46A39A42A41A43A1A12A11A8A37A35A45A1A38A37A40A39A42A41A47A28A17A37A46A39A42A41A8A49A48A37THEFINALTERMHASNOEFFECTONTHEA8A51A50BITREPRESENTATIONOFA1A26A27A51A28A26,BUTTHEMIDDLETERMREPRESENTSACORRECTIONFACTORTHATMUSTBEADDEDTOTHEHIGHORDERA50BITSTHISISIMPLEMENTEDASFOLLOWSCODE/DATA/UHPANSC1UNSIGNEDUNSIGNED_HIGH_PRODUNSIGNEDX,UNSIGNEDY23UNSIGNEDPUNSIGNEDSIGNED_HIGH_PRODINTX,INTY45IFINTXK5/MAKEMASKOFLOWORDER32KBITS/6UNSIGNEDMASKK1K5/MAKEMASKOFHIGHORDERKBITS/6UNSIGNEDMASKK1YNO,LETXA0A2A1A2A4A3A2A3A48A5A4A7A6A31A14BXY1316UNSIGNEDSYUY3178RETURN9UX0,YUY|/X0,Y0/12SXINTT4T3T2RETURNT4PROBLEM332SOLUTIONTHISCODEEXAMPLEDEMONSTRATESONEOFTHEPEDAGOGICALCHALLENGESOFUSINGACOMPILERTOGENERATEASSEMBLYCODEEXAMPLESSEEMINGLYINSIGNIFICANTCHANGESINTHECCODECANYIELDVERYDIFFERENTRESULTSOFCOURSE,STUDENTSWILLHAVETOCONTENDWITHTHISPROPERTYASWORKWITHMACHINEGENERATEDASSEMBLYCODEANYHOWTHEYWILLNEEDTOBEABLETODECIPHERMANYDIFFERENTCODEPATTERNSTHISPROBLEMENCOURAGESTHEMTOTHINKINABSTRACTTERMSABOUTONESUCHPATTERNTHEFOLLOWINGISANANNOTATEDVERSIONOFTHEASSEMBLYCODE1MOVL8EBP,EDXX2MOVL12EBP,ECXY3MOVLEDX,EAX4SUBLECX,EAXRESULTXY5CMPLECX,EDXCOMPAREXY6JGEL3IFGOTODONE7MOVLECX,EAX8SUBLEDX,EAXRESULTYX9L3DONEAWHENA1A1A0A28,ITWILLCOMPUTEFIRSTA1A10A28ANDTHENA28A10A1WHENA1A1A2A28ITJUSTCOMPUTESA1A10A28BTHECODEFORTHENSTATEMENTGETSEXECUTEDUNCONDITIONALLYITTHENJUMPSOVERTHECODEFORELSESTATEMENTIFTHETESTISFALSECTHENSTATEMENTTTESTEXPRIFTGOTODONEELSESTATEMENTDONEDTHECODEINTHENSTATEMENTMUSTNOTHAVEANYSIDEEFFECTS,OTHERTHANTOSETVARIABLESTHATAREALSOSETINELSESTATEMENT13CHAPTER3MACHINELEVELREPRESENTATIONOFCPROGRAMS11PROBLEM333SOLUTIONTHISPROBLEMREQUIRESSTUDENTSTOREASONABOUTTHECODEFRAGMENTSTHATIMPLEMENTTHEDIFFERENTBRANCHESOFASWITCHSTATEMENTFORTHISCODE,ITALSOREQUIRESUNDERSTANDINGDIFFERENTFORMSOFPOINTERDEREFERENCINGAINLINE29,REGISTEREDXISCOPIEDTOREGISTEREAXASTHERETURNVALUEFROMTHIS,WECANINFERTHATEDXHOLDSRESULTBTHEORIGINALCCODEFORTHEFUNCTIONISASFOLLOWS1/ENUMERATEDTYPECREATESSETOFCONSTANTSNUMBERED0ANDUPWARD/2TYPEDEFENUMMODE_A,MODE_B,MODE_C,MODE_D,MODE_EMODE_T34INTSWITCH3INTP1,INTP2,MODE_TACTION56INTRESULT07SWITCHACTION8CASEMODE_A9RESULTP110P1P211BREAK12CASEMODE_B13P2P114RESULTP215BREAK16CASEMODE_C17P21518RESULTP119BREAK20CASEMODE_D21P2P122/FALLTHROUGH/23CASEMODE_E24RESULT1725BREAK26DEFAULT27RESULT12829RETURNRESULT30PROBLEM334SOLUTIONTHISPROBLEMGIVESSTUDENTSPRACTICEANALYZINGDISASSEMBLEDCODETHESWITCHSTATEMENTCONTAINSALLTHEFEATURESONECANIMAGINECASESWITHMULTIPLELABELS,HOLESINTHERANGEOFPOSSIBLECASEVALUES,ANDCASESTHATFALLTHROUGHCODE/ASM/SWITCHBODYANSC12CHAPTER1SOLUTIONSTOHOMEWORKPROBLEMS1INTSWITCH_PROBINTX23INTRESULTX45SWITCHX6CASE507CASE528RESULT212BREAK13CASE5414RESULT315/FALLTHROUGH/16CASE5517RESULTRESULT18/FALLTHROUGH/19DEFAULT20RESULT10212223RETURNRESULT24CODE/ASM/SWITCHBODYANSCPROBLEM335SOLUTIONTHISEXAMPLEILLUSTRATESACASEWHERETHECOMPILERWASCLEVER,BUTHUMANSCANBEMORECLEVERSUCHCASESARENOTUNUSUAL,ANDITISIMPORTANTFORSTUDENTSTOREALIZETHATCOMPILERSDONOTALWAYSGENERATEOPTIMALCODEINTHEFOLLOWING,WEHAVEMERGEDVARIABLESBANDNTJPKINTOASINGLEPOINTERBPTRTHISPOINTERGETSINCREMENTEDBYNWHICHTHECOMPILERSCALESBY4ONEVERYITERATIONCODE/ASM/VARPRODANSC1INTVAR_PROD_ELE_OPTVAR_MATRIXA,VAR_MATRIXB,INTI,INTK,INTN23INTAPTR4INTBPTR5INTRESULT06INTCNTN78IFNRIGHTUSINGADISPLACEMENTOF1840XB8THATMEANSARRAYASPANSFROMBYTES4TO184OFB_STRUCT,IMPLYINGTHATCNTISA9A11A21A23A51A18A12A10A18A11A3A8A14A31A2A13LINE9APPEARSTODEREFERENCEAPACTUALLY,ITISCOMPUTINGAPIDX,SINCEFIELDIDXISATTHEBEGINNINGOFSTRUCTUREA_STRUCT4LINE10SCALESAPIDXBY4,ANDLINE13STORESNATANADDRESSCOMPUTEDBYADDINGTHISSCALEDVALUE,AP,AND4FROMTHISWECONCLUDETHATFIELDXDENOTESANARRAYOFINTEGERSTHATFOLLOWRIGHTAFTERFIELDIDXTHISANALYSISLEADSUSTOTHEFOLLOWINGANSWERSACNTIS9BCODE/ASM/STRUCTPROBANSC1TYPEDEFSTRUCT2INTIDX3INTX44A_STRUCTCODE/ASM/STRUCTPROBANSCPROBLEM337SOLUTIONTHISPROBLEMGETSSTUDENTSINTHEHABITOFWRITINGRELIABLECODEASAGENERALPRINCIPLE,CODESHOULDNOTBEVULNERABLETOCONDITIONSOVERWHICHITHASNOCONTROL,SUCHASTHELENGTHOFANINPUTLINETHEFOLLOWINGIMPLEMENTATIONUSESTHELIBRARYFUNCTIONFGETSTOREADUPTOBUFSIZECHARACTERSATATIME14CHAPTER1SOLUTIONSTOHOMEWORKPROBLEMS1/READINPUTLINEANDWRITEITBACK/2/CODEWILLWORKFORANYBUFFERSIZEBIGGERISMORETIMEEFFICIENT/3DEFINEBUFSIZE644VOIDGOOD_ECHO56CHARBUFBUFSIZE7INTI8WHILE19IFFGETSBUF,BUFSIZE,STDIN10RETURN/ENDOFFILEORERROR/11/PRINTCHARACTERSINBUFFER/12FORI0BUFII13IFPUTCHARBUFIEOF14RETURN/ERROR/15IFBUFIN16/REACHEDTERMINATINGNEWLINE/17PUTCHARN18RETURN192021ANALTERNATIVEIMPLEMENTATIONISTOUSEGETCHARTOREADTHECHARACTERSONEATATIMEPROBLEM338SOLUTIONSUCCESSFULLYMOUNTINGABUFFEROVERFLOWATTACKREQUIRESUNDERSTANDINGMANYASPECTSOFMACHINELEVELPROGRAMSITISQUITEINTRIGUINGTHATBYSUPPLYINGASTRINGTOONEFUNCTION,WECANALTERTHEBEHAVIOROFANOTHERFUNCTIONTHATSHOULDALWAYSRETURNAFIXEDVALUEINASSIGNINGTHISPROBLEM,YOUSHOULDALSOGIVESTUDENTSASTERNLECTUREABOUTETHICALCOMPUTINGPRACTICESANDDISPELLANYNOTIONTHATHACKINGINTOSYSTEMSISADESIRABLEOREVENACCEPTABLETHINGTODOOURSOLUTIONSTARTSBYDISASSEMBLINGBUFBOMB,GIVINGTHEFOLLOWINGCODEFORGETBUF1080484F4280484F455PUSHEBP380484F589E5MOVESP,EBP480484F783EC18SUB0X18,ESP580484FA83C4F4ADD0XFFFFFFF4,ESP680484FD8D45F4LEA0XFFFFFFF4EBP,EAX7804850050PUSHEAX88048501E86AFFFFFFCALL804847098048506B801000000MOV0X1,EAX10804850B89ECMOVEBP,ESP11804850D5DPOPEBP12804850EC3RET13804850F90NOPWECANSEEONLINE6THATTHEADDRESSOFBUFIS12BYTESBELOWTHESAVEDVALUEOFEBP,WHICHIS4BYTESBELOWTHERETURNADDRESSOURSTRATEGYTHENISTOPUSHASTRINGTHATCONTAINS12BYTESOFCODE,THESAVEDVALUE13CHAPTER3MACHINELEVELREPRESENTATIONOFCPROGRAMS15OFEBP,ANDTHEADDRESSOFTHESTARTOFTHEBUFFERTODETERMINETHERELEVANTVALUES,WERUNGDBASFOLLOWS1FIRST,WESETABREAKPOINTINGETBUFANDRUNTHEPROGRAMTOTHATPOINTGDBBREAKGETBUFGDBRUNCOMPARINGTHESTOPPINGPOINTTOTHEDISASSEMBLY,WESEETHATITHASALREADYSETUPTHESTACKFRAME2WEGETTHEVALUEOFBUFBYCOMPUTINGAVALUERELATIVETOEBPGDBPRINT/XEBP12THISGIVES0XBFFFEFBC3WEFINDTHESAVEDVALUEOFREGISTEREBPBYDEREFERENCINGTHECURRENTVALUEOFTHISREGISTERGDBPRINT/XEBPTHISGIVES0XBFFFEFE84WEFINDTHEVALUEOFTHERETURNPOINTERONTHESTACK,ATOFFSET4RELATIVETOEBPGDBPRINT/XINTEBP1THISGIVES0X8048528WECANNOWPUTTHISINFORMATIONTOGETHERTOGENERATEASSEMBLYCODEFOROURATTACK1PUSHL0X8048528PUTCORRECTRETURNPOINTERBACKONSTACK2MOVL0XDEADBEEF,EAXALTERRETURNVALUE3RETREEXECUTERETURN4ALIGN4ROUNDUPTO125LONG0XBFFFEFE8SAVEDVALUEOFEBP6LONG0XBFFFEFBCLOCATIONOFBUF7LONG0X00000000PADDINGNOTETHATWEHAVEUSEDTHEALIGNSTATEMENTTOGETTHEASSEMBLERTOINSERTENOUGHEXTRABYTESTOUSEUPTWELVEBYTESFORTHECODEWEADDEDANEXTRA4BYTESOF0SATTHEEND,BECAUSEINSOMECASESOBJDUMPWOULDNOTGENERATETHECOMPLETEBYTEPATTERNFORTHEDATATHESEEXTRABYTESPLUSTHETERMININATINGNULLBYTEWILLOVERFLOWINTOTHESTACKFRAMEFORTEST,BUTTHEYWILLNOTAFFECTTHEPROGRAMBEHAVIORASSEMBLINGTHISCODEANDDISASSEMBLINGTHEOBJECTCODEGIVESUSTHEFOLLOWING106828850408PUSH0X804852825B8EFBEADDEMOV0XDEADBEEF,EAX3AC3RET4B90NOPBYTEINSERTEDFORALIGNMENT5CE8EFFFBFBCCALL0XBCC00000INVALIDDISASSEMBLY611EFOUTEAX,DXTRYINGTODIASSEMBLE712FFBADDATA813BF00000000MOV0X0,EDI16CHAPTER1SOLUTIONSTOHOMEWORKPROBLEMSFROMTHISWECANREADOFFTHEBYTESEQUENCE6828850408B8EFBEADDEC390E8EFFFBFBCEFFFBF00000000PROBLEM339SOLUTIONTHISPROBLEMISAVARIANTONTHEASMEXAMPLESINTHETEXTTHECODEISACTUALLYFAIRLYSIMPLEITRELIESONTHEFACTTHATASMOUTPUTSCANBEARBITRARYLVALUES,ANDHENCEWECANUSEDEST0ANDDEST1DIRECTLYINTHEOUTPUTLISTCODE/ASM/ASMPROBSANSC1VOIDFULL_UMULUNSIGNEDX,UNSIGNEDY,UNSIGNEDDEST23ASM“MOVL2,EAXMULL3MOVLEAX,0MOVLEDX,1“4“R“DEST0,“R“DEST1/OUTPUTS/5“R“X,“R“Y/INPUTS/6“EAX“,“EDX“/CLOBBERS/78CODE/ASM/ASMPROBSANSCPROBLEM340SOLUTIONFORTHISEXAMPLE,STUDENTSESSENTIALLYHAVETOWRITETHEENTIREFUNCTIONINASSEMBLYTHEREISNOAPPARENTWAYTOINTERFACEBETWEENTHEFLOATINGPOINTREGISTERSANDTHECCODEUSINGEXTENDEDASMCODE/ASM/FSCALEC1/COMPUTEX2NRELIESONKNOWNSTACKPOSITIONSFORARGUMENTS/2VOIDSCALEDOUBLEX,INTN,DOUBLEDEST34/INSERTTHEFOLLOWINGASSEMBLYCODESEQUENCE5FILDL16EBPCONVERTNTOFLOATINGPOINTANDPUSH6FLDL8EBPPUSHX7FSCALECOMPUTEX2N8MOVL20EBPGETDEST9FSTPLEAXSTORERESULTATDEST10/11ASM“FILDL16EBPFLDL8EBPFSCALEMOVL20EBP,EAX12FSTPLEAXFSTPST0“13“EAX“1415CODE/ASM/FSCALEC14CHAPTER4PROCESSORARCHITECTURE1714CHAPTER4PROCESSORARCHITECTUREPROBLEM432SOLUTIONTHISPROBLEMMAKESSTUDENTSCAREFULLYEXAMINETHETABLESSHOWINGTHECOMPUTATIONSTAGESFORTHEDIFFERENTINSTRUCTIONSTHESTEPSFORIADDLAREAHYBRIDOFTHOSEFORIRMOVLANDOPLSTAGEIADDLV,RBFETCHICODEIFUNA0MA1A2PCA3RARBA0MA1A2PCA4A6A5A7A3VALCA0MA8A2PCA4A10A9A11A3VALPA0PCA4A13A12DECODEVALBA0RA2RBA3EXECUTEVALEA0VALBA4VALCMEMORYWRITEBACKRA2RBA3A14A0VALEPCUPDATEPCA0VALPPROBLEM433SOLUTIONTHELEAVEINSTRUCTIONISFAIRLYOBSCURE,BUTWORKINGTHROUGHITSIMPLEMENTATIONMAKESITEASIERTOUNDERTANDTHEIMPLEMENTATIONOFTHEPOPLINSTRUCTION,ONEOFTHETRICKIESTOFTHEY86INSTRUCTIONSSTAGELEAVEFETCHICODEIFUNA0MA1A2PCA3VALPA0PCA4A6A5DECODEVALAA0RA2A16A15A18A17A20A19A22A21A3VALBA0RA2A16A15A23A17A20A19A24A21A3EXECUTEVALEA0VALBA4A26A25MEMORYVALMA0MA8A2VALAA3WRITEBACKRA2A16A15A23A17A28A27A11A21A3A29A0VALERA2A15A23A17A20A19A22A21A3A29A0VALMPCUPDATEPCA0VALPPROBLEM434SOLUTIONTHEFOLLOWINGHCLCODEINCLUDESIMPLEMENTATIONSOFBOTHTHEIADDLINSTRUCTIONANDTHELEAVEINSTRUCTIONSTHEIMPLEMENTATIONSAREFAIRLYSTRAIGHTFORWARDGIVENTHECOMPUTATIONSTEPSLISTEDINTHESOLUTIONSTOPROBLEMS432AND433YOUCANTESTTHESOLUTIONSUSINGTHETESTCODEINTHEPTESTSUBDIRECTORYMAKESUREYOUUSECOMMANDLINEARGUMENTICODE/ARCH/SEQFULLANSHCL18CHAPTER1SOLUTIONSTOHOMEWORKPROBLEMS12HCLDESCRIPTIONOFCONTROLFORSINGLECYCLEY86PROCESSORSEQ3COPYRIGHTCRANDALEBRYANT,DAVIDROHALLARON,2002456THISISTHESOLUTIONFORTHEIADDLANDLEAVEPROBLEMS789CINCLUDESDONTALTERTHESE101112QUOTEINCLUDE13QUOTEINCLUDE“ISAH“14QUOTEINCLUDE“SIMH“15QUOTEINTSIM_MAININTARGC,CHARARGV16QUOTEINTGEN_PCRETURN017QUOTEINTMAININTARGC,CHARARGV18QUOTEPLUSMODE0RETURNSIM_MAINARGC,ARGV192021DECLARATIONSDONOTCHANGE/REMOVE/DELETEANYOFTHESE222324SYMBOLICREPRESENTATIONOFY86INSTRUCTIONCODES25INTSIGINOPI_NOP26INTSIGIHALTI_HALT27INTSIGIRRMOVLI_RRMOVL28INTSIGIIRMOVLI_IRMOVL29INTSIGIRMMOVLI_RMMOVL30INTSIGIMRMOVLI_MRMOVL31INTSIGIOPLI_ALU32INTSIGIJXXI_JMP33INTSIGICALLI_CALL34INTSIGIRETI_RET35INTSIGIPUSHLI_PUSHL36INTSIGIPOPLI_POPL37INSTRUCTIONCODEFORIADDLINSTRUCTION38INTSIGIIADDLI_IADDL39INSTRUCTIONCODEFORLEAVEINSTRUCTION40INTSIGILEAVEI_LEAVE4142SYMBOLICREPRESENTATIONOFY86REGISTERSREFERENCEDEXPLICITLY43INTSIGRESPREG_ESPSTACKPOINTER44INTSIGREBPREG_EBPFRAMEPOINTER45INTSIGRNONEREG_NONESPECIALVALUEINDICATING“NOREGISTER“4647ALUFUNCTIONSREFERENCEDEXPLICITLY48INTSIGALUADDA_ADDALUSHOULDADDITSARGUMENTS4950SIGNALSTHATCANBEREFERENCEDBYCONTROLLOGIC14CHAPTER4PROCESSORARCHITECTURE195152FETCHSTAGEINPUTS53INTSIGPCPCPROGRAMCOUNTER54FETCHSTAGECOMPUTATIONS55INTSIGICODEICODEINSTRUCTIONCONTROLCODE56INTSIGIFUNIFUNINSTRUCTIONFUNCTION57INTSIGRARARAFIELDFROMINSTRUCTION58INTSIGRBRBRBFIELDFROMINSTRUCTION59INTSIGVALCVALCCONSTANTFROMINSTRUCTION60INTSIGVALPVALPADDRESSOFFOLLOWINGINSTRUCTION6162DECODESTAGECOMPUTATIONS63INTSIGVALAVALAVALUEFROMREGISTERAPORT64INTSIGVALBVALBVALUEFROMREGISTERBPORT6566EXECUTESTAGECOMPUTATIONS67INTSIGVALEVALEVALUECOMPUTEDBYALU68BOOLSIGBCHBCONDBRANCHTEST6970MEMORYSTAGECOMPUTATIONS71INTSIGVALMVALMVALUEREADFROMMEMORY72737475CONTROLSIGNALDEFINITIONS767778FETCHSTAGE7980DOESFETCHEDINSTRUCTIONREQUIREAREGIDBYTE81BOOLNEED_REGIDS82ICODEINIRRMOVL,IOPL,IPUSHL,IPOPL,83IIADDL,84IIRMOVL,IRMMOVL,IMRMOVL8586DOESFETCHEDINSTRUCTIONREQUIREACONSTANTWORD87BOOLNEED_VALC88ICODEINIIRMOVL,IRMMOVL,IMRMOVL,IJXX,ICALL,IIADDL8990BOOLINSTR_VALIDICODEIN91INOP,IHALT,IRRMOVL,IIRMOVL,IRMMOVL,IMRMOVL,92IIADDL,ILEAVE,93IOPL,IJXX,ICALL,IRET,IPUSHL,IPOPL9495DECODESTAGE9697WHATREGISTERSHOULDBEUSEDASTHEASOURCE98INTSRCA99ICODEINIRRMOVL,IRMMOVL,IOPL,IPUSHLRA100ICODEINILEAVEREBP20CHAPTER1SOLUTIONSTOHOMEWORKPROBLEMS101ICODEINIPOPL,IRETRESP1021RNONEDONTNEEDREGISTER103104105WHATREGISTERSHOULDBEUSEDASTHEBSOURCE106INTSRCB107ICODEINIOPL,IRMMOVL,IMRMOVLRB108ICODEINIIADDLRB109ICODEINIPUSHL,IPOPL,ICALL,IRETRESP110ICODEINILEAVEREBP1111RNONEDONTNEEDREGISTER112113114WHATREGISTERSHOULDBEUSEDASTHEEDESTINATION115INTDSTE116ICODEINIRRMOVL,IIRMOVL,IOPLRB117ICODEINIIADDLRB118ICODEINIPUSHL,IPOPL,ICALL,IRETRESP119ICODEINILEAVERESP1201RNONEDONTNEEDREGISTER121122123WHATREGISTERSHOULDBEUSEDASTHEMDESTINATION124INTDSTM125ICODEINIMRMOVL,IPOPLRA126ICODEINILEAVEREBP1271RNONEDONTNEEDREGISTER128129130EXECUTESTAGE131132SELECTINPUTATOALU133INTALUA134ICODEINIRRMOVL,IOPLVALA135ICODEINIIRMOVL,IRMMOVL,IMRMOVLVALC136ICODEINIIADDLVALC137ICODEINICALL,IPUSHL4138ICODEINIRET,IPOPL4139ICODEINILEAVE4140OTHERINSTRUCTIONSDONTNEEDALU141142143SELECTINPUTBTOALU144INTALUB145ICODEINIRMMOVL,IMRMOVL,IOPL,ICALL,146IPUSHL,IRET,IPOPLVALB147ICODEINIIADDL,ILEAVEVALB148ICODEINIRRMOVL,IIRMOVL0149OTHERINSTRUCTIONSDONTNEEDALU15014CHAPTER4PROCESSORARCHITECTURE21151152SETTHEALUFUNCTION153INTALUFUN154ICODEIOPLIFUN1551ALUADD156157158SHOULDTHECONDITIONCODESBEUPDATED159BOOLSET_CCICODEINIOPL,IIADDL160161MEMORYSTAGE162163SETREADCONTROLSIGNAL164BOOLMEM_READICODEINIMRMOVL,IPOPL,IRET,ILEAVE165166SETWRITECONTROLSIGNAL167BOOLMEM_WRITEICODEINIRMMOVL,IPUSHL,ICALL168169SELECTMEMORYADDRESS170INTMEM_ADDR171ICODEINIRMMOVL,IPUSHL,ICALL,IMRMOVLVALE172ICODEINIPOPL,IRETVALA173ICODEINILEAVEVALA174OTHERINSTRUCTIONSDONTNEEDADDRESS175176177SELECTMEMORYINPUTDATA178INTMEM_DATA179VALUEFROMREGISTER180ICODEINIRMMOVL,IPUSHLVALA181RETURNPC182ICODEICALLVALP183DEFAULTDONTWRITEANYTHING184185186PROGRAMCOUNTERUPDATE187188WHATADDRESSSHOULDINSTRUCTIONBEFETCHEDAT189190INTNEW_PC191CALLUSEINSTRUCTIONCONSTANT192ICODEICALLVALC193TAKENBRANCHUSEINSTRUCTIONCONSTANT194ICODEIJXX195COMPLETIONOFRETINSTRUCTIONUSEVALUEFROMSTACK196ICODEIRETVALM197DEFAULTUSEINCREMENTEDPC1981VALP19922CHAPTER1SOLUTIONSTOHOMEWORKPROBLEMSJXXEDMMISPREDICTERETDMRET1RETEBUBBLEDMRET2BUBBLEEBUBBLEDRETMRET3GENERATEEUSEDMGEN/USE1WEUSEDGENERATEMGEN/USE2WEUSEDMGEN/USE3GENERATEWFIGURE11PIPELINESTATESFORSPECIALCONTROLCONDITIONSTHEPAIRSCONNECTEDBYARROWSCANARISESIMULTANEOUSLYCODE/ARCH/SEQFULLANSHCLPROBLEM435SOLUTIONSEETHESOLUTIONTOHOMEWORKPROBLEM434WHENYOUTESTTHISCODEWITHTHESCRIPTSINPTEST,BESURETOUSETHECOMMANDLINEARGUMENTLPROBLEM436SOLUTIONTHISISAHARDPROBLEM,BECAUSETHEREAREMANYPOSSIBLECOMBINATIONSOFSPECIALCASESTHATCANOCCURSIMULTANEOUSLYFIGURE11ILLUSTRATESTHISPROBLEMWECANSEETHATTHEREARENOWTHREEVARIANTSOFGENERATE/USECASES,WHERETHEINSTRUCTIONINTHEEXECUTE,MEMORY,ORWRITEBACKSTAGEISGENERATINGAVALUETOBEUSEDBYTHEINSTRUCTIONINTHEDECODESTAGETHESECONDANDTHIRDGENERATE/USECASESCANOCCURINCOMBINATIONWITHAMISPREDICTEDBRANCHINTHISCASE,WEWANTTOHANDLETHEMISPREDICTION,INJECTINGBUBBLESINTOTHEDECODEANDEXECUTESTAGESFORCASESWHEREAMISPREDICTIONDOESNOTOCCUR,EACHOFTHEGENERATE/USECONDITIONSCANOCCURINCOMBINATIONWITHTHEFIRSTRETPATTERNWHERERETUSESTHEVALUEOFESPINTHISCASE,WEWANTTOHANDLETHEDATAHAZARDBYSTALLINGTHEFETCHANDANDDECODESTAGESANDINJECTINGABUBBLEINTOTHEEXECUTESTAGETHETESTSCRIPTCTESTPLINTHEPTESTSUBDIRECTORYGENERATESTESTSTHATTHOROUGHLYTES

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论