This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Appendix D: The 80x86 Instruction Set Beta Draft - Do not distribute © 2001, By Randall Hyde Page 1449 The 80x86 Instruction Set Appendix D The follo wing three tables discuss the inte ger/control, ﬂ oating point, and MMX instruction sets. This document uses the fol- lo wing abbre viations: imm- A constant value, must be appropriate for the operand size. imm8- An eight-bit immediate constant. Some instructions limit the range of this value to less than 0..255. immL- A 16- or 32-bit immediate constant. immH- A 16- or 32-bit immediate constant. reg- A general purpose integer register. reg8- A general purpose eight-bit register reg16- A general purpose 16-bit register. reg32- A general purpose 32-bit register. mem- An arbitrary memory location using any of the available addressing modes. mem16- A word variable using any legal addressing mode. mem32- A dword variable using any legal addressing mode. mem64- A qword variable using any legal addressing mode. label- A statement label in the program. ProcedureName-The name of a procedure in the program. Instructions that have two source operands typically use the first operand as a source operand and the second operand as a destination operand. For exceptions and other formats, please see the description for the individual instruction. Note that this appendix only lists those instructions that are generally useful for application programming. HLA actually sup- ports some additional instructions that are useful for OS kernel developers; please see the HLA documentation for more details on those instructions. T able 1: 80x86 Integer and Contr ol Instruction Set Instruction Syntax Description aaa() ASCII Adjust after Addition. Adjusts v alue in AL after a decimal addition operation. aad() ASCII Adjust before Di vision. Adjusts tw o unpack ed v alues in AX prior to a decimal di vision. aam() ASCII Adjust AX after Multiplication. Adjusts the result in AX for a decimal mulit- ply . aas() ASCII Adjust AL after Subtraction. Adjusts the result in AL for a decimal subtraction. adc( imm, re g ); adc( imm, mem ); adc( re g, re g ); adc( re g, mem ); adc( mem, re g ); Add with carry . Adds the source operand plus the carry ﬂ ag to the destination oper- and. AppendixD Page 1450 © 2001, By Randall Hyde Beta Draft - Do not distribute add( imm, re g ); add( imm, mem ); add( re g, re g ); add( re g, mem ); add( mem, re g ); Add. Adds the source operand to the destination operand. and( imm, re g ); and( imm, mem ); and( re g, re g ); and( re g, mem ); and( mem, re g ); Bitwise AND. Logically ANDs the source operand into the destination operand. Clears the carry and o v erﬂ o w ﬂ ags and sets the sign and zero ﬂ ags according to the result....
View Full Document
- Summer '11
- X86, Processor register, Machine code, operand, Byte