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)指令格式:MOV OPRD1,OPRD2 ;[目得操作数 OPRD1]← [源操作数 OPRD2](2)源 OPRD2: data、mem、reg、segreg
(3)目得 OPRD1: mem、reg、segreg
(4)通用传送指令 MOV 与堆栈指令就是唯一允许以段寄存器(代码段寄存器 CS 与指令指针 IP 除外,即 CS 、IP 不能作为直接操作数)作为操作数得指令,不允许通过 MOV 指令直接以立即数方式给段寄存器赋值,不允许直接在两个段寄存器之间直接进行传送
(5)8 位/16 位操作
2、 堆栈操作指令:将数据压入/弹出堆栈(1)指令格式:入栈:PUSH OPRD;先修改堆栈指针 SP2,然后将数据压入堆栈
;SP =SP1,[SP]=操作数高 8 位; SP =SP1,[SP]= 操作数低 8 位
出栈:POP OPRD; 先将数据弹出堆栈,然后修改堆栈指针 SP+2
;(操作数低 8 位)←[SP],SP =SP+