汇编语言课件:IA Inter ARM_第1页
汇编语言课件:IA Inter ARM_第2页
汇编语言课件:IA Inter ARM_第3页
汇编语言课件:IA Inter ARM_第4页
汇编语言课件:IA Inter ARM_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

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

评论

0/150

提交评论