INTEL汇编指令集(7)

2019-01-26 19:06

Unsigned multiply of the accumulator by the source. If \ a byte value, then AL is used as the other multiplicand and the result is placed in AX. If \ multiplied by \ If \

a double word value, then EAX is multiplied by \ receives the result. The 386+ uses an early out algorithm which makes multiplying any size value in EAX as fast as in the 8 or 16 bit registers.

Clocks Size Operands 808x 286 386 486 Bytes reg8 70-77 13 9-14 13-18 2 reg16 118-113 21 9-22 13-26 2 reg32 - - 9-38 13-42 2-4 mem8 (76-83)+EA 16 12-17 13-18 2-4 mem16 (124-139)+EA 24 12-25 13-26 2-4 mem32 - - 12-21 13-42 2-4

NEG - Two's Complement Negation Usage: NEG dest

Modifies flags: AF CF OF PF SF ZF

Subtracts the destination from 0 and saves the 2s complement of \

Clocks Size Operands 808x 286 386 486 Bytes reg 3 2 2 1 2

mem 16+EA 7 6 3 2-4

NOP - No Operation (90h) Usage: NOP

Modifies flags: None

This is a do nothing instruction. It results in occupation of both space and time and is most useful for patching code segments. (This is the original XCHG AL,AL instruction)

Clocks Size Operands 808x 286 386 486 Bytes none 3 3 3 1 1

NOT - One's Compliment Negation (Logical NOT) Usage: NOT dest Modifies flags: None

Inverts the bits of the \ Clocks Size Operands 808x 286 386 486 Bytes reg 3 2 2 1 2

(W88=24+EA) mem 16+EA 7 6 3 2-4 (W88=24+EA)

OR - Inclusive Logical OR

Usage: OR dest,src

Modifies flags: CF OF PF SF ZF (AF undefined)

Logical inclusive OR of the two operands returning the result in the destination. Any bit set in either operand will be set in the destination.

Clocks Size Operands 808x 286 386 486 Bytes reg,reg 3 2 2 1 2

mem,reg 16+EA 7 7 3 2-4 (W88=24+EA) reg,mem 9+EA 7 6 2 2-4 (W88=13+EA) reg,immed 4 3 2 1 3-4 mem8,immed8 17+EA 7 7 3 3-6 mem16,immed16 25+EA 7 7 3 3-6 accum,immed 4 3 2 1 2-3

OUT - Output Data to Port

Usage: OUT port,accum Modifies flags: None

Transfers byte in AL,word in AX or dword in EAX to the specified hardware port address. If the port number is in the range of 0-255 it can be specified as an immediate. If greater than 255 then the port number must be specified in DX. Since the PC only decodes 10 bits of the port address, values over 1023 can only be decoded by third party vendor equipment and also map to the port range 0-1023. Clocks Size Operands 808x 286 386 486 Bytes immed8,accum 10/14 3 10 16 2 immed8,accum (PM) - - 4/24 11/31/29 2 DX,accum 8/12 3 11 16 1 DX,accum (PM) - - 5/25 10/30/29 1 - 386+ protected mode timings depend on privilege levels. first number is the timing when: CPL ≤ IOPL second number is the timing when: CPL > IOPL

third number is the timing when: virtual mode on 486 processor

OUTS - Output String to Port (80188+) Usage: OUTS port,src OUTSB OUTSW

OUTSD (386+) Modifies flags: None

Transfers a byte, word or doubleword from \ port specified in DX. For instructions with no operands the \ is located at DS:SI and SI is incremented or decremented by the size of the operand or the size dictated by the instruction format. When the Direction Flag is set SI is decremented, when clear, SI is incremented. If the port number is in the range of 0-255 it can be specified as an immediate. If greater than 255 then the port

number must be specified in DX. Since the PC only decodes 10 bits of the port address, values over 1023 can only be decoded by third party vendor equipment and also map to the port range 0-1023. Clocks Size Operands 808x 286 386 486 Bytes port,src - 5 14 17 1 port,src (PM) - - 8/28 10/32/30 1 - 386+ protected mode timings depend on privilege levels. first number is the timing when: CPL ≤ IOPL second number is the timing when: CPL > IOPL

third number is the timing when: virtual mode on 486 processor

POP - Pop Word off Stack

Usage: POP dest Modifies flags: None

