如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
一、指令与指令系统(一)指令(Instruction)指令是计算机执行某种操作命令:内容包括做什么操作,操作数的来源,结果的存放,以及下一条指令的位置等等。1、传送类;2、加工处理类:算术运算、逻辑运算、移位循环;3、控制类:转移、调用、中断等;4、串操作类;(二)指令系统:所有指令的集合8086CPU包含133条指令。(三)程序:一些指令的有机结合,用于完成某种目的。8086指令系统8086指令系统操作数符号表示DST:目的操作数SRC:源操作数TARGET:循环、转移和调用指令操作数reg:寄存器操作数,字节或字reg8:寄存器操作数,字节reg16:寄存器操作数,字mem:存储器操作数,字节或字mem8:字节型存储器操作数mem16:字型存储器操作数mem32:双字型存储器操作数acc:累加器AL或AX操作数符号表示seg_reg:段寄存器imm:立即操作数,字节或字imm8:8位立即操作数imm16:16位立即操作数short_label:短标号(8位偏移量)near_label:近标号(16位地址或偏移)far_label:远标号(32位地址)数据传送指令(一)通用数据传送指令1、MOVDST,SRC;(DST)←(SRC),不影响标志位。具体指令:movmem,accmovacc,memmovreg,regmovreg,memmovmem,regmovreg,immmovmem,immmovseg_reg,reg16;CS除外movseg_reg,mem16;CS除外movreg16,seg_regmovmem16,seg_reg例合法指令MOVAX,[SI];(AX)←((SI))MOVAL,[SI];(AL)←((SI))MOVDS,AX;(DS)←(AX)MOVAX,DS;(AX)←(DS)MOVSI,2000H;(SI)←2000HMOV[SI],20H;((SI))←20HMOVSI,[2000H];(SI)←(2000H)MOVSI,[SI+6];(SI)←((SI)+6)MOVAX,AX;(AX)←(AX)非法指令:存储器之间,立即数至段寄存器,段寄存器之间的传送;操作数类型不匹配,字对字节传送例MOV[SI],[2000H]MOVCS,BXMOVDS,2000H2、堆栈及堆栈操作(1)、堆栈堆栈是一种按先进后出(FILO)原则存取的存储器,它由堆栈指针寄存器SS:SP和RAM中的一部分组成,主要用于保护现场和恢复现场。SP的内容总是指向栈顶,即最后推入信息所在单元。(2)进栈指令PUSHSRC;(SP)←(SP)-2,((SP)+1,(SP))←(SRC)具体指令:PUSHreg16PUSHseg_regPUSHmem16(3)出栈指令POPDST;(DST)←((SP)+1,(SP)),(SP)←(SP)+2)具体指令:POPreg16POPseg_regPOPmem163、交换指令XCHGDST,SRC;(DST)<=>(SRC)具体指令:XCHGreg,mem/regXCHGreg,acc例:XCHGAX,BX;(AX)<=>(BX)XCHGAL,BL;(AL)<=>(BL)(二)累加器专用传送指令1、输入指令INAL,PORT;(AL)←(PORT)INAX,PORT;(AX)←(PORT)INAL,DX;(AL)←((DX))INAX,DX;(AX)←((DX))PORT为8位直接地址,(DX)为16位端口地址2、输出指令OUTPORT,AL;(PORT)←(AL)OUTPORT,AX;(PORT)←(AX)OUTDX,AL;((DX))←(AL)OUTDX,AX;((DX))←(AX)3、字节转换指令XLAT;(AL)←((BX)+(AL))例:MOVBX,offsetTABLEXLAT若(AL)=3,则首先应将表格首地址送BX,执行XLAT后(AL)=9TABLE:DB0DB1DB4DB9DB16DB25(三)地址传送指令LEA(loadeffectiveaddress)LDS(loadDSwithpointer)LES(loadESwithpointer)1、有效地址传送指令LEAreg16,SRC;(reg16)←SRC例:MSGdb‘Hello$’LEADX,MSG;相当于:MOVDX,OFFSETMSG指令执行后(DX)=2000H如果指令:MOVDX,MSG则:(DH)=‘e’(DL)=‘H’2、LDSreg16,mem3