匯編語言課件:IA Inter ARM_第1頁
匯編語言課件:IA Inter ARM_第2頁
匯編語言課件:IA Inter ARM_第3頁
匯編語言課件:IA Inter ARM_第4頁
匯編語言課件:IA Inter ARM_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1Inter&ARMInter&ARM1.INTEL64ANDIA-32ARCHITECTURESBRIEFHISTORYOFINTEL64ANDIA-32ARCHITECTURE16-bitProcessorsandSegmentation(1978)TheIntel286Processor(1982)(protectedmode)TheIntel386Processor(1985)(32-bitprocessor/4G/Paging)TheIntel486Processor(1989)(moreparallelexecutioncapability/first-levelcache/x87FPU)TheIntelPentiumProcessor(1993)((twopipelines,knownasuandv,togethercanexecutetwoinstructionsperclock/first-levelcachewith8KBytesdevotedtocodeandanother8KBytesdevotedtodata/write-back/BranchpredictionTheP6FamilyofProcessors(1995-1999)(superscalarmicroarchitecture)(PentiumPro/PentiumII/PentiumIIXeon/Celeron/PentiumIII/PentiumIIIXeon)TheIntel?Pentium?4ProcessorFamily(2000-2006)32.BASICEXECUTIONENVIRONMENTOVERVIEWOFTHEBASICEXECUTIONENVIRONMENTAddressspaceBasicprogramexecutionregistersx87FPUregistersMMXregisters、XMMregistersStackI/OportsControlregistersMemorymanagementregistersDebugregistersMemorytyperangeregisters(MTRRs)Machinespecificregisters(MSRs)Machinespecificregisters(MSRs)Performancemonitoringcounters4MODESOFOPERATIONProtectedmodeReal-addressmodeSystemmanagementmode(SMM)Intel64ArchitectureCompatibilitymode(sub-modeofIA-32emode)64-bitmode(sub-modeofIA-32emode)2.BASICEXECUTIONENVIRONMENT56MEMORYORGANIZATIONEachbyteisassignedauniqueaddress,calledaphysicaladdressSegmentationandpagingIA-32MemoryModelsFlatmemorymodel:FlatmemorymodelSegmentedmemorymodelReal-addressmodememorymodelFigurePagingandVirtualMemorylinearaddressspaceisdividedintopageswhicharemappedtovirtualmemoryMemoryOrganizationin64-BitModeModesofOperationvs.MemoryModel:TherelationshipbetweenoperatingmodesandmemorymodelsProtectedmodeReal-addressmodeSystemmanagementmodeCompatibilitymode64-bitmode2.BASICEXECUTIONENVIRONMENT7832-Bitand16-BitAddressandOperandEachbyteisassignedauniqueaddress,calledaphysicaladdressSegmentationandpagingIA-32MemoryModelsFlatmemorymodel:FlatmemorymodelSegmentedmemorymodelReal-addressmodememorymodelFigurePagingandVirtualMemorylinearaddressspaceisdividedintopageswhicharemappedtovirtualmemoryMemoryOrganizationin64-BitModeModesofOperationvs.MemoryModel:TherelationshipbetweenoperatingmodesandmemorymodelsProtectedmodeReal-addressmodeSystemmanagementmodeCompatibilitymode64-bitmode2.BASICEXECUTIONENVIRONMENT9BASICPROGRAMEXECUTIONREGISTERSGeneral-purposeregistersEAX,EBX,ECX,EDX,ESI,EDI,EBP,andESPOperandsforlogicalandarithmeticoperationsOperandsforaddresscalculationsMemorypointersEAX—AccumulatorforoperandsandresultsdataEBX—PointertodataintheDSsegmentECX—CounterforstringandloopoperationsEDX—I/OpointerESI—PointertodatainthesegmentpointedtobytheDSregister;sourcepointerforstringoperationsEDI—Pointertodata(ordestination)inthesegmentpointedtobytheESregister;destinationpointerforstringoperationsESP—Stackpointer(intheSSsegment)EBP—Pointertodataonthestack(intheSSsegment)2.BASICEXECUTIONENVIRONMENT102.BASICEXECUTIONENVIRONMENT11BASICPROGRAMEXECUTIONREGISTERSGeneral-PurposeRegistersin64-BitModeSegmentRegistersCS,DS,SS,ES,FS,andGShold16-bitsegmentselectorsFigureSegmentRegistersin64-BitMode2.BASICEXECUTIONENVIRONMENT1213BASICPROGRAMEXECUTIONREGISTERSEFLAGSRegister2.BASICEXECUTIONENVIRONMENT14INSTRUCTIONPOINTEROPERANDADDRESSINGtheinstructionitself(animmediateoperand)aregisteramemorylocationanI/Oport2.BASICEXECUTIONENVIRONMENT153.DATATYPESFUNDAMENTALDATATYPES163.DATATYPES17NUMERICDATATYPES 3.DATATYPES184.INSTRUCTIONSETSUMMARYGENERAL-PURPOSEINSTRUCTIONSDataTransferInstructionsCMOVE/CMOVZConditionalmoveifequal/ConditionalmoveifzeroCMOVNE/CMOVNZConditionalmoveifnotequal/ConditionalmoveifnotzeroCMOVA/CMOVNBEConditionalmoveifabove/ConditionalmoveifnotbeloworequalCMOVAE/CMOVNBConditionalmoveifaboveorequal/ConditionalmoveifnotbelowCMOVB/CMOVNAEConditionalmoveifbelow/ConditionalmoveifnotaboveorequalCMOVBE/CMOVNAConditionalmoveifbeloworequal/ConditionalmoveifnotaboveCMOVG/CMOVNLEConditionalmoveifgreater/ConditionalmoveifnotlessorequalCMOVGE/CMOVNLConditionalmoveifgreaterorequal/ConditionalmoveifnotlessCMOVL/CMOVNGEConditionalmoveifless/ConditionalmoveifnotgreaterorequalCMOVLE/CMOVNGConditionalmoveiflessorequal/Conditionalmoveifnotgreater19CMOVCConditionalmoveifcarryCMOVNCConditionalmoveifnotcarryCMOVOConditionalmoveifoverflowCMOVNOConditionalmoveifnotoverflowCMOVSConditionalmoveifsign(negative)CMOVNSConditionalmoveifnotsign(non-negative)CMOVP/CMOVPEConditionalmoveifparity/ConditionalmoveifparityevenCMOVNP/CMOVPOConditionalmoveifnotparity/ConditionalmoveifparityoddXCHGExchangeBSWAPByteswapXADDExchangeandaddCMPXCHGCompareandexchangeCMPXCHG8BCompareandexchange8bytesPUSHPushontostackPOPPopoffofstackPUSHA/PUSHADPushgeneral-purposeregistersontostackPOPA/POPADPopgeneral-purposeregistersfromstackCWD/CDQConvertwordtodoubleword/ConvertdoublewordtoquadwordCBW/CWDEConvertbytetoword/ConvertwordtodoublewordinEAXregisterMOVSXMoveandsignextendMOVZXMoveandzeroextend 4.INSTRUCTIONSETSUMMARY20GENERAL-PURPOSEINSTRUCTIONSBinaryArithmeticInstructionsADDIntegeraddADCAddwithcarrySUBSubtractSBBSubtractwithborrowIMULSignedmultiplyMULUnsignedmultiplyIDIVSigneddivideDIVUnsigneddivideINCIncrementDECDecrementNEGNegateCMPCompare4.INSTRUCTIONSETSUMMARY21GENERAL-PURPOSEINSTRUCTIONSDecimalArithmeticInstructionsDAADecimaladjustafteradditionDASDecimaladjustaftersubtractionAAAASCIIadjustafteradditionAASASCIIadjustaftersubtractionAAMASCIIadjustaftermultiplicationAADASCIIadjustbeforedivisionDecimalArithmeticInstructionsANDPerformbitwiselogicalANDORPerformbitwiselogicalORXORPerformbitwiselogicalexclusiveORNOTPerformbitwiselogicalNOT4.INSTRUCTIONSETSUMMARY22GENERAL-PURPOSEINSTRUCTIONSShiftandRotateInstructionsSARShiftarithmeticrightSHRShiftlogicalrightSAL/SHLShiftarithmeticleft/ShiftlogicalleftSHRDShiftrightdoubleSHLDShiftleftdoubleRORRotaterightROLRotateleftRCRRotatethroughcarryrightRCLRotatethroughcarryleft4.INSTRUCTIONSETSUMMARY23GENERAL-PURPOSEINSTRUCTIONSControlTransferInstructionsJMPJumpJE/JZJumpifequal/JumpifzeroJNE/JNZJumpifnotequal/JumpifnotzeroJA/JNBEJumpifabove/JumpifnotbeloworequalJAE/JNBJumpifaboveorequal/JumpifnotbelowJB/JNAEJumpifbelow/JumpifnotaboveorequalJBE/JNAJumpifbeloworequal/JumpifnotaboveJG/JNLEJumpifgreater/JumpifnotlessorequalJGE/JNLJumpifgreaterorequal/JumpifnotlessJL/JNGEJumpifless/JumpifnotgreaterorequalJLE/JNGJumpiflessorequal/JumpifnotgreaterJCJumpifcarryJNCJumpifnotcarryJOJumpifoverflowJNOJumpifnotoverflowJSJumpifsign(negative)JNSJumpifnotsign(non-negative)4.INSTRUCTIONSETSUMMARY24JPO/JNPJumpifparityodd/JumpifnotparityJPE/JPJumpifparityeven/JumpifparityJCXZ/JECXZJumpregisterCXzero/JumpregisterECXzeroLOOPLoopwithECXcounterLOOPZ/LOOPELoopwithECXandzero/LoopwithECXandequalLOOPNZ/LOOPNELoopwithECXandnotzero/LoopwithECXandnotequalCALLCallprocedureRETReturnIRETReturnfrominterruptINTSoftwareinterruptINTOInterruptonoverflowBOUNDDetectvalueoutofrangeENTERHigh-levelprocedureentryLEAVEHigh-levelprocedureexit4.INSTRUCTIONSETSUMMARY25GENERAL-PURPOSEINSTRUCTIONSStringInstructionsMOVS/MOVSBMovestring/MovebytestringMOVS/MOVSWMovestring/MovewordstringMOVS/MOVSDMovestring/MovedoublewordstringCMPS/CMPSBComparestring/ComparebytestringCMPS/CMPSWComparestring/ComparewordstringCMPS/CMPSDComparestring/ComparedoublewordstringSCAS/SCASBScanstring/ScanbytestringSCAS/SCASWScanstring/ScanwordstringSCAS/SCASDScanstring/ScandoublewordstringLODS/LODSBLoadstring/LoadbytestringLODS/LODSWLoadstring/LoadwordstringLODS/LODSDLoadstring/LoaddoublewordstringSTOS/STOSBStorestring/StorebytestringSTOS/STOSWStorestring/StorewordstringSTOS/STOSDStorestring/StoredoublewordstringREPRepeatwhileECXnotzeroREPE/REPZRepeatwhileequal/RepeatwhilezeroREPNE/REPNZRepeatwhilenotequal/Repeatwhilenotzero4.INSTRUCTIONSETSUMMARY26X87FPUINSTRUCTIONSx87FPUDataTransferInstructionsFLDLoadfloating-pointvalueFSTStorefloating-pointvalueFSTPStorefloating-pointvalueandpopFILDLoadintegerFISTStoreintegerFISTP1StoreintegerandpopFBLDLoadBCDFBSTPStoreBCDandpopFXCHExchangeregistersFCMOVEFloating-pointconditionalmoveifequalFCMOVNEFloating-pointconditionalmoveifnotequalFCMOVBFloating-pointconditionalmoveifbelowFCMOVBEFloating-pointconditionalmoveifbeloworequalFCMOVNBFloating-pointconditionalmoveifnotbelowFCMOVNBEFloating-pointconditionalmoveifnotbeloworequalFCMOVUFloating-pointconditionalmoveifunorderedFCMOVNUFloating-pointconditionalmoveifnotunordered 4.INSTRUCTIONSETSUMMARY27X87FPUINSTRUCTIONSx87FPUBasicArithmeticInstructionsFADDAddfloating-pointFADDPAddfloating-pointandpopFIADDAddintegerFSUBSubtractfloating-pointFSUBPSubtractfloating-pointandpopFISUBSubtractintegerFSUBRSubtractfloating-pointreverseFSUBRPSubtractfloating-pointreverseandpopFISUBRSubtractintegerreverseFMULMultiplyfloating-pointFMULPMultiplyfloating-pointandpopFIMULMultiplyintegerFDIVDividefloating-pointFDIVPDividefloating-pointandpopFIDIVDivideintegerFDIVRDividefloating-pointreverseFDIVRPDividefloating-pointreverseandpop

4.INSTRUCTIONSETSUMMARY28FIDIVRDivideintegerreverseFPREMPartialremainderFPREM1IEEEPartialremainderFIDIVRDivideintegerreverseFPREMPartialremainderFPREM1IEEEPartialremainder4.INSTRUCTIONSETSUMMARY295.

PROCEDURECALLS,INTERRUPTS,ANDEXCEPTIONSPROCEDURECALLTYPESTheprocessorsupportsprocedurecallsinthefollowingtwodifferentways:CALLandRETinstructionsENTERandLEAVEinstructions,inconjunctionwiththeCALLandRETSTACKS30StackonNearandFarCalls31ARMCPUMODEUsermode:Theonlynon-privilegedmode.Systemmode:Theonlyprivilegedmodethatisnotenteredbyanexception.ItcanonlybeenteredbyexecutinganinstructionthatexplicitlywritestothemodebitsoftheCPSR.Supervisor

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論