Transfers word at the current stack top (SS:SP) to the destination then increments SP by two to point to the new stack top. CS is not a valid destination.

Clocks Size Operands 808x 286 386 486 Bytes reg16 8 5 4 4 1 reg32 4 - - 4 1 segreg 8 5 7 3 1 mem16 17+EA 5 5 6 2-4 mem32 5 - - 6 2-4

POPA/POPAD - Pop All Registers onto Stack (80188+) Usage: POPA

POPAD (386+) Modifies flags: None

Pops the top 8 words off the stack into the 8 general purpose 16/32 bit registers. Registers are popped in the following order: (E)DI,

(E)SI, (E)BP, (E)SP, (E)DX, (E)CX and (E)AX. The (E)SP value popped from the stack is actually discarded.

Clocks Size Operands 808x 286 386 486 Bytes none - 19 24 9 1

POPF/POPFD - Pop Flags off Stack Usage: POPF

POPFD (386+) Modifies flags: all flags

Pops word/doubleword from stack into the Flags Register and then increments SP by 2 (for POPF) or 4 (for POPFD).

Clocks Size Operands 808x 286 386 486 Bytes

none 8/12 5 5 9 1 (W88=12) none (PM) - - 5 6 1

PUSH - Push Word onto Stack Usage: PUSH src

PUSH immed (80188+ only) Modifies flags: None

Decrements SP by the size of the operand (two or four, byte values are sign extended) and transfers one word from source to the stack top (SS:SP).

Clocks Size Operands 808x 286 386 486 Bytes reg16 11/15 3 2 1 1 reg32 - - 2 1 1

mem16 16+EA 5 5 4 2-4 (W88=24+EA) mem32 - - 5 4 2-4 segreg 10/14 3 2 3 1 immed - 3 2 1 2-3

PUSHA/PUSHAD - Push All Registers onto Stack (80188+) Usage: PUSHA

PUSHAD (386+) Modifies flags: None

Pushes all general purpose registers onto the stack in the following

order: (E)AX, (E)CX, (E)DX, (E)BX, (E)SP, (E)BP, (E)SI, (E)DI. The value of SP is the value before the actual push of SP.

Clocks Size Operands 808x 286 386 486 Bytes none - 19 24 11 1

PUSHF/PUSHFD - Push Flags onto Stack Usage: PUSHF

PUSHFD (386+) Modifies flags: None

Transfers the Flags Register onto the stack. PUSHF saves a 16 bit

value while PUSHFD saves a 32 bit value.

Clocks Size Operands 808x 286 386 486 Bytes none 10/14 3 4 4 1 none (PM) - - 4 3 1

RCL - Rotate Through Carry Left

Usage: RCL dest,count Modifies flags: CF OF

+-+ +---------------+ +-+|C|<+--+|7 <---------- 0|<-+ | +-+ +---------------+ | +-----------------------------+

Rotates the bits in the destination to the left \ all data pushed out the left side re-entering on the right. The Carry Flag holds the last bit rotated out.

Clocks Size Operands 808x 286 386 486 Bytes reg,1 2 2 9 3 2

mem,1 15+EA 7 10 4 2-4 (W88=23+EA) reg,CL 8+4n 5+n 9 8-30 2

mem,CL 20+EA+4n 8+n 10 9-31 2-4 (W88=28+EA+4n) reg,immed8 - 5+n 9 8-30 3 mem,immed8 - 8+n 10 9-31 3-5

RCR - Rotate Through Carry Right

Usage: RCR dest,count Modifies flags: CF OF

+---------------+ +-+ +->|7 +---------> 0|+--->|C|+-+ | +---------------+ +-+ | +-----------------------------+

Rotates the bits in the destination to the right \ all data pushed out the right side re-entering on the left. The Carry Flag holds the last bit rotated out.

Clocks Size Operands 808x 286 386 486 Bytes reg,1 2 2 9 3 2

mem,1 15+EA 7 10 4 2-4 (W88=23+EA) reg,CL 8+4n 5+n 9 8-30 2

mem,CL 20+EA+4n 8+n 10 9-31 2-4 (W88=28+EA+4n) reg,immed8 - 5+n 9 8-30 3 mem,immed8 - 8+n 10 9-31 3-5


INTEL汇编指令集(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:肯德基与麦当劳两大快餐帝国的连锁餐饮秘诀

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: