INTEL汇编指令集.docx
- 文档编号:24581532
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:77
- 大小:40.64KB
INTEL汇编指令集.docx
《INTEL汇编指令集.docx》由会员分享,可在线阅读,更多相关《INTEL汇编指令集.docx(77页珍藏版)》请在冰豆网上搜索。
INTEL汇编指令集
INTEL汇编指令集
IntelAssembleInstructionSet
Intel8086FamilyArchitecture
GeneralPurposeRegistersSegmentRegisters
AH/ALAX(EAX)AccumulatorCSCodeSegment
BH/BLBX(EBX)BaseDSDataSegment
CH/CLCX(ECX)CounterSSStackSegment
DH/DLDX(EDX)DataESExtraSegment
(FS)386andnewer
(Exx)indicates386+32bitregister(GS)386andnewer
PointerRegistersStackRegisters
SI(ESI)SourceIndexSP(ESP)StackPointer
DI(EDI)DestinationIndexBP(EBP)BasePointer
IPInstructionPointer
StatusRegisters
FLAGSStatusFlags(seeFLAGS)
SpecialRegisters(386+only)
CR0ControlRegister0DR0DebugRegister0
CR2ControlRegister2DR1DebugRegister1
CR3ControlRegister3DR2DebugRegister2
DR3DebugRegister3
TR4TestRegister4DR6DebugRegister6
TR5TestRegister5DR7DebugRegister7
TR6TestRegister6
TR7TestRegister7
RegisterDefaultSegmentValidOverrides
BPSSDS,ES,CS
SIorDIDSES,SS,CS
DIstringsESNone
SIstringsDSES,SS,CS
-seeCPUDETECTINGInstructionTiming
InstructionClockCycleCalculation
Someinstructionsrequireadditionalclockcyclesduetoa"Next
InstructionComponent"identifiedbya"+m"intheinstruction
clockcyclelistings.Thisisduetotheprefetchqueuebeing
purgeonacontroltransfers.Belowisthegeneralrulefor
calculating"m":
88/86notapplicable
286"m"isthenumberofbytesinthenextinstruction
386"m"isthenumberofcomponentsinthenextinstruction
(theinstructioncoding(eachbyte),plusthedataand
thedisplacementareallconsideredcomponents)
8088/8086EffectiveAddress(EA)Calculation
DescriptionClockCycles
Displacement6
BaseorIndex(BX,BP,SI,DI)5
Displacement+(BaseorIndex)9
Base+Index(BP+DI,BX+SI)7
Base+Index(BP+SI,BX+DI)8
Base+Index+Displacement(BP+DI,BX+SI)11
Base+Index+Displacement(BP+SI+disp,BX+DI+disp)12
-add4cyclesforwordoperandsatoddaddresses
-add2cyclesforsegmentoverride
-80188/80186timingsdifferfromthoseofthe8088/8086/80286
TaskStateCalculation
"TS"isdefinedasswitchingfromVM/486or80286TSStooneof
thefollowing:
+---------------------------------------+
|NewTask|
+-------+-------+-------+-------+-------+
+---------------+486TSS|486TSS|386TSS|386TSS|286TSS|
|OldTask|(VM=0)|(VM=1)|(VM=0)|(VM=1)||
+---------------+-------+-------+-------+-------+-------+
386TSS(VM=0)|||309|226|282|
+-------+-------+-------+-------+-------+
386TSS(VM=1)|||314|231|287|
+-------+-------+-------+-------+-------+
386CPU/286TSS|||307|224|280|
+-------+-------+-------+-------+-------+
486CPU/286TSS|199|177|||180|
+---------------------------------------+
Miscellaneous
-alltimingsareforbestcaseanddonottakeintoaccountwait
states,instructionalignment,thestateoftheprefetchqueue,
DMArefreshcycles,cachehits/missesorexceptionprocessing.
-toconvertclockstonanosecondsdivideonemicrosecondbythe
processorspeedinMegaHertz:
(1000MHz/(nMHz))=Xnanoseconds
-see8086Architecture
FLAGS-Intel8086FamilyFlagsRegister
|11|10|F|E|D|C|B|A|9|8|7|6|5|4|3|2|1|0|
|||||||||||||||||+---CFCarryFlag
||||||||||||||||+---1
|||||||||||||||+---PFParityFlag
||||||||||||||+---0
|||||||||||||+---AFAuxiliaryFlag
||||||||||||+---0
|||||||||||+---ZFZeroFlag
||||||||||+---SFSignFlag
|||||||||+---TFTrapFlag(SingleStep)
||||||||+---IFInterruptFlag
|||||||+---DFDirectionFlag
||||||+---OFOverflowflag
||||+-----IOPLI/OPrivilegeLevel(286+only)
|||+-----NTNestedTaskFlag(286+only)
||+-----0
|+-----RFResumeFlag(386+only)
+------VMVirtualModeFlag(386+only)
-seePUSHFPOPFSTICLISTDCLD
MSW-MachineStatusWord(286+only)
|31|30-5|4|3|2|1|0|MachineStatusWord
||||||+----ProtectionEnable(PE)
|||||+-----MathPresent(MP)
||||+------Emulation(EM)
|||+-------TaskSwitched(TS)
||+--------ExtensionType(ET)
|+----------Reserved
+-------------Paging(PG)
Bit0PEProtectionEnable,switchesprocessorbetween
protectedandrealmode
Bit1MPMathPresent,controlsfunctionoftheWAIT
instruction
Bit2EMEmulation,indicateswhethercoprocessorfunctions
aretobeemulated
Bit3TSTaskSwitched,setandinterrogatedbycoprocessor
ontaskswitchesandwheninterprettingcoprocessor
instructions
Bit4ETExtensionType,indicatestypeofcoprocessorin
system
Bits5-30Reserved
bit31PGPaging,indicateswhethertheprocessorusespage
tablestotranslatelinearaddressestophysical
addresses
-seeSMSWLMSW
8086/80186/80286/80386/80486InstructionSet
AAA-AsciiAdjustforAddition
Usage:
AAA
Modifiesflags:
AFCF(OF,PF,SF,ZFundefined)
ChangescontentsofALtovalidunpackeddecimal.Thehighorder
nibbleiszeroed.
ClocksSize
Operands808x286386486Bytes
none83431
AAD-AsciiAdjustforDivision
Usage:
AAD
Modifiesflags:
SFZFPF(AF,CF,OFundefined)
Usedbeforedividingunpackeddecimalnumbers.MultipliesAHby
10andtheaddsresultintoAL.SetsAHtozero.Thisinstruction
isalsoknowntohaveanundocumentedbehavior.
AL:
=10*AH+AL
AH:
=0
ClocksSize
Operands808x286386486Bytes
none601419142
AAM-AsciiAdjustforMultiplication
Usage:
AAM
Modifiesflags:
PFSFZF(AF,CF,OFundefined)
AH:
=AL/10
AL:
=ALmod10
Usedaftermultiplicationoftwounpackeddecimalnumbers,this
instructionadjustsanunpackeddecimalnumber.Thehighorder
nibbleofeachbytemustbezeroedbeforeusingthisinstruction.
Thisinstructionisalsoknowntohaveanundocumentedbehavior.
ClocksSize
Operands808x286386486Bytes
none831617152
AAS-AsciiAdjustforSubtraction
Usage:
AAS
Modifiesflags:
AFCF(OF,PF,SF,ZFundefined)
CorrectsresultofapreviousunpackeddecimalsubtractioninAL.
Highordernibbleiszeroed.
ClocksSize
Operands808x286386486Bytes
none83431
ADC-AddWithCarry
Usage:
ADCdest,src
Modifiesflags:
AFCFOFSFPFZF
Sumstwobinaryoperandsplacingtheresultinthedestination.
IfCFisset,a1isaddedtothedestination.
ClocksSize
Operands808x286386486Bytes
reg,reg32212
mem,reg16+EA7732-4(W88=24+EA)
reg,mem9+EA7622-4(W88=13+EA)
reg,immed43213-4
mem,immed17+EA7733-6(W88=23+EA)
accum,immed43212-3
ADD-ArithmeticAddition
Usage:
ADDdest,src
Modifiesflags:
AFCFOFPFSFZF
Adds"src"to"dest"andreplacingtheoriginalcontentsof"dest".
Bothoperandsarebinary.
ClocksSize
Operands808x286386486Bytes
reg,reg32212
mem,reg16+EA7732-4(W88=24+EA)
reg,mem9+EA7622-4(W88=13+EA)
reg,immed43213-4
mem,immed17+EA7733-6(W88=23+EA)
accum,immed43212-3
AND-LogicalAnd
Usage:
ANDdest,src
Modifiesflags:
CFOFPFSFZF(AFundefined)
PerformsalogicalANDofthetwooperandsreplacingthedestination
withtheresult.
ClocksSize
Operands808x286386486Bytes
reg,reg32212
mem,reg16+EA7732-4(W88=24+EA)
reg,mem9+EA7612-4(W88=13+EA)
reg,immed43213-4
mem,immed17+EA7733-6(W88=23+EA)
accum,immed43212-3
ARPL-AdjustedRequestedPrivilegeLevelofSelector(286+PM)
Usage:
ARPLdest,src
(286+protectedmode)
Modifiesflags:
ZF
ComparestheRPLbitsof"dest"against"src".IftheRPLbits
of"dest"arelessthan"src",thedestinationRPLbitsareset
equaltothesourceRPLbitsandtheZeroFlagisset.Otherwise
theZeroFlagiscleared.
ClocksSize
Operands808x286386486Bytes
reg,reg-102092
mem,reg-112194
BOUND-ArrayIndexBoundCheck(80188+)
Usage:
BOUNDsrc,limit
Modifiesflags:
None
Arrayindexinsourceregisterischeckedagainstupperandlower
boundsinmemorysource.Thefirstwordlocatedat"limit"is
thelowerboundaryandthewordat"limit+2"istheupperarraybound.
Interrupt5occursifthesourcevalueislessthanorhigherthan
thesource.
ClocksSize
Operands808x286386486Bytes
reg16,mem32-nj=13nj=1072
reg32,mem64-nj=13nj=1072
-nj=nojumptaken
BSF-BitScanForward(386+)
Usage:
BSFdest,src
Modifiesflags:
ZF
Scanssourceoperandforfirstbitset.SetsZFifabitisfound
setandloadsthedestinationwithanindextofirstsetbit.Clears
ZFisnobitsarefoundset.BSFscansforwardacrossbitpattern
(0-n)whileBSRscansinreverse(n-0).
ClocksSize
Operands808x286386486Bytes
reg,reg--10+3n6-423
reg,mem--10+3n7-433-7
reg32,reg32--10+3n6-423-7
reg32,mem32--10+3n7-433-7
BSR-BitScanReverse(386+)
Usage:
BSRdest,src
Modifiesflags:
ZF
Scanssourceoperandforfirstbitset.SetsZFifabitisfound
setandloadsthedestinationwithanindextofirstsetbit.Clears
ZFisnobitsarefoundset.BSFscansforwardacrossbitpattern
(0-n)whileBSRscansinreverse(n-0).
ClocksSize
Operands808x286386486Bytes
reg,reg--10+3n6-1033
reg,mem--10+3n7-1043-7
reg32,reg32--10+3n6-1033-7
reg32,mem32--10+3n7-1043-7
BSWAP-ByteSwap(486+)
Usage:
BSWAPreg32
Modifiesflags:
none
Changesthebyteorderofa32bitregisterfrombigendianto
littleendianorviceversa.Resultleftindestinationregister
isundefinediftheoperandisa16bitregister.
ClocksSize
Operands808x286386486Bytes
reg32---12
BT-BitTest(386+)
Usage:
BTdest,src
Modifiesflags:
CF
Thedestinationbitindexedbythe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- INTEL 汇编 指令