找回密码
 注册
关于网站域名变更的通知
查看: 417|回复: 1
打印 上一主题 下一主题

8086CPU汇编指令速查手册

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-11-28 16:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
~~~
" q1 r) D& P1 |7 K9 g8086 CPU 汇编指令速查手册+ u1 r: B: K8 z( Q4 o
  一、数据传输指令( a4 [+ [. U6 u  M0 I
  它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.- n2 j/ i. u. f0 }
  1. 通用数据传送指令.0 s9 A7 v- t' U- Q
  MOV 传送字或字节.
5 d) ]; _, h$ S  MOVSX 先符号扩展,再传送.
. g5 n9 C6 s" B$ B9 C. F7 ?  MOVZX 先零扩展,再传送.
6 F5 R; Z' W  g2 U. b  PUSH 把字压入堆栈.6 h5 \+ G) x) w
  POP 把字弹出堆栈.& T. R- v8 a- s1 v
  PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.! A9 Z! \) `; H( F/ G3 J. ?6 w, w
  POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.
9 W" \1 F4 r$ ~0 N2 P  PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.
4 _% t( q' S- d  POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.
  \9 D  v, `2 [  k2 p  BSWAP 交换32位寄存器里字节的顺序1 M" K- [( k) x; N" z" ~) R* @  w
  XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)4 \) e9 f# i- }/ s/ R' l
  CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )0 F* J+ M2 ^0 _! {$ L+ M  g
  XADD 先交换再累加.( 结果在第一个操作数里 )9 c: a3 A- c& {
  XLAT 字节查表转换.# `9 B/ ~) A/ P7 ~5 \* o1 Q
  ── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即3 c1 c  D9 W# L, _7 p$ I
  0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )
) X, C( f% B! G0 P6 b  2. 输入输出端口传送指令.
2 t0 x, J! _/ m- F) m  IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )) v- x7 S$ [/ e! }2 {  q; f" u
  OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )
