欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    微型计算机原理及其应用第三章80868088的指令系统.ppt

    • 资源ID:6284320       资源大小:1.47MB        全文页数:91页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微型计算机原理及其应用第三章80868088的指令系统.ppt

    1,微型计算机原理及其应用第三章:8086/8088的指令系统,合肥工业大学计算机与信息学院,2,第三章:8086/8088的指令系统,寻址方式指令系统,3,第三章:8086/8088的指令系统,寻址方式指令系统,4,第三章:8086/8088的指令系统寻址方式,什么叫指令?指令系统?寻址方式?指令:计算机提供给用户的硬件命令。指令系统(集):指令的集合。操作码:指计算机所要执行的操作,即指出操作类型,是一种助记符。操作数:指在指令执行操作的过程中所需要的操作数。该字段除可以是操作数本身外,也可以是操作数地址或是地址的一部分,还可以是指向操作数地址的指针或其它有关操作数的信息。寻址方式:就是指令中用于说明操作数所在地址的方法,或者说是寻找操作数有效地址的方法。,指令的一般格式,5,第三章:8086/8088的指令系统寻址方式,什么叫指令?指令系统?寻址方式?例如:ADD CL,BH在计算机内部的表示:00000010 11001111,6,第三章:8086/8088的指令系统寻址方式,8086/8088指令系统中有哪些寻址方式?立即寻址方式(Immediate Addressing)寄存器寻址方式(Register Addressing)直接寻址方式(Direct Addressing)寄存器间接寻址方式(Register Indirect Addressing)寄存器相对寻址方式(Register Relative Addressing)基址加变址寻址方式(Based Indexed Addressing)相对基址加变址寻址方式(Relative Based Indexed Addressing),7,第三章:8086/8088的指令系统寻址方式,8086/8088指令系统中有哪些寻址方式?立即寻址方式(Immediate Addressing)寄存器寻址方式(Register Addressing)直接寻址方式(Direct Addressing)寄存器间接寻址方式(Register Indirect Addressing)寄存器相对寻址方式(Register Relative Addressing)基址加变址寻址方式(Based Indexed Addressing)相对基址加变址寻址方式(Relative Based Indexed Addressing),8,第三章:8086/8088的指令系统寻址方式,立即寻址方式(Immediate Addressing)操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。,MOV AX,3412H,9,第三章:8086/8088的指令系统寻址方式,立即寻址方式(Immediate Addressing)立即操作数可以是8位或16位,并且是指令的一部分。立即数据总是紧跟在指令操作码之后并和操作码一起存放在代码段中,因而立即数据总是和操作码一起被放入BIU中的指令队列里,在指令执行时不需再存取存储器。MOV AH,80H ADD AX,1234HMOV ECX,123456H MOV B1,12HMOV W1,3456H ADD D1,32123456H其中:B1、W1和D1分别是字节、字和双字单元。以上指令中的第二操作数都是立即数,在汇编语言中,规定:立即数不能作为指令中的第一操作数。该规定与高级语言中“赋值语句的左边不能是常量”的规定相一致。使用立即寻址的指令主要用来给寄存器赋初值。,10,第三章:8086/8088的指令系统寻址方式,8086/8088指令系统中有哪些寻址方式?立即寻址方式(Immediate Addressing)寄存器寻址方式(Register Addressing)直接寻址方式(Direct Addressing)寄存器间接寻址方式(Register Indirect Addressing)寄存器相对寻址方式(Register Relative Addressing)基址加变址寻址方式(Based Indexed Addressing)相对基址加变址寻址方式(Relative Based Indexed Addressing),11,第三章:8086/8088的指令系统寻址方式,寄存器寻址方式(Register Addressing)操作数包含在CPU的内部寄存器中,如寄存器AX、BX、CX、DX等,指令指定寄存器号。,MOV AX,BX,12,第三章:8086/8088的指令系统寻址方式,寄存器寻址方式(Register Addressing)对于16位操作数,寄存器可以是AX,BX,CX,DX,SI,DI,SP或BP;而对8位操作数,寄存器可以是AH,AL,BH,BL,CH,CL,DH或DL。特点:操作数在CPU内,不用通过总线读写,速度快;目的和源操作数均可采用此寻址方式。MOV AX,BX;MOV CL,DL;MOV ESI,EDI;INC CX;ROL AH,1;,13,第三章:8086/8088的指令系统寻址方式,8086/8088指令系统中有哪些寻址方式?立即寻址方式(Immediate Addressing)寄存器寻址方式(Register Addressing)直接寻址方式(Direct Addressing)寄存器间接寻址方式(Register Indirect Addressing)寄存器相对寻址方式(Register Relative Addressing)基址加变址寻址方式(Based Indexed Addressing)相对基址加变址寻址方式(Relative Based Indexed Addressing),14,第三章:8086/8088的指令系统寻址方式,直接寻址方式(Direct Addressing)操作数的有效地址(Effective Address,EA。在IBM PC中把操作数的偏移地址称为有效地址)是指令的一部分,它与操作码一起存放在代码段中,但操作数一般是在数据段中,因而这种寻址方式是以DS的内容为基准。,MOV AL,DS:2000H(MOV AL,2000H),15,第三章:8086/8088的指令系统寻址方式,直接寻址方式(Direct Addressing)若DS=4000H,则此指令式将数据段中物理地址为42000H 单元的内容传送AL寄存器。例:MOV AL,2000H;DS*10H+2000H送 AL;MOV AX,2000H;DS*10H+2000H送AL,DS*10H+2000H+1送AH;MOV AL,ES:2000H;这里ES是段超越前缀,所以源操作数是在ES*10H+2000H的内存单元中。MOV 3000H,AL;目的操作数采用直接寻址,将AL送DS*10H+3000H的内存单元。,16,第三章:8086/8088的指令系统寻址方式,8086/8088指令系统中有哪些寻址方式?立即寻址方式(Immediate Addressing)寄存器寻址方式(Register Addressing)直接寻址方式(Direct Addressing)寄存器间接寻址方式(Register Indirect Addressing)寄存器相对寻址方式(Register Relative Addressing)基址加变址寻址方式(Based Indexed Addressing)相对基址加变址寻址方式(Relative Based Indexed Addressing),17,第三章:8086/8088的指令系统寻址方式,寄存器间接寻址方式(Register Indirect Addressing)操作数的有效地址EA存放在基址寄存器(BX或BP)或变址寄存器(DI或SI)中。,MOV AX,BX,18,第三章:8086/8088的指令系统寻址方式,寄存器间接寻址方式(Register Indirect Addressing)MOV AL,BX;DS*10H+BX送AL设DS=3000H,BX=2000H,(32000H)=45H,则执行该指令后,AL=45H。MOV AL,BP;SS*10H+BP送AL设 DS=2000H,SS=1000H,BP=0100H,(10100H)=3BH,(20100H)=4CH。执行这条指令后,AL=3BH。MOV AX,BX;DS*10H+BX送AL,DS*10H+BX+1送AH,19,第三章:8086/8088的指令系统寻址方式,8086/8088指令系统中有哪些寻址方式?立即寻址方式(Immediate Addressing)寄存器寻址方式(Register Addressing)直接寻址方式(Direct Addressing)寄存器间接寻址方式(Register Indirect Addressing)寄存器相对寻址方式(Register Relative Addressing)基址加变址寻址方式(Based Indexed Addressing)相对基址加变址寻址方式(Relative Based Indexed Addressing),20,第三章:8086/8088的指令系统寻址方式,寄存器相对寻址方式(Register Relative Addressing)操作数的有效地址EA是8位或16位的位移量与基址寄存器BX或基址指示器BP或某个变址寄存器(DI或SI)之和。,MOV Al,BX+5,21,第三章:8086/8088的指令系统寻址方式,寄存器相对寻址方式(Register Relative Addressing)MOV AL,5BXMOV AL,BX+5COUNT EQU 5 MOV AL,COUNTBX以上三个例子是等价的,它执行的操作是:DS*10H+BX+5送AL。这里,5称为位移量(displacement),它可以是8位或16位的二进制数。,22,第三章:8086/8088的指令系统寻址方式,8086/8088指令系统中有哪些寻址方式?立即寻址方式(Immediate Addressing)寄存器寻址方式(Register Addressing)直接寻址方式(Direct Addressing)寄存器间接寻址方式(Register Indirect Addressing)寄存器相对寻址方式(Register Relative Addressing)基址加变址寻址方式(Based Indexed Addressing)相对基址加变址寻址方式(Relative Based Indexed Addressing),23,第三章:8086/8088的指令系统寻址方式,基址加变址寻址方式(Based Indexed Addressing)有效地址EA是由基址寄存器BX(或基址指示器BP)的内容与变址寄存器(DI或SI)的内容之和。,MOV AX,BX+SI,24,第三章:8086/8088的指令系统寻址方式,8086/8088指令系统中有哪些寻址方式?立即寻址方式(Immediate Addressing)寄存器寻址方式(Register Addressing)直接寻址方式(Direct Addressing)寄存器间接寻址方式(Register Indirect Addressing)寄存器相对寻址方式(Register Relative Addressing)基址加变址寻址方式(Based Indexed Addressing)相对基址加变址寻址方式(Relative Based Indexed Addressing),25,第三章:8086/8088的指令系统寻址方式,相对基址加变址寻址方式(Relative Based Indexed Addressing)操作数EA的有效地址是一个基址寄存器和一个变址寄存器的内容和8位或16位位移量之和。例如:MOV AX,COUNTBXSI MOV AX,COUNTBX+SI MOV AX,BX+SI+COUNT以上三者等价若(DS)=3000H,(BX)=2000H,(SI)=1000H,COUNT=0250H,则物理地址=16d*(DS)+(BX)+(SI)+COUNT=30000+2000+1000+0250=33250H,26,第三章:8086/8088的指令系统寻址方式,段寄存器使用的基本约定,27,第三章:8086/8088的指令系统,寻址方式指令系统,28,第三章:8086/8088的指令系统指令系统,8086/8088指令系统可分为以下六个功能组数据传送(Data Transter)算术运算(Arithmetic)逻辑运算(Logic)串操作(String Menipulation)程序控制(Program Control)处理器控制(Processor Control),29,第三章:8086/8088的指令系统指令系统,8086/8088指令系统可分为以下六个功能组数据传送(Data Transter)算术运算(Arithmetic)逻辑运算(Logic)串操作(String Menipulation)程序控制(Program Control)处理器控制(Processor Control),30,第三章:8086/8088的指令系统指令系统,数据传送指令通用数据传送指令(MOV、PUSH、POP、XCHG)地址传送指令(LEA、LDS、LES)标志寄存器传送指令(LAHF、SAHF、PUSHF、POPF)累加器专用传送指令(IN、OUT、XLAT)数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。,31,第三章:8086/8088的指令系统指令系统,数据传送指令通用数据传送指令(MOV、PUSH、POP、XCHG)地址传送指令(LEA、LDS、LES)标志寄存器传送指令(LAHF、SAHF、PUSHF、POPF)累加器专用传送指令(IN、OUT、XLAT)数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。,32,第三章:8086/8088的指令系统指令系统,数据传送指令通用数据传送指令1.MOV(Move)传送格式为:MOV DST,SRC(DST:目的操作数;SRC:源操作数)执行操作:(DST)(SRC)其中:DST可以是通用寄存器、段寄存器、存储器操作数;SRC可以是通用寄存器、段寄存器、存储器操作数、立即数。,33,第三章:8086/8088的指令系统指令系统,数据传送指令通用数据传送指令对于MOV 指令应注意几个问题:存储器传送指令中,不允许对IP进行操作,CS不能作为目的操作数;两个操作数中,除立即寻址之外必须有一个为寄存器寻址方式,即两个存储器操作数之间不允许直接进行信息传送;如我们需要把地址(即段内的地址偏移量)为AREA1的存储单元的内容,传送至同一段内的地址为AREA2的存储单元中去,MOV指令不能直接完成这样的传送,但我们可以CPU内部寄存器为桥梁来完成这样的传送:MOV AL,AREA1 MOV AREA2,AL 两个段寄存器之间不能直接传送信息,也不允许用立即寻址方式为段寄存器赋初值;如:MOVAX,0 MOVDS,AX 目的操作数,不能用立即寻址方式。,34,第三章:8086/8088的指令系统指令系统,数据传送指令通用数据传送指令2.PUSH(Push onto the stack)进栈指令格式为:PUSH SRC执行操作:(SP)(SP)-2(SP)+1,(SP)(SRC)功能:将数据压入堆栈 注意:源操作数可以是CPU内部的16位通用寄存器、段寄存器(CS除外)和内存操作数(所有寻址方式)。入栈操作对象必须是16位数,不能是8位数。例如:MOV AX,0543HPUSH AX,35,第三章:8086/8088的指令系统指令系统,数据传送指令通用数据传送指令3.POP(Pop from the stack)出栈指令格式为:POP DST执行操作:(DST)(SP)+1,(SP)(SP)(SP)+2功能:将数据弹出堆栈 注意:对指令执行的要求同入栈指令。例如:POP DXPOP BXPOP DS,36,第三章:8086/8088的指令系统指令系统,数据传送指令通用数据传送指令4.XCHG(Exchange)交换指令格式为:XCHG OPR1,OPR2执行操作:(OPR1)(OPR2)功能:完成数据交换 注意:交换指令可把一个字节或一个字的源操作数与目的操作数相交换。交换能在通用寄存器之间、通用寄存器与存储器之间进行。但段寄存器和立即数不能作为一个操作数。例如:XCHG AL,CLXCHG AX,DIXCHG BX,SIXCHG AX,BUFFERXCHG DATASI,DH,XCHG AX,BX;AX BX,37,第三章:8086/8088的指令系统指令系统,数据传送指令通用数据传送指令(MOV、PUSH、POP、XCHG)地址传送指令(LEA、LDS、LES)标志寄存器传送指令(LAHF、SAHF、PUSHF、POPF)累加器专用传送指令(IN、OUT、XLAT)数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。,38,第三章:8086/8088的指令系统指令系统,数据传送指令地址传送指令1.LEA(Load Effective Address)有效地址传送指令格式为:LEA OPRD1,OPRD2 功能:把源操作数OPRD2的地址偏移量传送至目的操作数OPRD1。注意:源操作数必须是一个内存操作数目的操作数必须是一个16位的通用寄存器。这条指令通常用来建立串操作指令所须的寄存器指针。例如:LEA BX,DI,39,第三章:8086/8088的指令系统指令系统,数据传送指令地址传送指令2.LDS(Load Pointer Into DS)取地址指针指令格式为:LDS OPRD1,OPRD2 功能:完成一个地址指针的传送。地址指针包括段地址部分和偏移量部分。指令将段地址送入DS,偏移量部分送入一个16位的指针寄存器或变址寄存器。注意:源操作数是一个内存操作数,目的操作数是一个通用寄存器/变址寄存器。例如:LDS BX,TABLESI,40,第三章:8086/8088的指令系统指令系统,数据传送指令地址传送指令3.LES(Load Pointer Into ES)取地址指针指令格式为:LES OPRD1,OPRD2 功能:这条指令除将地址指针的段地址部分送入ES外,与LDS类似。例如:LES BX,TABLESI,41,第三章:8086/8088的指令系统指令系统,数据传送指令通用数据传送指令(MOV、PUSH、POP、XCHG)地址传送指令(LEA、LDS、LES)标志寄存器传送指令(LAHF、SAHF、PUSHF、POPF)累加器专用传送指令(IN、OUT、XLAT)数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。,42,第三章:8086/8088的指令系统指令系统,数据传送指令标志寄存器传送指令LAHF(LOAD AH WITH FLAG)功能:将标志寄存器中的SF、ZF、AF、PF和CF(即低8位)传送至AH寄存器,空位没有定义。SAHF(STORE AH WITH FLAG)功能:将寄存器AH的指定位,送至标志寄存器的SF、ZF、AF、PF和CF位(即低8位)。根据AH的内容,影响上述标志位,对OF、DF和IF无影响。PUSHF(PUSH FLAG)功能:将标志寄存器压入堆栈顶部,同时修改堆栈指针,不影响标志位。POPF(POP FLAG)功能:堆栈顶部的一个字,传送到标志寄存器,同时修改堆栈指针,影响标志位。,43,第三章:8086/8088的指令系统指令系统,数据传送指令通用数据传送指令(MOV、PUSH、POP、XCHG)地址传送指令(LEA、LDS、LES)标志寄存器传送指令(LAHF、SAHF、PUSHF、POPF)累加器专用传送指令(IN、OUT、XLAT)数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。,44,第三章:8086/8088的指令系统指令系统,数据传送指令累加器专用传送指令这组指令只使用AX或AL传送信息IN(Input)输入指令一般格式 IN AL,n;B ALnIN AX,n;W AXn+1nIN AL,DX;B ALDXIN AX,DX;W AXDX+1DX功能:从I/O端口输入数据至AL或AX。注意:输入指令允许把一个字节或一个字由一个输入端口传送到AL或AX中。若端口地址超过255时,则必须用DX保存端口地址,这样用DX作端口寻址最多可寻找64K个端口。,45,第三章:8086/8088的指令系统指令系统,数据传送指令累加器专用传送指令OUT(Output)输入指令一般格式 OUT n,AL;B AL nOUT n,AX;W AX n+1nOUT DX,AL;B AL DXOUT DX,AX;W AX DX+1DX功能:将AL或AX的内容输出至I/O端口。注意:该指令将AL或AX中的内容传送到一个输出端口。端口寻址方式与IN指令相同。,46,第三章:8086/8088的指令系统指令系统,数据传送指令累加器专用传送指令XLAT(Translate)换码(查表)指令一般格式 XLAT;AL=(DS)16(BX)+(AL)功能:完成一个字节的查表转换。注意:寄存器AL的内容作为一个256字节的表的下标;表的基地址在BX中;转换后的结果存放在AL中。,47,第三章:8086/8088的指令系统指令系统,8086/8088指令系统可分为以下六个功能组数据传送(Data Transter)算术运算(Arithmetic)逻辑运算(Logic)串操作(String Menipulation)程序控制(Program Control)处理器控制(Processor Control),48,第三章:8086/8088的指令系统指令系统,算术运算指令加法指令(ADD、ADC、INC)减法指令(SUB、SBB、DEC、NEG、CMP)乘法指令(MUL、IMUL)除法指令(DIV、IDIV、CBW、CWD)十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时8086也提供了各种校正操作,故可以进行十进制算术运算。,49,第三章:8086/8088的指令系统指令系统,算术运算指令加法指令(ADD、ADC、INC)减法指令(SUB、SBB、DEC、NEG、CMP)乘法指令(MUL、IMUL)除法指令(DIV、IDIV、CBW、CWD)十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时8086也提供了各种校正操作,故可以进行十进制算术运算。,50,第三章:8086/8088的指令系统指令系统,算术运算指令加法指令ADD(add)加法指令一般格式 ADD DST,SRC;(DST)(SRC)+(DST)功能:完成两个操作数相加,结果送至目的操作数DST。目的操作数可以是累加器,任一通用寄存器以及存储器操作数。ADC(add with carry)带进位的加法指令一般格式 ADC DST,SRC;(DST)(SRC)+(DST)+CF 功能:这条指令与上条指令类似,只是在两个操作数相加时,要把进位标志CF的现行值加上去,结果送至目的操作数。本指令主要用于多字节操作数相加。INC(increment)加一指令一般格式 INC OPR;(OPR)(OPR)+1功能:完成对指定的操作数OPR加1,然后返回此操作数。此指令主要用于在循环程序中修改地址指针和循环次数等。,51,第三章:8086/8088的指令系统指令系统,算术运算指令加法指令ADD AL,30;累加器与立即数相加ADD BX,3000H;通用寄存器与存储单元内容相加ADD DI,CX;通用寄存器之间ADD DX,DATABX+SI;通用寄存器与存储单元内容相加ADD BETASI,DX;存储器操作数与寄存器相加,52,第三章:8086/8088的指令系统指令系统,算术运算指令加法指令MOV AX,FIRSTADD AX,SECOND;进行字运算MOV THIRD,AXMOV AX,FIRST+2ADC AX,SECOND+2MOV THIRD+2,AX,53,第三章:8086/8088的指令系统指令系统,算术运算指令加法指令(ADD、ADC、INC)减法指令(SUB、SBB、DEC、NEG、CMP)乘法指令(MUL、IMUL)除法指令(DIV、IDIV、CBW、CWD)十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时8086也提供了各种校正操作,故可以进行十进制算术运算。,54,第三章:8086/8088的指令系统指令系统,算术运算指令减法指令SUB(subtract)减法指令一般格式 SUB DST,SRC;(DST)(DST)-(SRC)功能:完成两个操作数相减,也即从DST中减去SRC,结果放在SRC中。SBB(subtract with borrow)带借位的减法指令一般格式 SBB DST,SRC;(DST)(DST)-(SRC)-CF 功能:这条指令与SUB类似,只是在两个操作数相减时,还要减去借位标志CF的现行值。本指令对标志位AF、CF、OF、PF、SF和ZF都有影响。本指令主要用于多字节操作数相减。DEC(decrement)减一指令一般格式 DEC OPR;(OPR)(OPR)-1功能:完成对指定的操作数OPR减1,然后返回此操作数。,55,第三章:8086/8088的指令系统指令系统,算术运算指令减法指令NEG(negate)求补指令一般格式 NEG OPR;(OPR)(OPR)功能:对操作数取补,即用零减去操作数,再把结果送回操作数。CMP(compare)比较指令一般格式 CMP OPR1,OPR2;(OPR1)-(OPR2)功能:比较指令完成两个操作数相减,使结果反映在标志位上,但并不送回结果(即不带回送的减法)。,56,第三章:8086/8088的指令系统指令系统,算术运算指令减法指令SUB CX,BXSUB BP,CL DEC SIDEC CLNEG ALNEG MULRECMP AL,100CMP DX,DICMP CX,COUHTBPCMP COUNTSI,AX,57,第三章:8086/8088的指令系统指令系统,算术运算指令加法指令(ADD、ADC、INC)减法指令(SUB、SBB、DEC、NEG、CMP)乘法指令(MUL、IMUL)除法指令(DIV、IDIV、CBW、CWD)十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时8086也提供了各种校正操作,故可以进行十进制算术运算。,58,第三章:8086/8088的指令系统指令系统,算术运算指令乘法指令MUL(unsigned multiple)无符号数乘法指令一般格式 MUL SRC 字节操作数(AX)(AL)*SRC 字操作数(DX,AX)(AX)*SRC功能:完成字节与字节相乘、字与字相乘,且默认的操作数放在AL或AX中,而源操作数由指令给出。8位数相乘,结果为16位数,放在AX中;16位数相乘结果为32位数,高16位放在DX,低16位放在AX中。此时,若AH/DX=0,则CF=OF=0,否则CF=OF=1。IMUL(signed multiple)带符号数乘法指令一般格式 IMUL SRC功能:这是一条带符号数的乘法指令,同MUL一样可以进行字节与字节、字和字的乘法运算。结果放在AX或DX,AX中。当结果的高半部分不是结果的低半部分的符号扩展时,标志位CF=OF=0,否则CF=OF=1。,59,第三章:8086/8088的指令系统指令系统,算术运算指令乘法指令MOVAL,FIRSTMUL SECOND;结果为AX=FIRST*SECONDMOV AX,THIRDMUL AX;结果DX:AX=THIRD*THIRDMOV BX,2000HMUL BX,60,第三章:8086/8088的指令系统指令系统,算术运算指令乘法指令例:若(AL)=0B4H,(BL)=11H,求执行指令IMUL BL 和MUL BL后的结果。解:(AL)=0B4H=180D(无符号数)=-76D(带符号数),(BL)=11H=17D(无符号数)=17D(带符号数),执行IMUL BL的结果为(AX)=0FAF4H=-1292DCF=OF=1 执行MUL BL的结果为(AX)=0BF4H=3060DCF=OF=1,61,第三章:8086/8088的指令系统指令系统,算术运算指令加法指令(ADD、ADC、INC)减法指令(SUB、SBB、DEC、NEG、CMP)乘法指令(MUL、IMUL)除法指令(DIV、IDIV、CBW、CWD)十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时8086也提供了各种校正操作,故可以进行十进制算术运算。,62,第三章:8086/8088的指令系统指令系统,算术运算指令除法指令DIV(unsigned divide)无符号数除法指令一般格式 DIV SRC 字节操作数(AL)(AX)/SRC的商(AH)(AX)/SRC的余数 字操作数(AX)(DX,AX)/SRC的商(DX)(DX,AX)/SRC的余数IDIV(signed divide)带符号数除法指令一般格式 IDIV SRC功能:该指令执行过程同DIV指令,但IDIV指令认为操作数的最高位为符号位,除法运算的结果商的最高位也为符号位。在除法指令中,在字节运算时被除数在AX中;运算结果商在AL中,余数在AH中。字运算时被除数为DX:AX构成的32位数,运算结果商在AX中,余数在DX中。CBW(convert byte to word)字节转换为字指令功能:将AL的内容符号扩展到AH。若(AL)最高有效位为0,即若(AL)的D7=0,则(AH)=00;若(AL)最高有效位为1,则(AH)=0FFH。CWD(convert word to double word)字转换为双字指令功能:将AX的内容符号扩展到DX。若(AX)最高有效位为0,即若(AX)的D15=0,则(DX)=00;若(AX)最高有效位为1,则(DX)=0FFH。,63,第三章:8086/8088的指令系统指令系统,算术运算指令除法指令若AX=2000H,DX=0200H,BX=1000H,则 DIV BX执行后,AX=2002H,DX=0000。,64,第三章:8086/8088的指令系统指令系统,算术运算指令加法指令(ADD、ADC、INC)减法指令(SUB、SBB、DEC、NEG、CMP)乘法指令(MUL、IMUL)除法指令(DIV、IDIV、CBW、CWD)十进制调整指令(DAA、DAS、AAA、AAS、AAM、AAD)8086提供加、减、乘、除四种基本算术操作。这些操作都可用于字节或字的运算,也可以用于带符号数与无符号数的运算。带符号数用补码表示。同时8086也提供了各种校正操作,故可以进行十进制算术运算。,65,第三章:8086/8088的指令系统指令系统,算术运算指令十进制调整指令 计算机中的算术运算,都是针对二进制数的运算,而人们在日常生活中习惯使用十进制。为此在8086/8088系统中,针对十进制算术运算有一类十进制调整指令。在计算机中人们用BCD码表示十进制数,对BCD码计算机中有两种表示方法:一类为压缩BCD码,即规定每个字节表示两位BCD数;另一类称为非压缩BCD码,即用一个字节表示一位BCD数,在这字节的高四位用0填充。例如,十进制数25D,表示为压缩BCD数时为:25H;表示为非压缩BCD数时为:0205H,用两字节表示。,66,第三章:8086/8088的指令系统指令系统,算术运算指令十进制调整指令【例如】ADD AL,BL DAA若执行前:AL=28H,BL=68H,则执行ADD后:AL=90H,AF=1;再执行DAA指令后,正确的结果为:AL=96H,CF=0,AF=1。【例如】MUL BL AAM若执行前:AL=07,BL=09,则执行MUL BL 后,AX=003FH,再执行AAM指令后,正确的结果为:AH=06H,AL=03H。,67,第三章:8086/8088的指令系统指令系统,8086/8088指令系统可分为以下六个功能组数据传送(Data Transter)算术运算(Arithmetic)逻辑运算(Logic)串操作(String Menipulation)程序控制(Program Control)处理器控制(Processor Control),68,第三章:8086/8088的指令系统指令系统,逻辑运算指令逻辑运算指令(ADD、OR、NOT、XOR、TEST)移位指令(SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR),69,第三章:8086/8088的指令系统指令系统,逻辑运算指令逻辑运算指令(ADD、OR、NOT、XOR、TEST)移位指令(SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR),70,第三章:8086/8088的指令系统指令系统,逻辑运算指令逻辑运算指令AND(and)逻辑与指令一般格式 AND DST,SRC;(DST)(DST)(SRC)OR(or)逻辑或指令一般格式 OR DST,SRC;(DST)(DST)(SRC)NOT(not)逻辑非指令一般格式 NOT OPR;(DST)(DST)XOR(exclusive or)逻辑异或指令一般格式 XOR DST,SRC;(DST)(DST)(SRC)TEST(test)测试指令一般格式 TEST OPR1,OPR2;(OPR1)(OPR2),71,第三章:8086/8088的指令系统指令系统,逻辑运算指令逻辑运算指令例如:要求屏蔽0、1位,可用AND指令并设置常数0FCH。MOVAL,0BFHANDAL,0FCH例如:要测试操作数的某位是否为0,可用TEST指令,同样把TEST指令的源操作数设置成为一个立即数,其中需要测试的位应设为1。MOVAL,40HTESTAL,0AFH,72,第三章:8086/8088的指令系统指令系统,逻辑运算指令逻辑运算指令(ADD、OR、NOT、XOR、TEST)移位指令(SHL、SAL、SHR、SAR、ROL、ROR、RCL、RCR),73,第三章:8086/8088的指令系统指令系统,逻辑运算指令移位指令SHL(shift logical left)逻辑左移指令一般格式 SHL OPR,CNTSAL(shift arithmetic left)算术左移指令一般格式 SAL OPR,CNTSHR(shift logical right)逻辑右移指令一般格式 SHR OPR,CNTSAR(shift arithmetic right)算术右移指令一般格式 SAR OPR,CNTROL(rotate left)循环左移指令一般格式 ROL OPR,CNTROR(rotate right)循环右移指令一般格式 ROR OPR,CNTRCL(rotate left through carry)带进位循环左移指令一般格式 RCL OPR,CNTRCR(rotate right through carry)带进位循环右移指令一般格式 RCR OPR

    注意事项

    本文(微型计算机原理及其应用第三章80868088的指令系统.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开