如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第3章16位和32位微处理器的指令系统第五节8086指令汇总共有133条指令,按功能可分为:传送指令算术运算指令逻辑运算和移位指令串操作指令控制转移指令传送指令通用传送指令注意:①通用传送指令可传送8位和16位数据②通用传送指令中总是既含源操作数,又含目的操作数③不能在两个内存单元之间直接传送数据④CS和IP寄存器不能作为目的操作数⑤用BX、SI、DI来间接寻址时,默认的段寄存器为DS,而用BP来间接寻址时,默认的段寄存器为SS。执行SS寄存器赋值的传送指令时,系统自动禁止外部中断。⑦所有的通用传送指令都不改变标志。(2)堆栈操作指令推入堆栈指令PUSH和弹出堆栈指令POP。如:PUSHAXPUSHDSPOPDSPOPAX格式:PUSHSRC入栈指令POPDST出栈指令功能:一般用于保护现场主程序子程序……PUSHAX转子PUSHBX……PUSHCX结束……POPCXPOPBXPOPAX返回注意:①堆栈操作总是按字进行的。②推入指令,SP减2,数据在栈顶。弹出指令正好相反。③允许PUSHCS,但不允许POPCS。④堆栈的后进先出。(3)交换指令格式:XCHGOPRD1,OPRD2两个操作数均可以是8位或16位功能:OPRD1与OPRD2交换①通用寄存器与累加器②通用寄存器与通用寄存器③通用寄存器与存储器例如:XCHGAL,CLXCHGBX,SIXCHGAX,AREA1[SI]交换指令注意点:①目的操作数和源操作数不能均为内存单元。②段寄存器和IP不能作为交换指令的操作数。累加器专用传送指令直接寻址的输入/输出指令IN/OUTDX间接寻址的IN/OUT指令输入输出指令注意点:①只能用累加器作为执行输入输出的机构②寻址范围:直接输入输出指令为0~255间接输入输出指令为0~65535。l换码指令换码指令的功能地址传送指令(2)装入地址指令LDS功能:将4字节的地址指针传送到2个目的寄存器,比如:LDSDI,[2130H];使2130H和2131H中的偏移量送DI,2132H和2133H中的段值DS。(3)装入地址的指令LES功能:将一个地址指针装入ES和另一个寄存器。例:LESDI,〔BP+04〕;将堆栈中存放的字符串首址送到ES和DI中标志传送指令(3)对标志寄存器的堆栈操作指令PUSHF将标志寄存器的值推入堆栈顶部。POPF从堆栈弹出一个字送标志寄存器。算术运算指令所有算术运算指令均影响状态标志。规则:当无符号数运算产生溢出时,CF为1;当有符号数运算产生溢出时,OF为1;如运算结果为0,则ZF=1;如运算结果为负数,则SF=1;如运算结果中有偶数个1,则PF=1。加法指令ADD[BX+DI],AX;BX+DI和BX+DI+12个单元和AX相加,结果在BX+DI和BX+DI+1所指单元ADDAX,[BX+2000H];BX+2000H和BX+2001H所指单元内容和AX的内容相加,结果在AX中(2)带进位位的加法指令如:ADCAX,SI;AX和SI中的内容以及CF的值相加,结果在AXADCDX,[SI];SI和SI+1所指的单元的内容和DX的内容以及CF的值相加,结果在DX(3)增量指令将操作数的内容加1。如:INCAL;将AL中的内容加1INCCX;将CX中的内容加1INCBYTEPTR[BX+DI+500];将BX+DI+500所指单元的内容加1减法指令SUBAL,20;AL中的数减去20,结果在AL中SUBSI,5010H;SI中的数减去5010H,结果在SI中SUBWORDPTR[DI],1000H;DI和DI+1所指的两单元中的数减去1000H,结果在DI和DI+1所指的单元中(2)考虑借位的减法指令如:SBBAX,2030H;将AX的内容减去2030H,并减去CF值SBBWORDPTR[DI+2],1000H;将DI+2和DI+3所指两单元的内容减去1000H,并减去CF值,结果在DI+2和DI+3所指的单元(3)减量指令将操作数减1。如:DECAX;将AX的内容减1,再送回AX中DECBL;将BL的内容减1,结果送回BL中DECBYTEPTR[DI+2];将DI+2所指单元的内容减1,结果送回此单元(4)求补指令操作数取补码如:NEGAL;将AL中的数取补码NEGCX;将CX中的内容取补码(5)比较指令