还剩6页未读,继续阅读
文本内容:
8086CPU指令小结所有指令
(1)立即数不能作为目的操作数
(2)不能在2个存储单元之间直接进行操作(串操作除外)
(3)MOV指令和堆栈指令是惟一能对段寄存器进行操作的指令
(4)源和目的操作数的数据类型必须匹配,都是8位,或都是16位
(5)CS、IP不能直接作为操作数
(6)指令中至少要有一项明确说明传送的是字节还是字,如果没有,可通过PTR进行设置
一、传送指令
(1)6种指令通用传送指令、堆栈操作指令、交换操作指令、I/O操作指令、目的地址传送指令和标志传送指令
(2)对标志位的影响除标志传送(SAHF、POPF)外,均不影响标志位
(3)操作数表示方法立即数——data,存储器单元地址——mem,寄存器——reg,段寄存器——segreg
1.通用传送指令完成数据传送
(1)指令格式MOVOPRD1,OPRD2;[目的操作数OPRD1]←[源操作数OPRD2]
(2)源OPRD2data、mem、reg、segreg
(3)目的OPRD1mem、reg、segreg
(4)通用传送指令MOV和堆栈指令是唯一允许以段寄存器(代码段寄存器CS和指令指针IP除外,即CS、IP不能作为直接操作数)作为操作数的指令,不允许通过MOV指令直接以立即数方式给段寄存器赋值,不允许直接在两个段寄存器之间直接进行传送
(5)8位/16位操作
2.堆栈操作指令将数据压入/弹出堆栈
(1)指令格式入栈PUSHOPRD;先修改堆栈指针SP-2,然后将数据压入堆栈;SP=SP-1,[SP]=操作数高8位;SP=SP-1,[SP]=操作数低8位出栈POPOPRD;先将数据弹出堆栈,然后修改堆栈指针SP+2;(操作数低8位)←[SP],SP=SP+1;(操作数高8位)←[SP],SP=SP+1
(2)操作数mem、reg、segreg操作数不能是立即数data
(3)仅能进行字运算(16位操作)
(4)堆栈存取原则为后进先出,只有一个入/出口SS SP,SP始终指向栈顶,SP是自动修改的,SP在初始化中需要设置
(5)PUSH、POP指令必须成对使用
3.交换操作指令XCHG——数据交换;XLAT...。