Beschreibung-Kurz: CPU

Liste mit allen Bekannten ASM-Funktionen und deren Kurz-Beschreibung, für die Central-Processing-Unit.

Beschreibung-Lang-CPU
OpCodes-CPU

Beschreibung-Kurz-FPU
Beschreibung-Kurz-Weitere

Beschreibung-CPU

IDNumASMInversKategorieHardwareEnglishKurze Beschreibung
0010MOVMove8086MoveKopiert Operanden
0020MOVSXMove80386Move with Sign ExtensionKopiert Operanden mit Vorzeichenerweiterung
0030MOVZXMove80386Move with Zero ExtensionKopiert Operanden mit Nullerweiterung
0040LEAPointer8086Load Effective AddressEffektive Adresse laden
0050LARPointer80286Load Access RightsZugriffsrechte laden
0060XCHGReg8086ExchangeAustausch zweier Operanden
0070XADDReg80486Exchange AddAustausch zweier Operanden und Addition
0080CALLCall8086CallUnterprogramms aufrufen (Prozedur)
0090RETCall8086ReturnRücksprung aus Unterprogramms (Prozedur) in den aufrufenden Programmteil.
0100RETFCallReturn Within SegmentRücksprung aus Unterprogramms (Prozedur) in den aufrufenden Programmteil. Holt ein Wort vom Stack und führt einen Near-Sprung aus.
0110RETNCallReturn IntersegmentRücksprung aus Unterprogramms (Prozedur) in den aufrufenden Programmteil. Holt zwei Worte vom Stack und führt einen Far-Sprung aus.
0120
0130INCDECMat8086IncrementOperanden + 1
0140DECINCMat8086DecrementOperanden - 1
0150ADDSUBMat8086AddAddition zweier Operanden
0160ADCSBBMat8086Add With CarryAddition unter Berücksichtigung des Carry-Flags
0170SUBADDMat8086SubtractSubtraktion zweier Operanden
0180SBBADCMat8086Subtract With BorrowSubtraktion unter Berücksichtigung des Carry-Flags
0190IMULIDIVMat8086Integer Multiply, SignedInteger Multiplikation zweier Operanden
0200IDIVIMULMat8086Integer Divide, SignedInteger Division zweier vorzeichenbehafteter Operanden
0210MULDIVMat8086Multiply, UnsignedMultiplikation zweier vorzeichenloser Operanden
0220DIVMULMat8086Divide, UnsignedDivision zweier vorzeichenloser Operanden
0230NEGNEGMat8086DecrementArithmetische Negation eines Operanden
0240SALSARMat-Shift8086Shift Arithmetic LeftArithmetische Bitverschiebung nach links
0250SARSALMat-Shift8086Shift Arithmetic RightArithmetische Bitverschiebung nach rechts
0260SHLSHRMat-Shift8086Shift Logical LeftLogische Bitverschiebung nach links
0270SHLDSHRDMat-Shift80386Logische Bitverschiebung nach links mit doppelter Genauigkeit
0280SHRSHLMat-Shift8086Shift Logical RightLogische Bitverschiebung nach rechts
0290SHRDSHLDMat-Shift80386Logische Bitverschiebung nach rechts mit doppelter Genauigkeit
0300ROLRORMat-Shift8086Rotate LeftBitrotation nach links (ohne Carry-Flag)
0310RORROLMat-Shift8086Rotate RightBitrotation nach rechts (ohne Carry-Flag)
0320RCLRCRMat-Shift8086Rotate Through Carry LeftBitrotation nach links unter Berücksichtigung des Carry-Flags.
0330RCRRCLMat-Shift8086Rotate Through Carry RightBitrotation nach rechts unter Berücksichtigung des Carry-Flags.
0340NOTMat-Bool8086NotLogische Negation eines Operanden
0350ANDMat-Bool8086AndLogische UND-Verknüpfung zweier Operanden
0360ORMat-Bool8086OrLogische ODER-Verknüpfung zweier Operanden
0370XORXORMat-Bool8086XorLogische Exklusive-ODER-Verknüpfung zweier Operanden
0380BTBit80386Bit TestPrüfung auf gesetztes Bit
0390BTSBTRBit80386Bit Test and SetPrüfung auf gesetztes Bit mit anschließendem Setzen
0400BTRBTSBit80386Bit Test and ResetPrüfung auf gesetztes Bit mit anschließendem Löschen
0410BTCBit80386Bit Test and ComplementPrüfung auf gesetztes Bit mit anschließender Bildung des Komplementärwertes des Bits
0420BSFBSRBit80386Bit Search ForwardBitweises Durchsuchen eines Operanden; die Suchrichtung ist vorwärts
0430BSRBSFBit80386Bit Search ReverseBitweises Durchsuchen des Operanden mit umgekehrter Suchrichtung
0440
0450CLCSTCFlag8086Clear CarryCarry-Flag löschen
0460STCCLCFlag8086Set CarryCarry-Flags setzen
0470CMCFlag8086Clear Complement CarryCarry-Flag invertieren
0480CLDSTDFlag8086Clear DirectionDirection-Flag löschen
0490STDCLDFlag8086Set DirectionDirection-Flags invertieren
0500CLISTIFlag8086Clear InterruptInterrupt Reaktion ausschalten
0510STICLIFlag8086Set InterruptInterrupt Reaktion einschalten
0520LAHFSAHFFlag8086Load AH With FlagsFlagregisterinhaltes in das AH-Register kopieren
0530SAHFLAHFFlag8086Store AH To FlagsInhalts von AH in das Flag-Register kopieren
0540CLTSFlag80286Clear Task-SwitchTask-Switch- Flag löschen
0550SALCFlag
0560PUSHFPOPFFlag Stack8086Push FlagsInhalts des Flagregisters auf den Stack kopieren. (Byte)
0570PUSHFWPOPFWFlag Stack8086Push FlagsInhalts des Flagregisters auf den Stack kopieren. (Word)
0580PUSHFDPOPFDFlag Stack80386Push FlagsInhalts des Flagregisters auf den Stack kopieren. (DWord)
0590POPFPUSHFFlag Stack8086Pop FlagsDaten vom Stack und diese ins Flagregister laden. (Byte)
0600POPFWPUSHFWFlag Stack80386Pop FlagsDaten vom Stack und diese ins Flagregister laden. (Word)
0610POPFDPUSHFDFlag Stack80386Pop FlagsDaten vom Stack und diese ins Flagregister laden. (DWord)
0620
0630AAABCD-Pack8086ASCII Adjust For AddKorrektur einer Addition mittels ADD, falls die beiden addierten Werte gültige ungepackte BCDs waren.
0640DAABCD-Pack8086Decimal Adjust For AddKorrektur einer Addition mittels ADD, falls die beiden addierten Werte gültige gepackte BCDs waren.
0650AASBCD-Unpack8086ASCII Adjust For SubtractKorrektur einer Subtraktion zweier ungepackter BCDs mittels SUB.
0660DASBCD-Unpack8086Decimal Adjust For SubtractKorrektur einer Subtraktion mittels SUB, falls die beiden subtrahierten Werte gültige gepackte BCDs waren.
0670AADBCD8086ASCII Adjust For DivideVorbereitung einer Division mittels DIV, falls die beiden zu dividierenden Werte gültige BCDs sind.
0680AAMBCD8086ASCII Adjust For MultiplyKorrektur einer Multiplikation zweier ungepackter BCDs mittels MUL.
0690CBWConv8086Convert Byte To WordBytes erweitern zu einem Wort
0700CWDConv8086Convert Word To Double WordWorts erweitern zu einem Doppelwort
0710CWDEConv80386Worts erweitern zu einem Doppelwort
0720CDQConv80386Doppelworts erweitern zu einem Quadwort
0730BSWAPConv80486Byte-Reihenfolge in einem Doppelwort vertauschen
0740
0750PUSHPOPStack8086PushDaten auf den Stack kopieren
0760POPPUSHStack8086PopDaten vom Stack lesen
0770PUSHAPOPAStack-Reg80286Alle Prozessorregister auf den Stack kopieren. (Byte)
0780PUSHAWPOPAWStack-Reg80286Alle Prozessorregister auf den Stack kopieren. (Word)
0790PUSHADPOPADStack-Reg80386Alle Prozessorregister auf den Stack kopieren. (DWord)
0800POPAPUSHAStack-Reg80186Alle Prozessorregister vom Stack laden (Byte)
0810POPAWPUSHAWStack-Reg80386Alle Prozessorregister vom Stack laden (Word)
0820POPADPUSHADStack-Reg80386Alle Prozessorregister vom Stack laden (DWord)
0830ENTERLEAVEStack-Reg80186Stackrahmen erstellen für Parameter
0840LEAVEENTERStack-Reg80186Stackrahmen entfernen
0850
0860TESTComp8086TestLogischer Vergleich zweier Operanden
0870CMPComp8086CompareArithmetischer Vergleich zweier Operanden
0910CMPXCHGComp80486Arithmetischer Vergleich zweier Operanden, mit anschließendem Austausch.
0920CMPXCHG486Comp
0930CMPXCHG8BCompPentiumArithmetischer Vergleich zweier Operanden, mit anschließendem Austausch.
0940
0950JMPJump8086Unconditional JumpUnbedingter Sprung an eine neue Codeadresse.
0960JccJump8086Bedingter Sprung an eine neue Codeadresse.
0970JEJNEJump-Unsigned8086Jump if EqualSprung wenn: == Gleich [Z=1]
0980JNEJEJump-Unsigned8086Jump if Not EqualSprung wenn: != Nicht Gleich [Z=0]
0990JAJNAJump-Unsigned8086Jump if AboveSprung wenn: > Größer [Z=0 and C=0]
1000JNAJAJump-Unsigned8086Jump if Not AboveSprung wenn: !> Nicht Größer [Z=1 or C=1]
1010JBJNBJump-Unsigned8086Jump if BelowSprung wenn: < Kleiner [C=1]
1020JNBJBJump-Unsigned8086Jump if Not BelowSprung wenn: !< Nicht Kleiner [C=0]
1030JAEJNAEJump-Unsigned8086Jump if Above Or EqualSprung wenn: => Größer oder Gleich [C=0]
1040JNAEJAEJump-Unsigned8086Jump if Not Above Or EqualSprung wenn: !=> Nicht Größer oder Gleich [C=1]
1050JBEJNBEJump-Unsigned8086Jump if Below Or EqualSprung wenn: <= Kleiner oder Gleich [Z=1 or C=1]
1060JNBEJBEJump-Unsigned8086Jump if Not Below Or EqualSprung wenn: !<= Nicht Kleiner oder Gleich [Z=0 and C=0]
1070JGJNGJump-Signed8086Jump if GreaterSprung wenn: > Größer (signed) [Z=0 and S=0]
1080JNGJGJump-Signed8086Jump if Not GreaterSprung wenn: !> Nicht Größer (signed) [Z=1 or S=1]
1090JLJNLJump-Signed8086Jump if LessSprung wenn: < Kleiner (signed) [S=1]
1100JNLJLJump-Signed8086Jump if Not LessSprung wenn: !< Nicht Kleiner (signed) [S=0]
1110JGEJNGEJump-Signed8086Jump if Greater Or EqualSprung wenn: => Größer oder Gleich (signed) [S=0]
1120JNGEJGEJump-Signed8086Jump if Not Greater Or EqualSprung wenn: !=> Nicht Größer oder Gleich (signed) [S=1]
1130JLEJNLEJump-Signed8086Jump if Less Or EqualSprung wenn: <= Kleiner oder Gleich (signed) [Z=1 or S=1]
1140JNLEJLEJump-Signed8086Jump if Not Less Or EqualSprung wenn: !<= Nicht Kleiner oder Gleich (signed) [Z=0 and S=0]
1150JZJNZJump-Flags8086Jump if ZeroSprung wenn: ==0 Null [Z=1]
1160JNZJZJump-Flags8086Jump if Not ZeroSprung wenn: Nicht Null [Z=0]
1170JSJNSJump-Flags8086Jump if SignSprung wenn: Signed (signed) [S=1]
1180JNSJSJump-Flags8086Jump if Not SignSprung wenn: Nicht Signed (signed) [S=0]
1190JCJNCJump-Flags8086Jump if CarrySprung wenn: Carry [C=1]
1200JNCJCJump-Flags8086Jump if No CarrySprung wenn: Nicht Carry [C=0]
1210JOJNOJump-Flags8086Jump if OverflowSprung wenn: Overflow (signed) [O=1]
1220JNOJOJump-Flags8086Jump if Not OverflowSprung wenn: Nicht Overflow (signed) [O=0]
1230JPJNPJump-Flags8086Jump if ParitySprung wenn: Parity [P=1]
1240JNPJPJump-Flags8086Jump if Not ParitySprung wenn: Nicht Parity [P=0]
1250JPEJPOJump-Flags8086Jump if Parity EvenSprung wenn: Parity Gerade [P=1]
1260JPOJPEJump-Flags8086Jump if Parity OddSprung wenn: Parity Ungerade [P=0]
1270JCXZ100Jump-Reg8086Jump if CX Equal To ZeroSprung wenn: CX = Null [CX=0]
1280JECXZ100Jump-Reg8086Jump if ECX Equal To ZeroSprung wenn: ECX = Null [ECX=0]
1290LOOPLoop8086Loop ECX TimesSchleifen Sprung solange ECX<>0, und ECX=ECX-1
1300LOOPELoop?+Loop While EqualSchleifen Sprung solange ECX=0, und ECX=ECX-1
1310LOOPNELoop?+Loop While Not EqualSchleifen Sprung solange ECX<>0, und ECX=ECX-1
1320LOOPZLoop?+Loop While ZeroSchleifen Sprung solange ZF=1, und ECX=ECX-1
1330LOOPNZLoop?+Loop While Not ZeroSchleifen Sprung solange ZF=0, und ECX=ECX-1
1340
1350MOVSBString8086Move String ByteOperanden in einen String kopieren. (Byte)
1360MOVSDString80386Move String DWordOperanden in einen String kopieren. (Word)
1370MOVSWString8086Move String WordOperanden in einen String kopieren. (DWord)
1380LODSBString8086Load String ByteOperanden aus einem String laden. (Byte)
1390LODSWString8086Load String WordOperanden aus einem String laden. (Word)
1400LODSDString80386Load String DWordOperanden aus einem String laden. (DWord)
1410STOSBString8086Store String ByteDaten in einen String speichern. (Byte)
1420STOSWString8086Store String WordDaten in einen String speichern. (Word)
1430STOSDString80386Store String DWordDaten in einen String speichern. (DWord)
1440SCASBString8086Scan String ByteWert in einem String suchen. (Byte)
1450SCASWString8086Scan String WordWert in einem String suchen. (Word)
1460SCASDString80386Scan String DWordWert in einem String suchen. (DWord)
0880CMPSBString-Comp8086Compare String ByteVergleich zweier Strings. (Byte)
0890CMPSWString-Comp8086Compare String WordVergleich zweier Strings. (Word)
0900CMPSDString-Comp80386Compare String DWordVergleich zweier Strings. (DWord)
1480
1490LDSSeg8086Load DS And RegisterDS-Offset-Kombination laden
1500LESSeg8086Load ES And RegisterES-Offset-Kombination laden
1510LFSSeg80386Load FS And RegisterFS-Offset-Kombination laden
1520LGSSeg80386Load GS And RegisterGS-Offsetkombination laden
1530LSLSeg80286Segmentgrenze berechnen in Bytes
1540LSSSeg80386Load SS And RegisterSS-Offsetkombination laden
1550LTRSeg80286Task-Register des Prozessors laden
1560
1570HLTCPU8086HaltProzessor Anhalten
1580NOPCPU8086No Operationkeine Operation. Nur einige Prozessortakte abwarten.
1590WAITCPU8086WaitWarten auf den FPU-Coprozessor
1600INOUTHardware8086InputPort auslesen
1610INSBOUTSBHardware80186Input String BytePort auslesen und Werte in einen String laden (Byte)
1620INSWOUTSWHardware80186Input String WordPort auslesen und Werte in einen String laden (Word)
1630INSDOUTSDHardware80386Input String DWordPort auslesen und Werte in einen String laden (DWord)
1640OUTINHardware8086OutputDaten auf einen Port ausgeben
1650OUTSBINSBHardware80186Output String ByteDaten aus einem String auf einen Port kopieren (Byte)
1660OUTSWINSWHardware80186Output String WordDaten aus einem String auf einen Port kopieren (Word)
1670OUTSDINSDHardware80386Output String DWordDaten aus einem String auf einen Port kopieren (DWord)
1680CPUIDHardwarePentiumTyp-CPU feststellen
1690LMSWHardware80286Maschinenwort laden
1700INTInterrupt8086InterruptExpliziten Interrupt-Auslösung
1710INT01Interrupt
1720INT1Interrupt
1730INT03Interrupt
1740INT3InterruptType 3 Interrupt
1750INTOInterrupt8086Interrupt On OverflowExpliziten Interrupt-Auslösung (+++)
1760INVDInterrupt80486Den Cache für ungültig erklären.
1770INVLPGInterrupt
1780IRETInterrupt8086Interrupt ReturnAbschluß einer Interrupt-Prozedur und Rücksprung ins unterbrochene Programm. (Byte)
1790IRETDInterrupt80386Abschluß einer Interrupt-Prozedur und Rücksprung ins unterbrochene Programm. (Word)
1800IRETWInterrupt80386Abschluß einer Interrupt-Prozedur und Rücksprung ins unterbrochene Programm. (DWord)
1810LGDTSGDTDesk80286Globalen Deskriptortabelle laden
1820LIDTSIDTDesk80286Interrupt-Deskriptortabelle laden
1830LLDTSLDTDesk80286Lokalen Deskriptortabelle laden
1840SGDTLGDTDesk80286Globalen Deskriptortabelle speichern
1850SIDTLIDTDesk80286Interrupt-Deskriptortabelle speichern
1860SLDTLLDTDesk80286Lokalen Deskriptortabelle speichern



Assembler/Funktionen/Beschreibung-Kurz-CPU.txt · Zuletzt geändert: 2010/02/25 14:28 (Externe Bearbeitung)