! }6 r/ t3 a  O& o) ~9 c3 o  输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,
; k. p$ e8 D3 d0 N: O" {  其范围是 0-65535.
5 q' Q+ }1 p* ]3 L8 y1 m  3. 目的地址传送指令.
2 e( @. I* r; K% y& q* N4 F  LEA 装入有效地址.
2 ]: [8 b. J# Q6 ~! N# s4 P; [  例: LEA DX,string ;把偏移地址存到DX.
! P5 w: B4 M9 S9 |: d  LDS 传送目标指针,把指针内容装入DS.1 M# R. ~3 ]$ e% V: R. ]3 E
  例: LDS SI,string ;把段地址:偏移地址存到DS:SI.
' o/ h9 y- u  x/ e$ V  LES 传送目标指针,把指针内容装入ES.3 a; D3 ^& l& K1 @9 m4 I) y
  例: LES DI,string ;把段地址:偏移地址存到ESI.# p" u/ c* C9 C+ D! g& E. a4 M
  LFS 传送目标指针,把指针内容装入FS.9 {* J) z/ `* v3 f7 c* \- j! q
  例: LFS DI,string ;把段地址:偏移地址存到FSI.
: Z5 l! _* V  A: G  LGS 传送目标指针,把指针内容装入GS.
/ @- C" Y6 {& |1 P+ ~- \- Z* `& ^3 [  例: LGS DI,string ;把段地址:偏移地址存到GSI.2 N5 W5 R7 M! N
  LSS 传送目标指针,把指针内容装入SS.
2 m; _/ T+ @) U1 `6 s  例: LSS DI,string ;把段地址:偏移地址存到SSI.7 e" L% f3 ?0 I3 i4 K1 @
  4. 标志传送指令.
* O" o' }" V, t: {3 W0 M  LAHF 标志寄存器传送,把标志装入AH.
8 `+ ^9 N( ~0 b  SAHF 标志寄存器传送,把AH内容装入标志寄存器.
0 f: h, e. C9 g$ R  PUSHF 标志入栈.
2 a5 w+ w- K7 A% _  POPF 标志出栈.
5 u, M; d8 f% ~  PUSHD 32位标志入栈.' {- `+ q2 Z# ?$ ~# f
  POPD 32位标志出栈.
% `6 Z8 j0 M; }9 o+ Q  二、算术运算指令& J. u/ f' X  a# p' _7 d1 y
  ADD 加法.
- k, s- B0 T, \# `- n$ `; y  ADC 带进位加法.! V  n/ p6 a. A+ G. A
  INC 加 1.
' x: p. j: C. \9 t! \4 X" S* K* j  AAA 加法的ASCII码调整.: f) s& t- w0 {. Q6 b
  DAA 加法的十进制调整.2 i6 V5 [1 a# q$ v+ w
  SUB 减法.- a; s% e8 }- `* O
  SBB 带借位减法.' `7 J: t' ]+ l. f4 j
  DEC 减 1.* x" r' k1 j7 @2 U$ [1 n. E7 u
  NEC 求反(以 0 减之).
. w. V' b: k( F% Q1 ?6 C$ B+ _  CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).
& k% b/ X9 ]# `7 B  O4 |7 t  AAS 减法的ASCII码调整.
4 V  M+ G) A5 o  DAS 减法的十进制调整.
5 i8 H7 b$ C; `( W  MUL 无符号乘法.
: j& _7 v8 U( Y- c  u  IMUL 整数乘法.8 ?) _: V! O7 e" y) O% C% D) e( K
  以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),& v: H" A  Y$ C1 `/ ]
  AAM 乘法的ASCII码调整.& g( a( B0 q( P
  DIV 无符号除法.
7 s. x3 F. J3 R$ F8 ]6 |  IDIV 整数除法.
/ K6 c+ h- A! O. R  以上两条,结果回送:- h: z8 C8 O  v
  商回送AL,余数回送AH, (字节运算);
4 ^' E- U+ R  @6 e* D8 ~  或 商回送AX,余数回送DX, (字运算).% [& ]5 {! k% M" V" I2 S
  AAD 除法的ASCII码调整.# D( |: Z, ^7 h; L. e
  CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)
; W4 k# W; @% }0 J  CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)7 r1 E; p: r1 _, S" R1 ]+ J
  CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去)
! h  M; T8 u0 y. N! q. W  CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)
( |7 ]/ l# N8 \. w2 t8 y& T$ r6 L2 F  三、逻辑运算指令- x7 E: [: w/ b3 y7 }7 [: U. W
  AND 与运算.) h* c) D0 Q! q7 H" W8 [: L" ~4 T
  OR 或运算.8 c' C& c0 j% L0 h( A
  XOR 异或运算.
! T  e8 N, w6 a2 v4 W& V  NOT 取反.$ i, M; _) ~) f. e
  TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).
1 U  V" _3 s  I8 M4 y9 I& T# E5 ~  SHL 逻辑左移.* {9 I! r, f6 G; b
  SAL 算术左移.(=SHL)
3 e  ^4 R: Z2 S% l+ A# b  SHR 逻辑右移.( J' Y3 z4 x' @& B- y
  SAR 算术右移.(=SHR)
/ Z2 I9 C% _+ ^# f  ROL 循环左移.
1 e) E" T, A! K$ S1 }* y$ C  ROR 循环右移.
' N, k/ \8 s' z% l8 ~2 ]: m* Q: N  RCL 通过进位的循环左移.: Q" J: x; w! h3 c
  RCR 通过进位的循环右移.
