没有合适的资源?快使用搜索试试~ 我知道了~
关于Intel系列处理器的详细指令介绍.
资源详情
资源评论
资源推荐
Page 1361
Appendix D: Instruction Set Reference
This section provides encodings and approximate cycle times for all instructions that you would nor-
mally execute in
real
mode on an Intel processor. Missing are the special instructions on the 80286 and
later processors that manipulate page tables, segment descriptors, and other instructions that only an oper-
ating system should use. The cycle times are approximate. To determine exact execution times, you will
need to run an experiment. The cycle times are given for comparison purposes only.
Key to special bits in encodings:
x: Don’t care. Can be zero or one.
s: Sign extension bit for immediate operands. If zero, immediate operand is 16 or 32 bits depend-
ing on destination operand size. If s bit is one, then the immediate operand is eight bits and the
CPU sign extends to 16 or 32 bits, as appropriate.
rrr: Same as reg field in [mod-reg-r/m] byte.
Other Notes:
[disp] This field can be zero, one, two, or four bytes long as required by the instruction.
[imm] This field is one byte long if the operand is an eight bit operand or if the
s
bit in the instruction
opcode is one. It is two or four bytes long if the
s
bit contains zero and the destination operand
is 16 or 32 bits, respectively.
[mod-reg-r/m]: Instructions that have a mod-reg-r/m byte may have a scaled index byte (sib) and a zero, one,
two, or four byte displacement. See Appendix E for details concerning the encoding of this por-
tion of the instruction.
reg,reg Many instructions allow two operands using a [mod-reg-r/m] byte. A single
direction
bit in the
opcode determines whether the instruction treats the
reg
operand as the destination or the mod-
r/m operand as the destination (e.g., mov reg,mem vs. mov mem,reg). Such instructions also
allow two register operands. It turns out there are two encodings for each such reg-reg instruc-
tion. That is, you can encode an instruction like mov ax, bx with ax encoded in the reg field and
bx encoded in the mod-r/m field, or you can encode it with bx encoded in the reg field and ax
encoded in the mod-r/m field. Such instructions always have an
x
bit in the opcode. If the
x
bit
is zero, the destination is the register specified by the mod-r/m field. If the
x
bit is one, the desti-
nation is the register specified by the reg field. Other types of instructions support multiple
encodings for similar reasons.
Table 97: 80x86 Instruction Set Reference
a
Instruction
Encoding
(bin)
b
Execution Time in Cycles
c
8088 8086 80286 80386 80486 Pentium
aaa 0011 0111883433
aad 1101 0101
0000 1010
60 60 14 19 14 10
aam 1101 0100
0000 1010
83 83 16 17 15 18
aas 0011 1111 883433
adc reg8, reg8 0001 00x0
[11-reg-r/m]
3‘32211
adc reg16, reg16 0001 00x1
[11-reg-r/m]
332211
Thi d d i h F M k 4 0 2
Appendix D
Page 1362
adc reg32, reg32 0110 0110
0001 00x1
[11-reg-r/m]
332211
adc reg8, mem8 0001 0010
[mod-reg-r/m]
9+EA 9+EA 7622
adc reg16, mem16 0001 0011
[mod-reg-r/m]
13+EA 9+EA 7622
adc reg32, mem32 0110 0110
0001 0011
[mod-reg-r/m]
---622
adc mem8, reg8 0001 0000
[mod-reg-r/m]
16+EA 16+EA 7733
adc mem16, reg16 0001 0001
[mod-reg-r/m]
24+EA 16+EA 7733
adc mem32, reg32 0110 0110
0001 0001
[mod-reg-r/m]
---733
adc reg8, imm8 1000 00x0
[11-010-r/m]
[imm]
443211
adc reg16, imm16 1000 00s0
[11-010-r/m]
[imm]
443211
adc reg32, imm32 0110 0110
1000 00s0
[11-010-r/m]
[imm]
443211
adc mem8, imm8 1000 00x0
[mod-010-r/m]
[imm]
17+EA 17+EA 7733
adc mem16, imm16 1000 00s1
[mod-010-r/m]
[imm]
23+EA 17+EA 7733
adc mem32, imm32 0110 0110
1000 00s1
[mod-010-r/m]
[imm]
---733
adc al, imm 0001 0100
[imm]
443211
adc ax, imm 0001 0101
[imm]
443211
adc eax, imm 0110 0110
0001 0101
[imm]
---211
add reg8, reg8 0000 00x0
[11-reg-r/m]
3‘32211
add reg16, reg16 0000 00x1
[11-reg-r/m]
332211
add reg32, reg32 0110 0110
0000 00x1
[11-reg-r/m]
332211
Table 97: 80x86 Instruction Set Reference
a
Instruction
Encoding
(bin)
b
Execution Time in Cycles
c
8088 8086 80286 80386 80486 Pentium
Appendices
Page 1363
add reg8, mem8 0000 0010
[mod-reg-r/m]
9+EA 9+EA 7622
add reg16, mem16 0000 0011
[mod-reg-r/m]
13+EA 9+EA 7622
add reg32, mem32 0110 0110
0000 0011
[mod-reg-r/m]
---622
add mem8, reg8 0000 0000
[mod-reg-r/m]
16+EA 16+EA 7733
add mem16, reg16 0000 0001
[mod-reg-r/m]
24+EA 16+EA 7733
add mem32, reg32 0110 0110
0000 0001
[mod-reg-r/m]
---733
add reg8, imm8 1000 00x0
[11-000-r/m]
[imm]
443211
add reg16, imm16 1000 00s0
[11-000-r/m]
[imm]
443211
add reg32, imm32 0110 0110
1000 00s0
[11-000-r/m]
[imm]
443211
add mem8, imm8 1000 00x0
[mod-000-r/m]
[imm]
17+EA 17+EA 7733
add mem16, imm16 1000 00s1
[mod-000-r/m]
[imm]
23+EA 17+EA 7733
add mem32, imm32 0110 0110
1000 00s1
[mod-000-r/m]
[imm]
---733
add al, imm 0000 0100
[imm]
443211
add ax, imm 0000 0101
[imm]
443211
add eax, imm 0110 0110
0000 0101
[imm]
---211
and reg8, reg8 0010 00x0
[11-reg-r/m]
3‘32211
and reg16, reg16 0010 00x1
[11-reg-r/m]
332211
and reg32, reg32 0110 0110
0010 00x1
[11-reg-/rm]
332211
and reg8, mem8 0010 0010
[mod-reg-r/m]
9+EA 9+EA 7622
Table 97: 80x86 Instruction Set Reference
a
Instruction
Encoding
(bin)
b
Execution Time in Cycles
c
8088 8086 80286 80386 80486 Pentium
Appendix D
Page 1364
and reg16, mem16 0010 0011
[mod-reg-r/m]
13+EA 9+EA 7622
and reg32, mem32 0110 0110
0010 0011
[mod-reg-r/m]
---622
and mem8, reg8 0010 0000
[mod-reg-r/m]
16+EA 16+EA 7733
and mem16, reg16 0010 0001
[mod-reg-r/m]
24+EA 16+EA 7733
and mem32, reg32 0110 0110
0010 0001
[mod-reg-r/m]
---733
and reg8, imm8 1000 00x0
[11-100-r/m]
[imm]
443211
and reg16, imm16 1000 00s1
[11-100-r/m]
[imm]
443211
and reg32, imm32 0110 0110
1000 00s1
[11-100-r/m]
[imm]
443211
and mem8, imm8 1000 00x0
[mod-100-r/m]
[imm]
17+EA 17+EA 7733
and mem16, imm16 1000 00s1
[mod-100-r/m]
[imm]
23+EA 17+EA 7733
and mem32, imm32 0110 0110
1000 00s1
[mod-100-r/m]
[imm]
---733
and al, imm 0010 0100
[imm]
443211
and ax, imm 0010 0101
[imm]
443211
and eax, imm 0110 0110
0010 0101
[imm]
---211
bound reg16, mem32 0110 0010
[mod-reg-r/m]
13
(values
within
range)
10 7 8
bound reg32, mem64 0110 0110
0110 0010
[mod-reg-r/m]
10
(values
within
range)
78
bsf reg16, reg16 0000 1111
1011 1100
[11-reg-r/m]
10+3*n
n= first set
bit.
6-42 6-34
Table 97: 80x86 Instruction Set Reference
a
Instruction
Encoding
(bin)
b
Execution Time in Cycles
c
8088 8086 80286 80386 80486 Pentium
Appendices
Page 1365
bsf reg32, reg32 0110 0110
0000 1111
1011 1100
[11-reg-r/m]
10+3*n
n= first set
bit.
6-42 6-42
bsf reg16, mem16 0000 1111
1011 1100
[mod-reg-r/m]
10+3*n
n= first set
bit.
7-43 6-35
bsf reg32, mem32 0110 0110
0000 1111
1011 1100
[mod-reg-r/m]
10+3*n
n= first set
bit.
7-43 6-43
bsr reg16, reg16 0000 1111
1011 1101
[11-reg-r/m]
10+3*n
n= first set
bit.
7-100 7-39
bsr reg32, reg32 0110 0110
0000 1111
1011 1101
[11-reg-r/m]
10+3*n
n= first set
bit.
8-100 7-71
bsr reg16, mem16 0000 1111
1011 1101
[mod-reg-r/m]
10+3*n
n= first set
bit.
7-101 7-40
bsr reg32, mem32 0110 0110
0000 1111
1011 1101
[mod-reg-r/m]
10+3*n
n= first set
bit.
8-101 7-72
bswap reg32 0000 1111
11001rrr
11
bt reg16, reg16 0000 1111
1010 0011
[11-reg-r/m]
334
bt reg32, reg32 0110 0110
0000 1111
1010 0011
[11-reg-r/m]
334
bt mem16, reg16 0000 1111
1010 0011
[mod-reg-r/m]
12 8 9
bt mem32, reg32 0110 0110
0000 1111
1010 0011
[mod-reg-r/m]
12 8 9
bt reg16, imm 0000 1111
1011 1010
[11-100-r/m]
[imm8]
334
bt reg32, imm 0110 0110
0000 1111
1011 1010
[11-100-r/m]
[imm8]
334
bt mem16, imm 0000 1111
1011 1010
[mod-100-r/m]
634
Table 97: 80x86 Instruction Set Reference
a
Instruction
Encoding
(bin)
b
Execution Time in Cycles
c
8088 8086 80286 80386 80486 Pentium
剩余41页未读,继续阅读
hookmaya
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0