Volume 3: General-Purpose and System Instructions - Stanford ...
Volume 3: General-Purpose and System Instructions - Stanford ... Volume 3: General-Purpose and System Instructions - Stanford ...
AMD64 Technology 24594 Rev. 3.10 February 2005Mnemonic Opcode DescriptionMOV reg64, imm64 B8 +rq Move an 64-bit immediate value into a 64-bit register.MOV reg/mem8, imm8 C6 /0MOV reg/mem16, imm16 C7 /0MOV reg/mem32, imm32 C7 /0MOV reg/mem64, imm32 C7 /0Move an 8-bit immediate value to an 8-bit register or memoryoperand.Move a 16-bit immediate value to a 16-bit register or memoryoperand.Move a 32-bit immediate value to a 32-bit register or memoryoperand.Move a 32-bit signed immediate value to a 64-bit register ormemory operand.Related InstructionsMOV(CRn), MOV(DRn), MOVD, MOVSX, MOVZX, MOVSXD, MOVSxrFLAGS AffectedNoneExceptionsVirtualException Real 8086 Protected Cause of ExceptionInvalid opcode, #UD X X X An attempt was made to load the CS register.Segment not present,#NP (selector)XThe DS, ES, FS, or GS register was loaded with a non-null segmentselector and the segment was marked not present.Stack, #SS X X X A memory address exceeded the stack segment limit or was noncanonical.Stack, #SS(selector)General protection,#GPXX X XThe SS register was loaded with a non-null segment selector, and thesegment was marked not present.A memory address exceeded a data segment limit or was noncanonical.XXThe destination operand was in a non-writable segment.A null data segment was used to reference memory.194 MOV
24594 Rev. 3.10 February 2005 AMD64 TechnologyExceptionGeneral protection,#GP(selector)RealVirtual8086 Protected Cause of ExceptionXXA segment register was loaded, but the segment descriptor exceededthe descriptor table limit.A segment register was loaded and the segment selector’s TI bit wasset, but the LDT selector was a null selector.XXXXThe SS register was loaded with a null segment selector in non-64-bitmode or while CPL = 3.The SS register was loaded and the segment selector RPL and thesegment descriptor DPL were not equal to the CPL.The SS register was loaded and the segment pointed to was not awritable data segment.The DS, ES, FS, or GS register was loaded and the segment pointedto was a data or non-conforming code segment, but the RPL or CPLwas greater than the DPL.X The DS, ES, FS, or GS register was loaded and the segment pointedto was not a data segment or readable code segment.Page fault, #PF X X A page fault resulted from the execution of the instruction.Alignment check, #AC X X An unaligned memory reference was performed while alignmentchecking was enabled.MOV 195
- Page 174 and 175: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 176 and 177: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 178 and 179: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 180 and 181: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 182 and 183: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 184 and 185: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 186 and 187: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 188 and 189: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 190 and 191: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 192 and 193: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 194 and 195: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 196 and 197: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 198 and 199: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 200 and 201: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 202 and 203: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 204 and 205: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 206 and 207: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 208 and 209: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 210 and 211: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 212 and 213: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 214 and 215: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 216 and 217: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 218 and 219: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 220 and 221: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 222 and 223: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 226 and 227: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 228 and 229: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 230 and 231: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 232 and 233: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 234 and 235: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 236 and 237: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 238 and 239: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 240 and 241: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 242 and 243: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 244 and 245: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 246 and 247: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 248 and 249: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 250 and 251: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 252 and 253: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 254 and 255: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 256 and 257: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 258 and 259: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 260 and 261: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 262 and 263: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 264 and 265: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 266 and 267: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 268 and 269: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 270 and 271: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 272 and 273: AMD64 Technology 24594 Rev. 3.10 Fe
AMD64 Technology 24594 Rev. 3.10 February 2005Mnemonic Opcode DescriptionMOV reg64, imm64 B8 +rq Move an 64-bit immediate value into a 64-bit register.MOV reg/mem8, imm8 C6 /0MOV reg/mem16, imm16 C7 /0MOV reg/mem32, imm32 C7 /0MOV reg/mem64, imm32 C7 /0Move an 8-bit immediate value to an 8-bit register or memoryoper<strong>and</strong>.Move a 16-bit immediate value to a 16-bit register or memoryoper<strong>and</strong>.Move a 32-bit immediate value to a 32-bit register or memoryoper<strong>and</strong>.Move a 32-bit signed immediate value to a 64-bit register ormemory oper<strong>and</strong>.Related <strong>Instructions</strong>MOV(CRn), MOV(DRn), MOVD, MOVSX, MOVZX, MOVSXD, MOVSxrFLAGS AffectedNoneExceptionsVirtualException Real 8086 Protected Cause of ExceptionInvalid opcode, #UD X X X An attempt was made to load the CS register.Segment not present,#NP (selector)XThe DS, ES, FS, or GS register was loaded with a non-null segmentselector <strong>and</strong> the segment was marked not present.Stack, #SS X X X A memory address exceeded the stack segment limit or was noncanonical.Stack, #SS(selector)<strong>General</strong> protection,#GPXX X XThe SS register was loaded with a non-null segment selector, <strong>and</strong> thesegment was marked not present.A memory address exceeded a data segment limit or was noncanonical.XXThe destination oper<strong>and</strong> was in a non-writable segment.A null data segment was used to reference memory.194 MOV