$ B' ^0 u0 Z8 q3 o: x' d0 O  以上八种移位指令,其移位次数可达255次.
, n2 f, i+ h9 q, A  移位一次时, 可直接用操作码. 如 SHL AX,1.7 c( Y6 G- R( k- _
  移位>1次时, 则由寄存器CL给出移位次数.& C1 x1 k/ |/ [- L, I; O! x
  如 MOV CL,04( `+ _* `& D5 O6 T' S1 x
  SHL AX,CL
7 |% O. _' h# K$ E; \. K" ~  四、串指令
5 ?3 j, t0 j9 P- l9 D: [  T  DS:SI 源串段寄存器 :源串变址.
0 i+ k8 l$ J% w7 r4 `6 S+ K8 M" y  ES9 \0 S7 g" e4 o3 M% T0 o
  I 目标串段寄存器:目标串变址.
% F% D# F# R  Q0 L) b* S  CX 重复次数计数器.
% _- V& T, U/ C1 `- n% j& a' O3 S  AL/AX 扫描值.4 M& h; y5 I0 U, [4 Q( O5 [: j
  D标志 0表示重复操作中SI和DI应自动增量; 1表示应自动减量.
% @3 X/ a0 R1 d  Z标志 用来控制扫描或比较操作的结束.
: y- E: v2 o6 Y$ W- g  MOVS 串传送.
* _, E7 v+ U1 ?1 J  d  ( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )6 F/ W6 m, \$ t
  CMPS 串比较./ r3 H$ ~& I) m) j/ {( \  f
  ( CMPSB 比较字符. CMPSW 比较字. )
  f8 s9 k' H4 m9 u  J) c  SCAS 串扫描.
6 |' A1 U+ a1 T) M: c3 _  把AL或AX的内容与目标串作比较,比较结果反映在标志位.2 i- g; y4 w& T' D4 a' t
  LODS 装入串.- l0 I+ d+ ]+ o( g+ d6 J
  把源串中的元素(字或字节)逐一装入AL或AX中.& z  l3 x# D. x+ C. U
  ( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. )
, L, [  M& `% ]1 `! z; M( S, `2 h7 Q  STOS 保存串., e0 [7 L1 b' p* |1 @
  是LODS的逆过程.* h+ y' D5 R6 y, w
  REP 当CX/ECX<>0时重复.
1 H2 D: c, q5 j+ D  f- g+ ?1 X  REPE/REPZ 当ZF=1或比较结果相等,且CX/ECX<>0时重复.; Y1 V  Z5 ]0 o
  REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0时重复.
4 f0 C) y# M6 z5 d  REPC 当CF=1且CX/ECX<>0时重复.& W: m! J# g0 q1 l9 f( {' g
  REPNC 当CF=0且CX/ECX<>0时重复.
* T, B& G! F: Z; F  五、程序转移指令
+ Q) _5 N7 K' W' w8 E: a! {& ~  1>无条件转移指令 (长转移)
* M  a) k4 B' S- |2 f  JMP 无条件转移指令' n. F6 \  ?2 B. s1 c9 _+ Y: K, {4 Z
  CALL 过程调用
. d% T! ]$ z5 r8 I3 ^/ C  RET/RETF过程返回.: N; P! C: O9 L5 W4 R7 `
  2>条件转移指令 (短转移,-128到+127的距离内)
) A# S: K& G, j& W; X6 c  ( 当且仅当(SF XOR OF)=1时,OP1' J: S+ I1 K/ m1 Q9 F  M
  JA/JNBE 不小于或不等于时转移." Q" J! l# J2 U4 D) W( H% A" w
  JAE/JNB 大于或等于转移.
/ }! [8 [$ l9 b$ N& @/ m  JB/JNAE 小于转移.8 ]; ~; h- a4 K" A3 ~5 N
  JBE/JNA 小于或等于转移.* u. _: q# a% |& ?5 w4 l! d
  以上四条,测试无符号整数运算的结果(标志C和Z).
( `) N  d' l( D0 b: ?& F* p3 y  JG/JNLE 大于转移.3 T8 m  n7 z: W: i7 x
  JGE/JNL 大于或等于转移.6 o# _2 ~/ \8 I5 `8 f( U5 ]
  JL/JNGE 小于转移.
& w0 F3 G6 d6 j% z: O# i  JLE/JNG 小于或等于转移./ I- {' T* v/ }- q2 e$ l
  以上四条,测试带符号整数运算的结果(标志S,O和Z).
$ T3 G. w# l) u) J; c  JE/JZ 等于转移.
( U- [$ h/ a0 U! x- P  JNE/JNZ 不等于时转移.
1 g' {2 A1 q" @! X) n  JC 有进位时转移.
/ R: Q8 M8 E0 w$ H4 e  JNC 无进位时转移.
6 h% [3 B5 i8 `/ E6 Z  JNO 不溢出时转移.! h8 n: w2 v  H( ?* J: N
  JNP/JPO 奇偶性为奇数时转移.
$ J+ a& v( _, M. g5 J2 _. P+ b  JNS 符号位为 "0" 时转移.. B$ [  ?, p! @% K  a
  JO 溢出转移.
# h4 c" N, {* ]; l! l' b, O/ {  JP/JPE 奇偶性为偶数时转移.7 J3 q0 Q; y/ ^- |- G$ Y5 l9 Z
  JS 符号位为 "1" 时转移.
. ^9 x1 q0 B9 m' o/ M# x) e  3>循环控制指令(短转移); P4 P( J( w  e  q" K
  LOOP CX不为零时循环.
9 _8 m. s" F2 W5 e  LOOPE/LOOPZ CX不为零且标志Z=1时循环.
0 q- E0 ]  j" P" f0 h  LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.1 }2 e, L  Q4 l1 _
  JCXZ CX为零时转移.
( w- M! ]- M9 z; r: }% |8 x5 {  JECXZ ECX为零时转移.+ j: S& j) I. {& l% P
  4>中断指令
* Q  W# `' o2 t3 A4 t- O5 L  INT 中断指令  o6 z/ q, `/ y3 E$ o5 N: b& m) w/ U
  INTO 溢出中断
& {0 x+ ^8 m9 u/ t. j0 D  IRET 中断返回$ S2 V: o6 a! U  y+ I; m
  5>处理器控制指令7 p, K5 @  ^. }' G$ ]! o
  HLT 处理器暂停, 直到出现中断或复位信号才继续.
- u" `' E/ s! m8 m9 M  WAIT 当芯片引线TEST为高电平时使CPU进入等待状态.* A9 r8 C/ x4 Y! h/ N  b, A2 r
  ESC 转换到外处理器.( x! i: L) Q4 k! r
  LOCK 封锁总线.
/ ^+ l# Y* Q! L  NOP 空操作.
: o8 l* ]( z9 l8 g$ b  STC 置进位标志位.+ o$ Y  P; V; k  u3 N% H
  CLC 清进位标志位.( U% n0 Y0 }, l4 _
  CMC 进位标志取反.
" @+ c3 v4 |# B  STD 置方向标志位.# U& N& Y% q4 S' h! \$ N+ f
  CLD 清方向标志位.- Q& v  j! }* _
  STI 置中断允许位.
4 F; S3 }  ~) E3 ]8 b0 X  CLI 清中断允许位.
8 \& p- s& D3 |( v" t4 f% l0 [# h  六、伪指令
' J& p6 ^1 k7 X% O, D  DW 定义字(2字节)." `1 v% ?, q4 y, p
  PROC 定义过程.
* K# A" |# q+ W% C2 j; C& u  ENDP 过程结束.5 a3 C3 J1 d+ K- T' n& `6 n
  SEGMENT 定义段.
& ~3 T+ L# i* t) |  ASSUME 建立段寄存器寻址.
( y5 g  K# J* l* Q- i  ENDS 段结束.
# B0 {$ v! ^* a" v  END 程序结束.

8086CPU汇编指令速查手册.pdf

104.83 KB, 下载次数: 2, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2016-11-29 11:22 | 只看该作者
捧场,谢谢分享!
+ F7 D) [1 S7 B  l0 m4 Y
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-4 20:02 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表