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+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——完成一个字节得换码转换(1)指令格式:交换操作指令: XCHG OPRD1,OPRD2;[OPRD1]←→ [OPRD2]累加器换码指令(表转换指令、查表指令):XLAT;(AL)← ((DS)×16+(BX)+(AL))(2)XCHG:段寄存器与立即数不能作为一个操作数,8 位/16 位操作。(3)XLAT:表首地址在 BX 中,AL 得内容作为某一项到表首得偏移量(256 字节得表得下标),转换后得结果存放在 AL 中。4、 I/O 操作指令:累加器(AX/AL)与 I...