News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

MASM64 grammar reference

Started by Player1UK, May 30, 2021, 12:11:27 AM

Previous topic - Next topic

jj2007

Quote from: ahsat on April 09, 2024, 04:53:26 AMIn the document, when I click on a line, or copy and past the url, I have problem

Sorry - the reason is that the document was written in RTF format, so you can read it with WordPad or MS Word; however, the internal format of links is {url="http://http..."}sometext{/url} (with squared brackets) for compatibility with the Masm32 forum. Only RichMasm will interpret these links correctly.

Here is a list of the 260+ instructions covered in the doc:

AAA--ASCII Adjust After Addition/?
AAD--ASCII Adjust AX Before Division/?
AAM--ASCII Adjust AX After Multiply/?
AAS--ASCII Adjust AL After Subtraction/?
ADC--Add with Carry/?
ADD--Add/?
ADDPD--Packed Double-Precision Floating-Point Add/?
ADDPS--Packed Single-Precision Floating-Point Add/?
ADDSD--Scalar Double-Precision Floating-Point Add/?
ADDSS--Scalar Single-Precision Floating-Point Add/?
AND--Logical AND/?
ANDNPS--Bit-wise Logical And Not For Single-FP/?
ARPL--Adjust RPL Field of Segment Selector/?
BOUND--Check Array Index Against Bounds/?
BSF--Bit Scan Forward/?
BSR--Bit Scan Reverse/?
MOVBE--Move Data After Swapping Bytes (Atom & Haswell+)/?
BSWAP--Byte Swap/?
BT--Bit Test/?
BTC--Bit Test and Complement/?
BTR--Bit Test and Reset/?
BTS--Bit Test and Set/?
CALL--Call Procedure/?
CBW/CWDE--Convert Byte to Word/Convert Word to Doubleword/?
CLC--Clear Carry Flag/?
CLD--Clear Direction Flag/?
CLFLUSH--Cache Line Flush/?
CLI--Clear Interrupt Flag/?
CLTS--Clear Task-Switched Flag in CR0/?
CMC--Complement Carry Flag/?
CMOVcc--Conditional Move/?
CMP--Compare Two Operands/?
CMPPD--Compare Packed Double-Precision Floating-Point Values/?
CMPPS--Compare Packed Single-Precision Floating-Point Values/?
CMPS/CMPSB/CMPSW/CMPSD--Compare String Operands/?
CMPSD--Compare Scalar Double-Precision Floating-Point Value/?
CMPSS--Compare Scalar Single-Precision Floating-Point Values/?
CMPXCHG--Compare and Exchange/?
CMPXCHG8B--Compare and Exchange 8 Bytes/?
CPUID--CPU Identification/?
DAA--Decimal Adjust AL after Addition/?
DAS--Decimal Adjust AL after Subtraction/?
DEC--Decrement by 1/?
DIV--Unsigned Divide/?
DIVPD--Packed Double-Precision Floating-Point Divide/?
DIVPS--Packed Single-Precision Floating-Point Divide/?
DIVSD--Scalar Double-Precision Floating-Point Divide/?
DIVSS--Scalar Single-Precision Floating-Point Divide/?
EMMS--Empty MMX™ Technology State/?
ENTER--Make Stack Frame for Procedure Parameters/?
F2XM1--Compute 2x-1/?
FABS--Absolute Value/?
FADD/FADDP/FIADD--Add/?
FBLD--Load Binary Coded Decimal/?
FBSTP--Store BCD Integer and Pop/?
FCHS--Change Sign/?
FCLEX/FNCLEX--Clear Exceptions/?
FCMOVcc--Floating-Point Conditional Move/?
FCOM/FCOMP/FCOMPP--Compare Real/?
FCOS--Cosine/?
FDECSTP--Decrement Stack-Top Pointer/?
FDIV/FDIVP/FIDIV--Divide/?
FDIVR/FDIVRP/FIDIVR--Reverse Divide/?
FFREE--Free Floating-Point Register/?
FICOM/FICOMP--Compare Integer/?
FILD--Load Integer/?
FINCSTP--Increment Stack-Top Pointer/?
FINIT/FNINIT--Initialize Floating-Point Unit/?
FIST/FISTP--Store Integer/?
FLD--Load Real/?
FLDCW--Load x87 FPU Control Word/?
FLDENV--Load x87 FPU Environment/?
FMUL/FMULP/FIMUL--Multiply/?
FNOP--No Operation/?
FPATAN--Partial Arctangent/?
FPREM--Partial Remainder/?
FPREM1--Partial Remainder/?
FPTAN--Partial Tangent/?
FRNDINT--Round to Integer/?
FRSTOR--Restore x87 FPU State/?
FSAVE/FNSAVE--Store x87 FPU State/?
FSCALE--Scale/?
FSIN--Sine/?
FSINCOS--Sine and Cosine/?
FSQRT--Square Root/?
FST/FSTP--Store Real/?
FSTCW/FNSTCW--Store x87 FPU Control Word/?
FSTENV/FNSTENV--Store x87 FPU Environment/?
FSTSW/FNSTSW--Store x87 FPU Status Word/?
FSUB/FSUBP/FISUB--Subtract/?
FSUBR/FSUBRP/FISUBR--Reverse Subtract/?
FTST--TEST/?
FUCOM/FUCOMP/FUCOMPP--Unordered Compare Real/?
FXAM--Examine/?
FXCH--Exchange Register Contents/?
FXTRACT--Extract Exponent and Significand/?
FYL2X--Compute y * log2x/?
FYL2XP1--Compute y * log2(x +1)/?
HLT--Halt/?
IDIV--Signed Divide/?
IMUL--Signed Multiply/?
IN--Input from Port/?
INC--Increment by 1/?
INS/INSB/INSW/INSD--Input from Port to String/?
INT n/INTO/INT 3--Call to Interrupt Procedure/?
INVD--Invalidate Internal Caches/?
INVLPG--Invalidate TLB Entry/?
IRET/IRETD--Interrupt Return/?
Jcc--Jump if Condition Is Met/?
JMP--Jump/?
LAHF--Load Status Flags into AH Register/?
LAR--Load Access Rights Byte/?
LDMXCSR--Load Streaming SIMD Extension Control/Status/?
LDS/LES/LFS/LGS/LSS--Load Far Pointer/?
LEA--Load Effective Address/?
LEAVE--High Level Procedure Exit/?
LFENCE--Load Fence/?
LGDT/LIDT--Load Global/Interrupt Descriptor Table Register/?
LLDT--Load Local Descriptor Table Register/?
LMSW--Load Machine Status Word/?
LOCK--Assert LOCK# Signal Prefix/?
LODS/LODSB/LODSW/LODSD--Load String/?
LOOP/LOOPcc--Loop According to ECX Counter/?
LSL--Load Segment Limit/?
LTR--Load Task Register/?
MASKMOVDQU--Mask Move of Double Quadword Unaligned/?
MASKMOVQ--Mask Move of Quadword/?
MAXPD--Maximum Packed Double-Precision Floating-Point Values/?
MAXPS--Maxiumum Packed Single-Precision Floating-Point Values/?
MAXSD--Maximum Scalar Double-Precision Floating-Point Value/?
MAXSS--Maximum Scalar Single-Precision Floating-Point Value/?
MFENCE--Memory Fence/?
MINPD--Packed Double-Precision Floating-Point Minimum/?
MINPS--Minimum Packed Single-Precision Floating-Point Values/?
MINSD--Minimum Scalar Double-Precision Floating-Point Value/?
MINSS--Minimum Scalar Single-Precision Floating-Point Value/?
MOV--Move/?
MOV--Move to/from Control Registers/?
MOV--Move to/from Debug Registers/?
MOVD--Move Doubleword/?
MOVHPD--Move High Packed Double-Precision Floating-Point Value/?
MOVHPS--Move High Packed Single-Precision Floating-Point Values/?
MOVLPD--Move Low Packed Double-Precision Floating-Point Value/?
MOVLPS--Move Low Packed Single-Precision Floating-Point Values/?
MOVNTPS--Move Aligned Four Packed Single-FP Non Temporal/?
MOVNTQ--Move Quadword Non-Temporal/?
MOVQ--Move Quadword/?
MOVQ2DQ--Move Quadword/?
MOVS/MOVSB/MOVSW/MOVSD--Move Data from String to String/?
MOVSD--Move Scalar Double-Precision Floating-Point Value/?
MOVSS--Move Scalar Single-Precision Floating-Point Values/?
MOVSX--Move with Sign-Extension/?
MOVZX--Move with Zero-Extend/?
MUL--Unsigned Multiply/?
MULPD--Packed Double-Precision Floating-Point Multiply/?
MULPS--Packed Single-Precision Floating-Point Multiply/?
MULSD--Scalar Double-Precision Floating-Point Multiply/?
MULSS--Scalar Single-FP Multiply/?
NEG--Two's Complement Negation/?
NOP--No Operation/?
NOT--One's Complement Negation/?
OR--Logical Inclusive OR/?
ORPD--Bitwise Logical OR of Double-Precision Floating-Point Values/?
ORPS--Bitwise Logical OR of Single-Precision Floating-Point Values/?
OUT--Output to Port/?
OUTS/OUTSB/OUTSW/OUTSD--Output String to Port/?
PACKSSWB/PACKSSDW--Pack with Signed Saturation/?
PACKUSWB--Pack with Unsigned Saturation/?
PADDB/PADDW/PADDD--Packed Add/?
PADDQ--Packed Quadword Add/?
PADDSB/PADDSW--Packed Add with Saturation/?
PADDUSB/PADDUSW--Packed Add Unsigned with Saturation/?
PAND--Logical AND/?
PANDN--Logical AND NOT/?
PAUSE--Pause For Preset Amount of Time/?
PAVGB/PAVGW--Packed Average/?
PCMPEQB/PCMPEQW/PCMPEQD--Packed Compare for Equal/?
PCMPGTB/PCMPGTW/PCMPGTD/PCMPGTQ--Packed Compare for Greater Than/?
PEXTRW--Extract Word/?
PINSRW--Insert Word/?
PMADDWD--Packed Multiply and Add/?
PMAXSW--Packed Signed Integer Word Maximum/?
PMAXUB--Packed Unsigned Integer Byte Maximum/?
PMINSW--Packed Signed Integer Word Minimum/?
PMINUB--Packed Unsigned Integer Byte Minimum/?
PMOVMSKB--Move Byte Mask to General-Purpose Register/?
PMULHUW--Packed Multiply High Unsigned/?
PMULHW--Packed Multiply High Signed/?
PMULLW--Packed Multiply Low Signed/?
PMULUDQ--Packed Multiply Doubleword Unsigned/?
POP--Pop a Value from the Stack/?
POPA/POPAD--Pop All General-Purpose Registers/?
POPF/POPFD--Pop Stack into EFLAGS Register/?
POR--Bitwise Logical OR/?
PREFETCHh--Prefetch Data Into Caches/?
PSADBW--Packed Sum of Absolute Differences/?
PSHUFD--Packed Shuffle Doublewords/?
PSHUFHW--Packed Shuffle High Words/?
PSHUFLW--Packed Shuffle Low Words/?
PSHUFW--Packed Shuffle Words/?
PSHUFB--Packed Shuffle Bytes/?
PSLLDQ--Packed Shift Left Logical Double Quadword (bytes)/?
PSLLW/PSLLD/PSLLQ--Packed Shift Left Logical (bits)/?
PSRAW/PSRAD--Packed Shift Right Arithmetic (bits)/?
PSRLDQ--Packed Shift Right Logical Double Quadword (bytes)/?
PSRLW/PSRLD/PSRLQ--Packed Shift Right Logical (bits)/?
PSUBB/PSUBW/PSUBD--Packed Subtract/?
PSUBQ--Packed Subtract Quadword/?
PSUBSB/PSUBSW--Packed Subtract with Saturation/?
PSUBUSB/PSUBUSW--Packed Subtract Unsigned with Saturation/?
PUSH--Push Word or Doubleword Onto the Stack/?
PUSHA/PUSHAD--Push All General-Purpose Registers/?
PUSHF/PUSHFD--Push EFLAGS Register onto the Stack/?
PXOR--Logical Exclusive OR/?
RCL/RCR/ROL/ROR---Rotate/?
RCPPS--Packed Single-Precision Floating-Point Reciprocal/?
RCPSS--Scalar Single-Precision Floating-Point Reciprocal/?
RDMSR--Read from Model Specific Register/?
RDPMC--Read Performance-Monitoring Counters/?
RDTSC--Read Time-Stamp Counter/?
REP/REPE/REPZ/REPNE /REPNZ--Repeat String Operation Prefix/?
RET--Return from Procedure/?
RSM--Resume from System Management Mode/?
SAHF--Store AH into Flags/?
SAL/SAR/SHL/SHR--Shift/?
SBB--Integer Subtraction with Borrow/?
SCAS/SCASB/SCASW/SCASD--Scan String/?
SETcc--Set Byte on Condition/?
SFENCE--Store Fence/?
SGDT/SIDT--Store Global/Interrupt Descriptor Table Register/?
SHLD--Double Precision Shift Left (bits)/?
SHRD--Double Precision Shift Right (bits)/?
SHUFPD--Shuffle Double-Precision Floating-Point Values/?
SHUFPS--Shuffle Single-Precision Floating-Point Values/?
SLDT--Store Local Descriptor Table Register/?
SMSW--Store Machine Status Word/?
SQRTPD--Packed Double-Precision Floating-Point Square Root/?
SQRTPS--Packed Single-Precision Floating-Point Square Root/?
SQRTSD--Scalar Double-Precision Floating-Point Square Root/?
SQRTSS--Scalar Single-Precision Floating-Point Square Root/?
STC--Set Carry Flag/?
STD--Set Direction Flag/?
STI--Set Interrupt Flag/?
STOS/STOSB/STOSW/STOSD--Store String/?
STR--Store Task Register/?
SUB--Subtract/?
SUBPD--Packed Double-Precision Floating-Point Subtract/?
SUBPS--Packed Single-Precision Floating-Point Subtract/?
SUBSD--Scalar Double-Precision Floating-Point Subtract/?
SUBSS--Scalar Single-FP Subtract/?
SYSENTER--Fast Transition to System Call Entry Point/?
SYSEXIT--Fast Transition from System Call Entry Point/?
TEST--Logical Compare/?
UD2--Undefined Instruction/?
VERR, VERW--Verify a Segment for Reading or Writing/?
WAIT/FWAIT--Wait/?
WBINVD--Write Back and Invalidate Cache/?
WRMSR--Write to Model Specific Register/?