8086指令表

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

表2-1数据传送指令助记符指令格式及格式功能说明通用数据传送指令MOVMOVdest,src;dest←src传送字节或字PUSHPUSHsrc;SP←SP-2;[SP+1:SP]←src字人栈src与dest必须都是16位的后进先出(LIFO)POPPOPsrc;dest←[SP:SP+1];SP←SP+2字出栈XCHGXCHGsrc,dest;src↔dest交换字节或字src与dest不同时为存储器操作数XLATXLAT;AL←[BX+AL]字节转换表2-2算术运算指令助记符指令格式及操作功能说明加法指令ADDADDdest,src;dest←src+dest加法ADD[BX],AL变量加寄存器ADD[DI],3000HADCADCdest,src;dest←src+dest+CF带进位的加法INCINCdest,dest←dest+1增量(加1)dest不允许是立即数不影响CFDAADAA加法的十进制修正只对AL的内容进行调整减法指令SUBSUBdest,src;dest←dest-src减法SUBBX,CXSBBSBBdest,src;dest←dest-src-CF带借位的减法DECDECdest,src;dest←dest-1减量(减1)NEGNEGdest;dest←0-dest求补(变负)相当于对dest取反后加1CMPCMPdest,src;dest-src比较指令不保留执行结果只影响标志执行而不改变destDASDAS减法的十进制修正只对AL的内容进行调整乘法指令MULMULsrc;8位:AX←src*AL;16位:DX:AX←src*AX无符号数乘法指令影响OF,CF运算结果高半部分(在AH或DX中)为零,则CF=OF=0,否则全为18*8=16,16*16=32IMUIIMULsrc;8位:AX←src*AL;16位:DX:AX←src*AX有符号数乘法除法指令DIVDIVsrc;8位:AL←商;AH←余数;16位:AX←商;DX←余数无符号数除法指令影响OF,CFsrc为除数,不允许是立即数A(被除数)/B(除数)=C被除数在AX中IDIVIDIVsrc;8位:AL←商;AH←余数;16位:AX←商;DX←余数有符号数除法表2-3位处理指令助记符指令格式及操作功能说明逻辑运算符ANDANDdest,src;dest←dest^src逻辑“与”dest不允许是立即数不允许dest与src同时为存储器变量指令会影响SF,ZF,PF总是将OF=0,CF=0TESTTESTdest,src;dest^src按位执行逻辑“与”0RORdest,src;dest←dest∨src逻辑“或”XORXORdest,src;dest←dest⊕src逻辑“异或”NOTNOTdest逻辑“非”移位指令SHLSHLdest,n;逻辑左移逻辑左移n不允许是存储器变量n如果是立即数只能n=1n如果是寄存器只能用CLSALSALdest,n;算术左移算术左移SHRSHRdest,n;逻辑右移逻辑右移SARSARdest,n;算术右移算术右移右移1位,相当于带符号数除以2循环移位指令ROLROLdest,n;循环左移循环左移n不允许是存储器变量n如果是立即数只能n=1n如果是寄存器只能用CL指令会影响OF,CF(ROR指令还会影响SF)RORRORdest,n;循环右移循环右移RCLRCLdest,n;带进位循环左移通过CF循环左移RCRRCRdest,n;带进位循环右移通过CF循环右移助记符指令格式及操作功能说明重复控制指令LOOPLOOPtarget;CX←CX-1若CX≠0则跳转到target循环对标志位没有影响-128≤target≤+127LOOPELOOPZLOOPE/LOOPZtarget;CX←CX-1若CX≠0且ZF=1则跳转到target等于/为零,循环LOOPNELOOPNZLOOPNE/LOOPNZtarget;CX←CX-1若CX≠0且ZF=0则跳转到target不等于/不为零,循环CALLCALLproc调用过程(子过程)对标志位没有影响SP←SP-2中断指令INTINTn;以中断方式调用中断类型号为n的ISR共计256个中断源,0-255INTO以中断方式调用中断类型号为4的ISRIRET中断返回表2-1数据传送指令助记符功能地址目标传送指令LEA装入有效地址LDS将指针变量装入寄存器及DSLES将指针变量装入寄存器及ES标志传送指令LAHF标志寄存器低字节送AHSAHFAH值送标志寄存器低字节PUSHF标志寄存器内容进栈POPF标志寄存器内容出栈表2-4串操作指令助记符功能说明串操作指令MOVS(MOVSB,MOVSW)串传送(字节传送,字传送)MOVSW(按字移动)每次搬移一个字,如果DF=0,所以每次搬运完SI、DI会增加2,CX仍然减少一;如果DF=1,每次搬运完SI、DI会减少2MOVSB(按字节移动)每次搬移一个字节,如果DF=0,所以每次搬运完SI、DI会增加1,如果DF=1,每次搬运完SI、DI会减少1为了使串操作指令MOVSB执行时,SI,DI自动递增,应先使用的指令是CLDCMPS(CMPSB,CMPSW)串比较(字节比较,字比较)STOS(STOSB,STOSW)存入串(存入字节,存入字)LODS(LODSB,LODSW)取出串(取出字节,取出字)LODSB/LODSW将串元素按字节/字存入AL/AX中,DF=0时,SI递增1/2;DF=1时,SI递减1/2SCAS(SCASB,SCASW)扫描串(扫描字节,扫描字)重复前缀REP重复操作REPE/REPZ等于/为零重复REPNE/REPNZ不等于/不为零重复表2-2算术运算指令助记符指令格式及操作功能转换CBW如果AL<80H,AH←00H如果AL≥80H,AH←FFH字节转换为字CWD如果AX<8000H,DX←0000H如果AX≥80000H,DX←FFFFH字转换为双字表2-5程序转移指令助记符功能转移条件备注无条件转移指令CALL调用过程(子过程)RET从过程(子过程)返回JMP无条件转移条件转移指令JA/JNBE高于/不低于等于,转移CF=0且ZF=O无符号数JAE/JNB高于等于/不低于,转移CF=0JB/JNAE低于/不高于等于,转移CF=1JBE/JNA低于等于/不高于,转移CF=1或ZF=1JC有进位(借位),转移OF=1JE/JZ等于/为零,转移ZF=1JG/JNLE大于/不小于等于,转移SF=OF且ZF=1带符号数JGE/JNL大于等于/不小于,转移SF=OFJL/JNGE小于/不大于等于,转移SF≠OF且ZF=0JLE/JNG小于等于/不大于,转移SF≠OF且ZF=1JNC无进位(借位),转移CF=0JNE/JNZ不等于/不为零,转移ZF=0JNO不溢出,转移OF=0JNP/JPOPF为“0/奇状态,转移PF=0,PO成立JNSSF为“O”,转移SF=0J0溢出,转移OF=1JP/JPEPF为“1”/偶状态,转移.PF=1,PE成立JSSF为“1”,转移SF=1JCXZ寄存器CX=O,转移CX=0表2-6处理器控制指令助记符功能标志位操作STC进位标志置1CLC进位标志置OCMC进位标志取反STD方向标志置1CLD方向标志置OSTI中断允许标志置1CLI中断允许标志置O外同步HLT暂停直至中断或复位WAIT等待TEST信号有效ESC交权给外部处理机LOCK在下一条指令期间封锁总线空操作NOP空操作表2-7串操作指令中寄存器和标志位的用途寄存器/标志用途SI源字符串的变址值(偏移量)DI目的字符串的变址值(偏移量DS源字符串的段基值ES目的字符串的段基值CX重复次数计数器AL/AXSCAS指令的扫描值LODS指令的目的操作数STOS指令的源操作数ZF扫描/比较结束标志DFDF=O.SI,DI自动增量DF=1.SI,DI自动减量1.设BL=0FFH,执行指令“SARBL,1”后,BL中的内容是(0FFH)。2.设SP=1300H,AX=200H,执行指令“POPAX”后,SP寄存器的内容为(1302H)。3.十进制数的-1的8位二进制补码,用十六进制数表示是(D)A.01HB.8FHC.0FEHD.0FFHMOV用法总结非法操作:1.两个操作数都是存储器操作数2.src是立即数,dest是段寄存器3.两个操作数都是段寄存器MOV指令用法的举例:MOVAX,CX;段寄存器至通用寄存器MOVAL,125;立即数至寄存器MOVMEM,15;立即数至存储器,直接寻址MOVSI,BX;寄存器至寄存器MOVDS,AX;通用寄存器至段寄存器(CS不行)MOV[BX],50H;立即数至存储器,寄存器间接寻址MOVMEM,AX;寄存器至存储器,直接寻址MOVMEM,DS;段寄存器至存储器,直接寻址MOVISP[BX],CX;寄存器至存储器,基址寻址MOVAX,DISP[SI];存储器至寄存器,变址寻址MOVDS,MEM;存储器至段寄存器,直接寻址MOVAX,DISP[BX][SI];存储器至寄存器,基址变址寻址标志位1.CF:进位标志位。当进行加法或减法运算时,最高位发生进位或借位,CF=1;否则,CF=0。2.PF:奇偶标志位。当运算结果的最低有效字节中“1”的个数为偶数时,PF=1;为奇数时,CF=0。3.AF:辅助进位位。在减法或加法操作中,低4位向高4位有进位、借位发生时,AF=1;否则,AF=0。4.ZF:零标志位。ZF=1表示运算结果为零;否则ZF=0。5.SF:符号标志位。SF=1表示运算结果的最高位为1(即为负数);否则SF=0。6.OF:溢出标志位。OF=1表示溢出,即算术运算的结果超出了带符号数的范围;OF=0表示未溢出。8位带符号数的范围是-128--+127,16位带符号数的范围是-32768--+32767.7.TF:跟踪标志位。TF=1是CPU处于单步执行指令的工作方式。这种方式便于进行程序的调试。每执行一条指令后,便自动产生一次内部中断,从而能逐条地检查程序。8.IF:中断允许标志位。IF=1使CPU可以响应可屏蔽中断请求。IF=0使CPU禁止响应可屏蔽中断请求。不可屏蔽中断和内部中断不受IF影响。9.DF:方向标志位。DF=1字符串操作按地址递减进行;DF=0字符串操作按地址递增进行。数据的寻址方式:1.立即寻址操作数直接在指令中给出。例:MOVAL,502.寄存器寻址指令的操作码是一个寄存器,操作数在这个寄存器中。例:ADDAX,BX,将AX中的内容和BX中的内容相加后,结果送AX。3.直接寻址操作数在存储器中的地址在指令中直接给出。例:ADDAX,[1000H],将存储单元1000H中的内容和AX中的内容相加后,结果送AX。4.寄存器间接寻址操作数的地址在寄存器中,其寄存器在指令中给出。例:MOVAX,[SI],将寄存器SI中的内容作为访问存储器的某个单元的地址,然后取出地址中的操作数送入AX。MOV[SI],BX注:能使用的寄存器有四个:SI、DI、BX、BP。5.变址寻址是由指令提供基地址、变址寄存器提供偏移爨,此寻址方式面向用户,常用于访问字符串、向量数据结构和循环程序设计。例:MOVAX,[SI][1300H],EA=SI+13000H注:能使用的寄存器有两个:SI或DI。6.基址寻址是由基址寄存器提供基准地址、指令提供偏移量;此寻址方式面向系统,由逻辑地址空间到物理地址空间的变换提供支持,用以解决程序在存储器中再定位和扩大寻址空间问题。例:MOVAX,[BX][1300H],EA=BX+13000H注:能使用的寄存器有两个:BX或BP。7.基址变址寻址操作数的地址是程序计数器PC的值加上偏移量形成的,这个偏移量在指令中给出。是一种特殊的变址寻址方式,偏移量用补码表示,可正可负。相对寻址可用较短的地址码访问内存。例:MOVAX,[BX][1300H][SI],EA=BX+13000H+SI注:指令使用了BX,则段地址是DS;指令使用了BP,则段地址是SS。1.变

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功