您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第三章(4)8086指令系统 (1)
ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/161第3章8086/8088微处理器及其系统1.8086/8088微处理器结构–微处理器功能结构–寄存器结构(编程结构)2.8086/8088存储器组织3.8086/8088工作方式–时序和引脚信号–最大和最小模式4.8086/8088寻址方式5.8086/8088指令系统ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/162第3章8086/8088微处理器及其系统8086/8088指令系统92种基本指令,全部公开六个功能组(六大类)1.数据传送(Datatransfer)2.算术运算(Arithmetic)3.逻辑运算和移位指令(Logic&Shift)4.串操作(Stringmanipulation)5.控制转移(ControlTransfer)6.处理器控制(ProcessorControl)ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/163第3章8086/8088微处理器及其系统8086/8088指令系统指令系统的符号约定–八位寄存器:AH/AL,BH/BL,CH/CL,DH/DL–十六位通用寄存器:AX/BX/CX/DX/SP/BP/SI/DI–堆栈指针SP,指令指针IP,标志寄存器F/FLAG/PSW–目的和源变址寄存器DI/SI–段寄存器CS/DS/ES/SSSEG/seg–通用寄存器R/REG/r/reg存储器M/MEM/mem/m–累加器ACC/acc:代表AX/AH/ALComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/164第3章8086/8088微处理器及其系统8086/8088指令系统指令系统的符号约定–src(s),dest(d)源,目的操作数(下列寻址方式都可以用)–[BX+SI+n],[BX+DI+n],[BP+SI+n],[BP+DI+n]–[SI+n],[DI+n],[BP+n],[BX+n]–[N],r–[]存储器单元的内容(正常在数据段)–ES:[]附加存储器段的内容–OPRD操作数–N/n(im)立即数(n8位,nn16位,nnnn32位)ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/165第3章8086/8088微处理器及其系统8086/8088指令系统8086/8088指令一览表指令类型助记符数据传送通用传送MOV,PUSH,POP,XCHG,XLAT地址传送LEA,LDS,LES标志传送PUSHF,POPF,LAHF,SAHF输入输出IN,OUT算术运算加法ADD,ADC,INC,AAA,DAA减法SUB,SBB,DEC,NEG,CMP,AAS,DAS乘法MUL,IMUL,AAM除法DIV,IDIV,AAD符号扩展CBW,CWD逻辑操作逻辑运算AND,TEST,OR,XOR,NOT移位SHL,SAL,SHR,SAR循环移位ROL,ROR,RCL,RCRComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/166第3章8086/8088微处理器及其系统8086/8088指令系统8086/8088指令一览表指令类型助记符串操作MOVS,CMPS,SCAS,LODS,STOS串处理重复控制REP,REPE/REPZ,REPNE/REPNZ无条件转移JMP条件转移JE/JZ,JNE/JNZ,JS,JNS,JO,JNOJP,JNP,JC,JNC,JCXZJA/JNBE,JAE/JNB,JB/JNAE,JBE/JNAJG/JNLE,JGE/JNL,JL/JNGE,JLE/JNG循环控制LOOP,LOOPE/LOOPZ,LOOPNE/LOOPNZ过程调用CALL,RET控制转移中断指令INT,INTO,IRET处理机控制CLC,STC,CMC,CLD,STD,CLI,STINOP,HLT,WAIT,ESC,LOCKComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/167指令类型指令格式指令功能状态标志位备注OSZAPC通用数据传送MOV目标,源PUSH源POP目标XCHG目标,源XLAT传送字节或字字压入堆栈字弹出堆栈交换字节或字字节翻译------------------......------源:R、M、立即数目标:R、M源:R、M目标:R(CS除外)、M源:通用R、M目标:通用R、M目标地址传送LEA目标,源LDS目标,源LES目标,源装入有效地址装入数据段指针到DS装入附加段指针到ES------------------源:内存操作数目标:16位通用R源:内存操作数目标:16位通用R源:内存操作数目标:16位通用R标志位传送LAHFSAHFPUSHFPOPF把FR低字节装入AH把AH内容装入FR低字节把FR内容压入堆栈从堆栈中弹出FR内容-------·····------······I/O数据传送IN累加器,端口OUT端口,累加器输入字节或字输出字节或字------------累加器:AL或AX端口:地址0~255或间接寄存器DX第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/168第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)/通用数据传送类–字节或字传送MOV–堆栈PUSH和POP–字节或字交换XCHG–字节翻译XLAT语句格式:MOVd,s;(dest)(src)功能:把一个字节(B)或一个字(W)操作数由源传送至目的,源操作数内容不变。ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/169第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)/通用数据传送类–RR–ImR–MR,RM–ImM–d和s类型要匹配ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/1610第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)/通用数据传送类CPU内部寄存器之间的数据的任意传送–MOVDL,CH;8位寄存器8位寄存器–MOVAX,DX;16位寄存器16位寄存器–MOVSI,BP–MOVDS,BX;通用寄存器段寄存器–MOVAX,CS;段寄存器通用寄存器–段寄存器之间不能互相传送,即两操作数不能同为SEG–CS和IP不能作为目标寄存器ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/1611第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)/通用数据传送类立即数传送至CPU内部通用寄存器组–AX、BX、CX、DX、BP、SP、SI、DI–MOVCL,04H;立即数8位寄存器–MOVAX,03FFH;立即数16位寄存器–立即数不能传送到段寄存器中,即不能直接给段寄存器赋值ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/1612第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)/通用数据传送类立即数传送至存储器(所有寻址方式)–MOVWORDPTR[SI],057BH;立即数存储器–MOVBYTEPTRMEM,5;立即数存储器–目的操作数不能是立即数ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/1613第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)/通用数据传送类CPU内部寄存器与存储器之间数据传送(CS和IP除外)–MOVMEM,AX;累加器存储器–MOVMEM,DS;段寄存器存储器–MOVDISP[BX],CX;寄存器存储器–MOVAX,DISP[SI];存储器累加器–MOVDS,MEM;存储器段寄存器–MOVCX,DISP[BX][SI];存储器累加器–存储单元之间不能直接传送,即操作数不能同为MComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/1614第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)/通用数据传送类错误的MOV指令–MOVAX,BL–MOVDS,1000H–MOV[BX],[SI]–MOVES,CS–MOVCS,AX–例:设B为已定义字节变量,判断指令正确性。–MOVAX,B–MOVAL,0–MOVIP,AX;–MOVAX,IP;;类型不匹配;不允许立即数送段寄存器;不允许内存操作数之间传送;不允许段寄存器之间传送;CS不能作为目的操作数;错误,类型不匹配;正确,MASM可以判断出要送字节0ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/1615第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)/通用数据传送类错误的MOV指令:–对字节操作指令0~FFH0~255–对字操作指令0~FFFFH0~65535––MOVAL,260–MOVAX,70000–MOVAL,1FFH–MOVAL,2ABCDHComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/1616第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)/通用数据传送类IP和CS–CS和IP的值只在控制转移指令中修改。–对非控制转移指令,取完指令后IP值自动增加,指向下条指令。–段寄存器CS的值,只在MOV、PUSH中可作操作数,下两条指令执行结果不改变CS值–MOVAX,CS–PUSHCSComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/1617第3章8086/8088微处理器及其系统1.数据传送(Datatransfer)/堆栈–堆栈:按照先进后出LastInFirstOut(LIFO)原则组织的一段内存区域,(PUSHPOP)–特点:随着推入堆栈内容增加,SP的值减少–堆栈作用:•在调用一个过程时,保存返回地址;•响应中断,保护断点时;•暂时存放寄存器或存储器单元操作数的内容;•可以用MOVSP,im给SP赋初值,以确定SP在SS段中的位置。ComputerandSystemsSchoolofAutomationScienceandElectricalEngineering2020/2/1618第3章8086/808
本文标题:第三章(4)8086指令系统 (1)
链接地址:https://www.777doc.com/doc-3792438 .html