UNPKG

pasm

Version:

Piston X86-64 Assembler

1,328 lines (1,217 loc) 503 kB
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE x86reference SYSTEM "x86reference.dtd"> <!-- Visit http://ref.x86asm.net/ --> <!-- Author: Karel Lejska a.k.a. MazeGen (mazegen gmail com) Short Description: This reference is intended to be precise opcode and instruction set reference (including x86-64). Its principal aim is exact definition of instruction parameters and attributes. - Minor Issues: 83/1, 83/4, 83/6: These short forms of OR, AND, and XOR instructions are documented since 80386. They were probably working since 8086, 80186 or 80286, but I have no trustworthy information regarding this issue. D9/3 mod=11, DF/2 mod=11, DF/3 mod=11: These encodings are documented in Intel 80287 manual at least. They were probably working since 8086, 80186 or 80286, but I have no trustworthy information regarding this issue. 0F0D: I am not sure since which Intel procesor was second multi-byte NOP (0F0D) released. The reference sets it since Pentium Pro. 0FAE /0 FXSAVE, 0FAE /1 FXRSTOR Current Intel manuals say that these were introduced with PIII processor. I can't find them documented in PIII manual though. Because of this problem, these instructions are marked as introduced with latter steppings of PIII processor. - Discussion: FF /3, FF /5: Should I add this comment? "The offset from the target operand is ignored when a call gate is used." LAR, LSL: Should I add this comment? "For all loads (regardless of source or destination sizing) only bits 16-0 are used. Other bits are ignored." --> <x86reference version="1.11"> <one-byte> <pri_opcd value="00"> <entry direction="0" op_size="0" r="yes" lock="yes"> <syntax><mnem>ADD</mnem><dst><a>E</a><t>b</t></dst><src><a>G</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add</brief></note> </entry> </pri_opcd> <pri_opcd value="01"> <entry direction="0" op_size="1" r="yes" lock="yes"> <syntax><mnem>ADD</mnem><dst><a>E</a><t>vqp</t></dst><src><a>G</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add</brief></note> </entry> </pri_opcd> <pri_opcd value="02"> <entry direction="1" op_size="0" r="yes"> <syntax><mnem>ADD</mnem><dst><a>G</a><t>b</t></dst><src><a>E</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add</brief></note> </entry> </pri_opcd> <pri_opcd value="03"> <entry direction="1" op_size="1" r="yes"> <syntax><mnem>ADD</mnem><dst><a>G</a><t>vqp</t></dst><src><a>E</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add</brief></note> </entry> </pri_opcd> <pri_opcd value="04"> <entry op_size="0" attr="acc"> <syntax> <mnem>ADD</mnem> <dst nr="0" group="gen" type="b">AL</dst> <src><a>I</a><t>b</t></src> </syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add</brief></note> </entry> </pri_opcd> <pri_opcd value="05"> <entry op_size="1" attr="acc"> <syntax><mnem>ADD</mnem><dst nr="0" group="gen" type="vqp">rAX</dst><src><a>I</a><t>vds</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add</brief></note> </entry> </pri_opcd> <pri_opcd value="06"> <entry> <syntax> <mnem>PUSH</mnem> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src nr="0" group="seg" type="w" address="S2">ES</src> </syntax> <grp1>gen</grp1><grp2>stack</grp2><grp2>segreg</grp2> <note><brief>Push Word, Doubleword or Quadword Onto the Stack</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="07"> <entry> <syntax> <mnem>POP</mnem> <dst nr="0" group="seg" type="w" address="S2" depend="no">ES</dst> <src address="SC" displayed="no">SS:[rSP]</src> <!-- 1.02 --> </syntax> <grp1>gen</grp1><grp2>stack</grp2><grp2>segreg</grp2> <note><brief>Pop a Value from the Stack</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="08"> <entry direction="0" op_size="0" r="yes" lock="yes"> <syntax><mnem>OR</mnem><dst><a>E</a><t>b</t></dst><src><a>G</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Inclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="09"> <entry direction="0" op_size="1" r="yes" lock="yes"> <syntax><mnem>OR</mnem><dst><a>E</a><t>vqp</t></dst><src><a>G</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Inclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="0A"> <entry direction="1" op_size="0" r="yes"> <syntax><mnem>OR</mnem><dst><a>G</a><t>b</t></dst><src><a>E</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Inclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="0B"> <entry direction="1" op_size="1" r="yes"> <syntax><mnem>OR</mnem><dst><a>G</a><t>vqp</t></dst><src><a>E</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Inclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="0C"> <entry op_size="0" attr="acc"> <syntax><mnem>OR</mnem><dst nr="0" group="gen" type="b">AL</dst><src><a>I</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Inclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="0D"> <entry op_size="1" attr="acc"> <syntax><mnem>OR</mnem><dst nr="0" group="gen" type="vqp">rAX</dst><src><a>I</a><t>vds</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Inclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="0E"> <entry> <syntax> <mnem>PUSH</mnem> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src nr="1" group="seg" type="w" address="S2">CS</src> </syntax> <grp1>gen</grp1><grp2>stack</grp2><grp2>segreg</grp2> <note><brief>Push Word, Doubleword or Quadword Onto the Stack</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="0F"> <entry doc1632_ref="gen_note_opcd_POP_CS_0F"> <proc_start post="no">00</proc_start> <proc_end>00</proc_end> <syntax> <mnem>POP</mnem> <dst nr="1" group="seg" type="w" address="S2">CS</dst> <src address="SC" displayed="no">SS:[rSP]</src> <!-- 1.02 --> </syntax> <grp1>gen</grp1><grp2>stack</grp2><grp2>segreg</grp2> <note><brief>Pop a Value from the Stack</brief></note> </entry> <entry attr="invd"> <proc_start post="no">01</proc_start> <proc_end>01</proc_end> <syntax/> </entry> <entry ref="two-byte"> <proc_start>02</proc_start> <syntax/> </entry> </pri_opcd> <pri_opcd value="10"> <entry direction="0" op_size="0" r="yes" lock="yes"> <syntax><mnem>ADC</mnem><dst><a>E</a><t>b</t></dst><src><a>G</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add with Carry</brief></note> </entry> </pri_opcd> <pri_opcd value="11"> <entry direction="0" op_size="1" r="yes" lock="yes"> <syntax><mnem>ADC</mnem><dst><a>E</a><t>vqp</t></dst><src><a>G</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add with Carry</brief></note> </entry> </pri_opcd> <pri_opcd value="12"> <entry direction="1" op_size="0" r="yes"> <syntax><mnem>ADC</mnem><dst><a>G</a><t>b</t></dst><src><a>E</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add with Carry</brief></note> </entry> </pri_opcd> <pri_opcd value="13"> <entry direction="1" op_size="1" r="yes"> <syntax><mnem>ADC</mnem><dst><a>G</a><t>vqp</t></dst><src><a>E</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add with Carry</brief></note> </entry> </pri_opcd> <pri_opcd value="14"> <entry op_size="0" attr="acc"> <syntax><mnem>ADC</mnem><dst nr="0" group="gen" type="b">AL</dst><src><a>I</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add with Carry</brief></note> </entry> </pri_opcd> <pri_opcd value="15"> <entry op_size="1" attr="acc"> <syntax><mnem>ADC</mnem><dst nr="0" group="gen" type="vqp">rAX</dst><src><a>I</a><t>vds</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Add with Carry</brief></note> </entry> </pri_opcd> <pri_opcd value="16"> <entry> <syntax> <mnem>PUSH</mnem> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src nr="2" group="seg" type="w" address="S2">SS</src> </syntax> <grp1>gen</grp1><grp2>stack</grp2><grp2>segreg</grp2> <note><brief>Push Word, Doubleword or Quadword Onto the Stack</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="17"> <entry attr="delaysint"> <syntax> <mnem>POP</mnem> <dst nr="2" group="seg" type="w" address="S2" depend="no">SS</dst> <src address="SC" displayed="no">SS:[rSP]</src> <!-- 1.02 --> </syntax> <grp1>gen</grp1><grp2>stack</grp2><grp2>segreg</grp2> <note><brief>Pop a Value from the Stack</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="18"> <entry direction="0" op_size="0" r="yes" lock="yes"> <syntax><mnem>SBB</mnem><dst><a>E</a><t>b</t></dst><src><a>G</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Integer Subtraction with Borrow</brief></note> </entry> </pri_opcd> <pri_opcd value="19"> <entry direction="0" op_size="1" r="yes" lock="yes"> <syntax><mnem>SBB</mnem><dst><a>E</a><t>vqp</t></dst><src><a>G</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Integer Subtraction with Borrow</brief></note> </entry> </pri_opcd> <pri_opcd value="1A"> <entry direction="1" op_size="0" r="yes"> <syntax><mnem>SBB</mnem><dst><a>G</a><t>b</t></dst><src><a>E</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Integer Subtraction with Borrow</brief></note> </entry> </pri_opcd> <pri_opcd value="1B"> <entry direction="1" op_size="1" r="yes"> <syntax><mnem>SBB</mnem><dst><a>G</a><t>vqp</t></dst><src><a>E</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Integer Subtraction with Borrow</brief></note> </entry> </pri_opcd> <pri_opcd value="1C"> <entry op_size="0" attr="acc"> <syntax><mnem>SBB</mnem><dst nr="0" group="gen" type="b">AL</dst><src><a>I</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Integer Subtraction with Borrow</brief></note> </entry> </pri_opcd> <pri_opcd value="1D"> <entry op_size="1" attr="acc"> <syntax><mnem>SBB</mnem><dst nr="0" group="gen" type="vqp">rAX</dst><src><a>I</a><t>vds</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <test_f>c</test_f><modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Integer Subtraction with Borrow</brief></note> </entry> </pri_opcd> <pri_opcd value="1E"> <entry> <syntax> <mnem>PUSH</mnem> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src nr="3" group="seg" type="w" address="S2">DS</src> </syntax> <grp1>gen</grp1><grp2>stack</grp2><grp2>segreg</grp2> <note><brief>Push Word, Doubleword or Quadword Onto the Stack</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="1F"> <entry> <syntax> <mnem>POP</mnem> <dst nr="3" group="seg" type="w" address="S2" depend="no">DS</dst> <src address="SC" displayed="no">SS:[rSP]</src> <!-- 1.02 --> </syntax> <grp1>gen</grp1><grp2>stack</grp2><grp2>segreg</grp2> <note><brief>Pop a Value from the Stack</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="20"> <entry direction="0" op_size="0" r="yes" lock="yes"> <syntax><mnem>AND</mnem><dst><a>E</a><t>b</t></dst><src><a>G</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical AND</brief></note> </entry> </pri_opcd> <pri_opcd value="21"> <entry direction="0" op_size="1" r="yes" lock="yes"> <syntax><mnem>AND</mnem><dst><a>E</a><t>vqp</t></dst><src><a>G</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical AND</brief></note> </entry> </pri_opcd> <pri_opcd value="22"> <entry direction="1" op_size="0" r="yes"> <syntax><mnem>AND</mnem><dst><a>G</a><t>b</t></dst><src><a>E</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical AND</brief></note> </entry> </pri_opcd> <pri_opcd value="23"> <entry direction="1" op_size="1" r="yes"> <syntax><mnem>AND</mnem><dst><a>G</a><t>vqp</t></dst><src><a>E</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical AND</brief></note> </entry> </pri_opcd> <pri_opcd value="24"> <entry op_size="0" attr="acc"> <syntax><mnem>AND</mnem><dst nr="0" group="gen" type="b">AL</dst><src><a>I</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical AND</brief></note> </entry> </pri_opcd> <pri_opcd value="25"> <entry op_size="1" attr="acc"> <syntax><mnem>AND</mnem><dst nr="0" group="gen" type="vqp">rAX</dst><src><a>I</a><t>vds</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical AND</brief></note> </entry> </pri_opcd> <pri_opcd value="26"> <entry> <syntax> <mnem>ES</mnem> <src nr="0" group="seg" type="w" displayed="no">ES</src> </syntax> <grp1>prefix</grp1><grp2>segreg</grp2> <note><brief>ES segment override prefix</brief></note> </entry> <entry attr="undef"> <proc_start post="no">10</proc_start> <proc_end>10</proc_end> <syntax/> <grp1>prefix</grp1><grp2>branch</grp2><grp3>cond</grp3> <note><brief>(use with any branch instruction is reserved)</brief></note> </entry> <entry attr="null" mode="e"> <proc_start>10</proc_start> <syntax/> <grp1>prefix</grp1><grp2>segreg</grp2> <note><brief>Null Prefix in 64-bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="27"> <entry> <syntax> <mnem>DAA</mnem> <dst nr="0" group="gen" type="b" displayed="no">AL</dst> </syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>decimal</grp3> <test_f>ac</test_f><modif_f>oszapc</modif_f><def_f>szapc</def_f><undef_f>o</undef_f> <note><brief>Decimal Adjust AL after Addition</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="28"> <entry direction="0" op_size="0" r="yes" lock="yes"> <syntax><mnem>SUB</mnem><dst><a>E</a><t>b</t></dst><src><a>G</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Subtract</brief></note> </entry> </pri_opcd> <pri_opcd value="29"> <entry direction="0" op_size="1" r="yes" lock="yes"> <syntax><mnem>SUB</mnem><dst><a>E</a><t>vqp</t></dst><src><a>G</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Subtract</brief></note> </entry> </pri_opcd> <pri_opcd value="2A"> <entry direction="1" op_size="0" r="yes"> <syntax><mnem>SUB</mnem><dst><a>G</a><t>b</t></dst><src><a>E</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Subtract</brief></note> </entry> </pri_opcd> <pri_opcd value="2B"> <entry direction="1" op_size="1" r="yes"> <syntax><mnem>SUB</mnem><dst><a>G</a><t>vqp</t></dst><src><a>E</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Subtract</brief></note> </entry> </pri_opcd> <pri_opcd value="2C"> <entry op_size="0" attr="acc"> <syntax><mnem>SUB</mnem><dst nr="0" group="gen" type="b">AL</dst><src><a>I</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Subtract</brief></note> </entry> </pri_opcd> <pri_opcd value="2D"> <entry op_size="1" attr="acc"> <syntax><mnem>SUB</mnem><dst nr="0" group="gen" type="vqp">rAX</dst><src><a>I</a><t>vds</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Subtract</brief></note> </entry> </pri_opcd> <pri_opcd value="2E"> <entry> <syntax> <mnem>CS</mnem> <src nr="1" group="seg" type="w" displayed="no">CS</src> </syntax> <grp1>prefix</grp1><grp2>segreg</grp2> <note><brief>CS segment override prefix</brief></note> </entry> <entry doc1632_ref="gen_note_branch_prefixes"> <proc_start post="no">10</proc_start> <proc_end>10</proc_end> <syntax><mnem sug="yes">NTAKEN</mnem></syntax> <grp1>prefix</grp1><grp2>branch</grp2><grp3>cond</grp3> <note><brief>Branch not taken prefix (only with Jcc instructions)</brief></note> </entry> <entry attr="null" mode="e"> <proc_start>10</proc_start> <syntax/> <grp1>prefix</grp1><grp2>segreg</grp2> <note><brief>Null Prefix in 64-bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="2F"> <entry> <syntax> <mnem>DAS</mnem> <dst nr="0" group="gen" type="b" displayed="no">AL</dst> </syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>decimal</grp3> <test_f>ac</test_f><modif_f>oszapc</modif_f><def_f>szapc</def_f><undef_f>o</undef_f> <note><brief>Decimal Adjust AL after Subtraction</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="30"> <entry direction="0" op_size="0" r="yes" lock="yes"> <syntax><mnem>XOR</mnem><dst><a>E</a><t>b</t></dst><src><a>G</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Exclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="31"> <entry direction="0" op_size="1" r="yes" lock="yes"> <syntax><mnem>XOR</mnem><dst><a>E</a><t>vqp</t></dst><src><a>G</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Exclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="32"> <entry direction="1" op_size="0" r="yes"> <syntax><mnem>XOR</mnem><dst><a>G</a><t>b</t></dst><src><a>E</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Exclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="33"> <entry direction="1" op_size="1" r="yes"> <syntax><mnem>XOR</mnem><dst><a>G</a><t>vqp</t></dst><src><a>E</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Exclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="34"> <entry op_size="0" attr="acc"> <syntax><mnem>XOR</mnem><dst nr="0" group="gen" type="b">AL</dst><src><a>I</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Exclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="35"> <entry op_size="1" attr="acc"> <syntax><mnem>XOR</mnem><dst nr="0" group="gen" type="vqp">rAX</dst><src><a>I</a><t>vds</t></src></syntax> <grp1>gen</grp1><grp2>logical</grp2> <modif_f>oszapc</modif_f><def_f>oszpc</def_f><undef_f>a</undef_f><f_vals>oc</f_vals> <note><brief>Logical Exclusive OR</brief></note> </entry> </pri_opcd> <pri_opcd value="36"> <entry> <syntax> <mnem>SS</mnem> <src nr="2" group="seg" type="w" displayed="no">SS</src> </syntax> <grp1>prefix</grp1><grp2>segreg</grp2> <note><brief>SS segment override prefix</brief></note> </entry> <entry attr="undef"> <proc_start post="no">10</proc_start> <proc_end>10</proc_end> <syntax/> <grp1>prefix</grp1><grp2>branch</grp2><grp3>cond</grp3> <note><brief>(use with any branch instruction is reserved)</brief></note> </entry> <entry attr="null" mode="e"> <proc_start>10</proc_start> <syntax/> <grp1>prefix</grp1><grp2>segreg</grp2> <note><brief>Null Prefix in 64-bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="37"> <entry> <syntax> <mnem>AAA</mnem> <dst nr="0" group="gen" type="b" displayed="no">AL</dst> <dst nr="4" group="gen" type="b" displayed="no">AH</dst> </syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>decimal</grp3> <test_f>a</test_f><modif_f>oszapc</modif_f><def_f>ac</def_f><undef_f>oszp</undef_f> <note><brief>ASCII Adjust After Addition</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="38"> <entry direction="0" op_size="0" r="yes"> <syntax><mnem>CMP</mnem><src><a>E</a><t>b</t></src><src><a>G</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Compare Two Operands</brief></note> </entry> </pri_opcd> <pri_opcd value="39"> <entry direction="0" op_size="1" r="yes"> <syntax><mnem>CMP</mnem><src><a>E</a><t>vqp</t></src><src><a>G</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Compare Two Operands</brief></note> </entry> </pri_opcd> <pri_opcd value="3A"> <entry direction="1" op_size="0" r="yes"> <syntax><mnem>CMP</mnem><src><a>G</a><t>b</t></src><src><a>E</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Compare Two Operands</brief></note> </entry> </pri_opcd> <pri_opcd value="3B"> <entry direction="1" op_size="1" r="yes"> <syntax><mnem>CMP</mnem><src><a>G</a><t>vqp</t></src><src><a>E</a><t>vqp</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Compare Two Operands</brief></note> </entry> </pri_opcd> <pri_opcd value="3C"> <entry op_size="0" attr="acc"> <syntax><mnem>CMP</mnem><src nr="0" group="gen" type="b">AL</src><src><a>I</a><t>b</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Compare Two Operands</brief></note> </entry> </pri_opcd> <pri_opcd value="3D"> <entry op_size="1" attr="acc"> <syntax><mnem>CMP</mnem><src nr="0" group="gen" type="vqp">rAX</src><src><a>I</a><t>vds</t></src></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oszapc</def_f> <note><brief>Compare Two Operands</brief></note> </entry> </pri_opcd> <pri_opcd value="3E"> <entry> <syntax> <mnem>DS</mnem> <src nr="3" group="seg" type="w" displayed="no">DS</src> </syntax> <grp1>prefix</grp1><grp2>segreg</grp2> <note><brief>DS segment override prefix</brief></note> </entry> <entry doc1632_ref="gen_note_branch_prefixes"> <proc_start post="no">10</proc_start> <proc_end>10</proc_end> <syntax><mnem sug="yes">TAKEN</mnem></syntax> <grp1>prefix</grp1><grp2>branch</grp2><grp3>cond</grp3> <note><brief>Branch taken prefix (only with Jcc instructions)</brief></note> </entry> <entry attr="null" mode="e"> <proc_start>10</proc_start> <syntax/> <grp1>prefix</grp1><grp2>segreg</grp2> <note><brief>Null Prefix in 64-bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="3F"> <entry> <syntax> <mnem>AAS</mnem> <dst nr="0" group="gen" type="b" displayed="no">AL</dst> <dst nr="4" group="gen" type="b" displayed="no">AH</dst> </syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>decimal</grp3> <test_f>a</test_f><modif_f>oszapc</modif_f><def_f>ac</def_f><undef_f>oszp</undef_f> <note><brief>ASCII Adjust AL After Subtraction</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="40"> <entry> <syntax><mnem>INC</mnem><dst><a>Z</a><t>v</t></dst></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszap</modif_f><def_f>oszap</def_f> <note><brief>Increment by 1</brief></note> </entry> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX</mnem></syntax> <grp1>prefix</grp1> <note><brief>Access to new 8-bit registers</brief></note> </entry> </pri_opcd> <pri_opcd value="41"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.B</mnem></syntax> <grp1>prefix</grp1> <note><brief>Extension of r/m field, base field, or opcode reg field</brief></note> </entry> </pri_opcd> <pri_opcd value="42"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.X</mnem></syntax> <grp1>prefix</grp1> <note><brief>Extension of SIB index field</brief></note> </entry> </pri_opcd> <pri_opcd value="43"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.XB</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.X and REX.B combination</brief></note> </entry> </pri_opcd> <pri_opcd value="44"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.R</mnem></syntax> <grp1>prefix</grp1> <note><brief>Extension of ModR/M reg field</brief></note> </entry> </pri_opcd> <pri_opcd value="45"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.RB</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.R and REX.B combination</brief></note> </entry> </pri_opcd> <pri_opcd value="46"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.RX</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.R and REX.X combination</brief></note> </entry> </pri_opcd> <pri_opcd value="47"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.RXB</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.R, REX.X and REX.B combination</brief></note> </entry> </pri_opcd> <pri_opcd value="48"> <entry> <syntax><mnem>DEC</mnem><dst><a>Z</a><t>v</t></dst></syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszap</modif_f><def_f>oszap</def_f> <note><brief>Decrement by 1</brief></note> </entry> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.W</mnem></syntax> <grp1>prefix</grp1> <note><brief>64 Bit Operand Size</brief></note> </entry> </pri_opcd> <pri_opcd value="49"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.WB</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.W and REX.B combination</brief></note> </entry> </pri_opcd> <pri_opcd value="4A"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.WX</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.W and REX.X combination</brief></note> </entry> </pri_opcd> <pri_opcd value="4B"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.WXB</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.W, REX.X and REX.B combination</brief></note> </entry> </pri_opcd> <pri_opcd value="4C"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.WR</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.W and REX.R combination</brief></note> </entry> </pri_opcd> <pri_opcd value="4D"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.WRB</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.W, REX.R and REX.B combination</brief></note> </entry> </pri_opcd> <pri_opcd value="4E"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.WRX</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.W, REX.R and REX.X combination</brief></note> </entry> </pri_opcd> <pri_opcd value="4F"> <entry mode="e"> <proc_start>10</proc_start> <syntax><mnem>REX.WRXB</mnem></syntax> <grp1>prefix</grp1> <note><brief>REX.W, REX.R, REX.X and REX.B combination</brief></note> </entry> </pri_opcd> <pri_opcd value="50"> <entry> <syntax> <mnem>PUSH</mnem> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src><a>Z</a><t>v</t></src> </syntax> <grp1>gen</grp1><grp2>stack</grp2> <note><brief>Push Word, Doubleword or Quadword Onto the Stack</brief></note> </entry> <entry mode="e"> <proc_start>10</proc_start> <syntax> <mnem>PUSH</mnem> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src><a>Z</a><t>vq</t></src> </syntax> <grp1>gen</grp1><grp2>stack</grp2> <note><brief>Push Word, Doubleword or Quadword Onto the Stack</brief></note> </entry> </pri_opcd> <pri_opcd value="58"> <entry> <syntax> <mnem>POP</mnem> <dst depend="no"><a>Z</a><t>v</t></dst> <src address="SC" displayed="no">SS:[rSP]</src> <!-- 1.02 --> </syntax> <grp1>gen</grp1><grp2>stack</grp2> <note><brief>Pop a Value from the Stack</brief></note> </entry> <entry mode="e"> <proc_start>10</proc_start> <syntax> <mnem>POP</mnem> <dst depend="no"><a>Z</a><t>vq</t></dst> <src address="SC" displayed="no">SS:[rSP]</src> <!-- 1.02 --> </syntax> <grp1>gen</grp1><grp2>stack</grp2> <note><brief>Pop a Value from the Stack</brief></note> </entry> </pri_opcd> <pri_opcd value="60"> <entry> <proc_start>01</proc_start> <syntax> <mnem>PUSHA</mnem> <!-- 1.02 <src nr="0" group="gen" type="w" displayed="no">AX</src> <src nr="1" group="gen" type="w" displayed="no">CX</src> <src nr="2" group="gen" type="w" displayed="no">DX</src> <src nr="3" group="gen" type="w" displayed="no">BX</src> <src nr="4" group="gen" type="w" displayed="no">SP</src> <src nr="5" group="gen" type="w" displayed="no">BP</src> <src nr="6" group="gen" type="w" displayed="no">SI</src> <src nr="7" group="gen" type="w" displayed="no">DI</src> --> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src nr="0" group="gen" type="wo" displayed="no">AX</src> <src nr="1" group="gen" type="wo" displayed="no">CX</src> <src nr="2" group="gen" type="wo" displayed="no">DX</src> <src nr="3" group="gen" type="wo" displayed="no">BX</src> <src nr="4" group="gen" type="wo" displayed="no">SP</src> <src nr="5" group="gen" type="wo" displayed="no">BP</src> <src nr="6" group="gen" type="wo" displayed="no">SI</src> <src nr="7" group="gen" type="wo" displayed="no">DI</src> </syntax> <grp1>gen</grp1><grp2>stack</grp2> <note><brief>Push All General-Purpose Registers</brief></note> </entry> <entry> <proc_start>03</proc_start> <!-- duplicated syntax removed in 1.02 <syntax> <mnem>PUSHA</mnem> <src nr="0" group="gen" type="w" displayed="no">AX</src> <src nr="1" group="gen" type="w" displayed="no">CX</src> <src nr="2" group="gen" type="w" displayed="no">DX</src> <src nr="3" group="gen" type="w" displayed="no">BX</src> <src nr="4" group="gen" type="w" displayed="no">SP</src> <src nr="5" group="gen" type="w" displayed="no">BP</src> <src nr="6" group="gen" type="w" displayed="no">SI</src> <src nr="7" group="gen" type="w" displayed="no">DI</src> </syntax> --> <syntax> <mnem>PUSHAD</mnem> <!-- 1.02 <src nr="0" group="gen" type="d" displayed="no">EAX</src> <src nr="1" group="gen" type="d" displayed="no">ECX</src> <src nr="2" group="gen" type="d" displayed="no">EDX</src> <src nr="3" group="gen" type="d" displayed="no">EBX</src> <src nr="4" group="gen" type="d" displayed="no">ESP</src> <src nr="5" group="gen" type="d" displayed="no">EBP</src> <src nr="6" group="gen" type="d" displayed="no">ESI</src> <src nr="7" group="gen" type="d" displayed="no">EDI</src> --> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src nr="0" group="gen" type="do" displayed="no">EAX</src> <src nr="1" group="gen" type="do" displayed="no">ECX</src> <src nr="2" group="gen" type="do" displayed="no">EDX</src> <src nr="3" group="gen" type="do" displayed="no">EBX</src> <src nr="4" group="gen" type="do" displayed="no">ESP</src> <src nr="5" group="gen" type="do" displayed="no">EBP</src> <src nr="6" group="gen" type="do" displayed="no">ESI</src> <src nr="7" group="gen" type="do" displayed="no">EDI</src> </syntax> <grp1>gen</grp1><grp2>stack</grp2> <note><brief>Push All General-Purpose Registers</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="61"> <entry> <proc_start>01</proc_start> <syntax> <mnem>POPA</mnem> <!-- 1.02 <dst nr="7" group="gen" type="w" displayed="no">DI</dst> <dst nr="6" group="gen" type="w" displayed="no">SI</dst> <dst nr="5" group="gen" type="w" displayed="no">BP</dst> <dst nr="3" group="gen" type="w" displayed="no">BX</dst> <dst nr="2" group="gen" type="w" displayed="no">DX</dst> <dst nr="1" group="gen" type="w" displayed="no">CX</dst> <dst nr="0" group="gen" type="w" displayed="no">AX</dst> --> <dst nr="7" group="gen" type="wo" displayed="no">DI</dst> <dst nr="6" group="gen" type="wo" displayed="no">SI</dst> <dst nr="5" group="gen" type="wo" displayed="no">BP</dst> <dst nr="3" group="gen" type="wo" displayed="no">BX</dst> <dst nr="2" group="gen" type="wo" displayed="no">DX</dst> <dst nr="1" group="gen" type="wo" displayed="no">CX</dst> <dst nr="0" group="gen" type="wo" displayed="no">AX</dst> <src address="SC" displayed="no">SS:[rSP]</src> <!-- 1.02 --> </syntax> <grp1>gen</grp1><grp2>stack</grp2> <note><brief>Pop All General-Purpose Registers</brief></note> </entry> <entry> <proc_start>03</proc_start> <!-- duplicated syntax removed in 1.02 <syntax> <mnem>POPA</mnem> <dst nr="7" group="gen" type="w" displayed="no">DI</dst> <dst nr="6" group="gen" type="w" displayed="no">SI</dst> <dst nr="5" group="gen" type="w" displayed="no">BP</dst> <dst nr="3" group="gen" type="w" displayed="no">BX</dst> <dst nr="2" group="gen" type="w" displayed="no">DX</dst> <dst nr="1" group="gen" type="w" displayed="no">CX</dst> <dst nr="0" group="gen" type="w" displayed="no">AX</dst> </syntax> --> <syntax> <mnem>POPAD</mnem> <!-- 1.02 <dst nr="7" group="gen" type="d" displayed="no">EDI</dst> <dst nr="6" group="gen" type="d" displayed="no">ESI</dst> <dst nr="5" group="gen" type="d" displayed="no">EBP</dst> <dst nr="3" group="gen" type="d" displayed="no">EBX</dst> <dst nr="2" group="gen" type="d" displayed="no">EDX</dst> <dst nr="1" group="gen" type="d" displayed="no">ECX</dst> <dst nr="0" group="gen" type="d" displayed="no">EAX</dst> --> <dst nr="7" group="gen" type="do" displayed="no">EDI</dst> <dst nr="6" group="gen" type="do" displayed="no">ESI</dst> <dst nr="5" group="gen" type="do" displayed="no">EBP</dst> <dst nr="3" group="gen" type="do" displayed="no">EBX</dst> <dst nr="2" group="gen" type="do" displayed="no">EDX</dst> <dst nr="1" group="gen" type="do" displayed="no">ECX</dst> <dst nr="0" group="gen" type="do" displayed="no">EAX</dst> <src address="SC" displayed="no">SS:[rSP]</src> <!-- 1.02 --> </syntax> <grp1>gen</grp1><grp2>stack</grp2> <note><brief>Pop All General-Purpose Registers</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="62"> <!--<entry direction="1" r="yes" mod="mem" ring="f">--> <entry direction="1" r="yes" ring="f"> <proc_start>01</proc_start> <syntax> <mnem>BOUND</mnem> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src><a>G</a><t>v</t></src> <src><a>M</a><t>a</t></src> <src type="v" address="F" displayed="no">eFlags</src> </syntax> <grp1>gen</grp1><grp2>break</grp2><grp2>stack</grp2> <modif_f cond="yes">i</modif_f> <def_f cond="yes">i</def_f> <f_vals>i</f_vals> <note><brief>Check Array Index Against Bounds</brief></note> </entry> <entry attr="invd" mode="e"> <proc_start>10</proc_start> <syntax/> <note><brief>Invalid Instruction in 64-Bit Mode</brief></note> </entry> </pri_opcd> <pri_opcd value="63"> <entry r="yes"> <proc_start>02</proc_start> <syntax><mnem>ARPL</mnem><src><a>E</a><t>w</t></src><src><a>G</a><t>w</t></src></syntax> <grp1>system</grp1> <modif_f>z</modif_f><def_f>z</def_f> <note><brief>Adjust RPL Field of Segment Selector</brief></note> </entry> <entry direction="1" r="yes" mode="e"> <proc_start>10</proc_start> <syntax> <mnem>MOVSXD</mnem> <dst depend="no"><a>G</a><t>dqp</t></dst> <!--<src><a>E</a><t>ds</t></src> 1.01 fix--> <src><a>E</a><t>d</t></src> </syntax> <grp1>gen</grp1><grp2>conver</grp2> <note><brief>Move with Sign-Extension</brief></note> </entry> </pri_opcd> <pri_opcd value="64"> <entry> <proc_start>03</proc_start> <syntax> <mnem>FS</mnem> <src nr="4" group="seg" type="w" displayed="no">FS</src> </syntax> <grp1>prefix</grp1><grp2>segreg</grp2> <note><brief>FS segment override prefix</brief></note> </entry> <entry attr="undef" is_undoc="yes"> <proc_start post="no">10</proc_start> <proc_end>10</proc_end> <syntax/> <grp1>prefix</grp1><grp2>branch</grp2><grp3>cond</grp3> <note><brief>(only with Jcc instructions)</brief></note> </entry> <entry doc="u" is_doc="yes" doc1632_ref="gen_note_branch_prefixes" particular="yes"> <proc_start post="no">10</proc_start> <proc_end>10</proc_end> <syntax> <mnem sug="yes">ALTER</mnem> </syntax> <grp1>prefix</grp1><grp2>branch</grp2><grp3>cond</grp3> <note><brief>Alternating branch prefix (only with Jcc instructions)</brief></note> </entry> <!-- 1.02 <entry attr="undef" mode="e"> <proc_start>10</proc_start> <syntax/> <grp1>prefix</grp1><grp2>branch</grp2><grp3>cond</grp3> <note><brief>(branch hint prefixes have no effect in 64-bit mode)</brief></note> </entry> --> </pri_opcd> <pri_opcd value="65"> <entry> <proc_start>03</proc_start> <syntax> <mnem>GS</mnem> <src nr="5" group="seg" type="w" displayed="no">GS</src> </syntax> <grp1>prefix</grp1><grp2>segreg</grp2> <note><brief>GS segment override prefix</brief></note> </entry> <entry attr="undef"> <proc_start post="no">10</proc_start> <proc_end>10</proc_end> <syntax/> <grp1>prefix</grp1><grp2>branch</grp2><grp3>cond</grp3> <note><brief>(only with Jcc instructions)</brief></note> </entry> </pri_opcd> <pri_opcd value="66"> <entry> <syntax/> <grp1>prefix</grp1> <note><brief>Operand-size override prefix</brief></note> </entry> <entry doc="m"> <proc_start>10</proc_start> <syntax/> <instr_ext>sse2</instr_ext> <grp1>prefix</grp1> <note><brief>Precision-size override prefix</brief></note> </entry> </pri_opcd> <pri_opcd value="67"> <entry> <syntax/> <grp1>prefix</grp1> <note><brief>Address-size override prefix</brief></note> </entry> </pri_opcd> <pri_opcd value="68"> <entry> <proc_start>01</proc_start> <syntax> <mnem>PUSH</mnem> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src><a>I</a><t>vs</t></src> </syntax> <grp1>gen</grp1><grp2>stack</grp2> <note><brief>Push Word, Doubleword or Quadword Onto the Stack</brief></note> </entry> </pri_opcd> <pri_opcd value="69"> <entry r="yes"> <proc_start>01</proc_start> <syntax> <mnem>IMUL</mnem> <dst><a>G</a><t>vqp</t></dst> <src><a>E</a><t>vqp</t></src> <src><a>I</a><t>vds</t></src> </syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oc</def_f><undef_f>szap</undef_f> <note><brief>Signed Multiply</brief></note> </entry> </pri_opcd> <pri_opcd value="6A"> <entry sign-ext="1"> <proc_start>01</proc_start> <syntax> <mnem>PUSH</mnem> <dst address="SC" displayed="no">SS:[rSP]</dst> <!-- 1.02 --> <src><a>I</a><t>bss</t></src> </syntax> <grp1>gen</grp1><grp2>stack</grp2> <note><brief>Push Word, Doubleword or Quadword Onto the Stack</brief></note> </entry> </pri_opcd> <pri_opcd value="6B"> <entry sign-ext="1" r="yes"> <proc_start>01</proc_start> <syntax> <mnem>IMUL</mnem> <dst><a>G</a><t>vqp</t></dst> <src><a>E</a><t>vqp</t></src> <src><a>I</a><t>bs</t></src> </syntax> <grp1>gen</grp1><grp2>arith</grp2><grp3>binary</grp3> <modif_f>oszapc</modif_f><def_f>oc</def_f><undef_f>szap</undef_f> <note><brief>Signed Multiply</brief></note> </entry> </pri_opcd> <pri_opcd value="6C"> <entry op_size="0" ring="f" ring_ref="rflags_iopl"> <proc_start>01</proc_start> <syntax> <mnem>INS</mnem> <!--<dst depend="no"><a>Y</a><t>b</t></dst> 1.02--> <d