欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    微机原理与接口技术指令系统幻灯片.ppt

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

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

    微机原理与接口技术指令系统幻灯片.ppt

    微机原理与接口技术指令系统第1页,共108页,编辑于2022年,星期六2023/1/71第一节第一节指令的基本结构和执行时间指令的基本结构和执行时间n指令指令n指令系统指令系统n80868088CPU的指令系统共包含的指令系统共包含92种基本指令,种基本指令,按照功能可将它们分为按照功能可将它们分为6大类:大类:数据传送指令数据传送指令算术运算指令算术运算指令逻辑运算和移位指令逻辑运算和移位指令串操作指令串操作指令控制转移指令控制转移指令处理器控制指令处理器控制指令第2页,共108页,编辑于2022年,星期六2023/1/72 n8086指令的一般格式如下:指令的一般格式如下:操作码操作码操作数操作数,操作数操作数n操作数主要分为操作数主要分为3类:类:立即数操作数、立即数操作数、寄存器操作数寄存器操作数 存储器操作数。存储器操作数。第3页,共108页,编辑于2022年,星期六2023/1/73 n表表3-2隐含及允许超越的段寄存器隐含及允许超越的段寄存器存储器操作的类型存储器操作的类型隐含的段寄存器隐含的段寄存器允许超越的段寄存器允许超越的段寄存器偏移地址偏移地址取指令取指令CS无无IP堆栈操作堆栈操作SS无无SP通用数据读写通用数据读写DSCS,ES,SS有效地址有效地址源数据串源数据串DSCS,ES,SSSI目标数据串目标数据串ES无无DI用用BP作为基址寄存器作为基址寄存器SSCS,DS,ES有效地址有效地址第4页,共108页,编辑于2022年,星期六2023/1/74 n指令的执行时间指令的执行时间一条指令的执行时间包括取指令、取操作数、一条指令的执行时间包括取指令、取操作数、执行指令及传送结果几部分,单位用时钟执行指令及传送结果几部分,单位用时钟周期表示周期表示n寄存器操作数的指令执行速度最快,立即寄存器操作数的指令执行速度最快,立即数操作数次之,存储器操作数指令的执行数操作数次之,存储器操作数指令的执行速度最慢速度最慢第5页,共108页,编辑于2022年,星期六2023/1/75第二节第二节8086的寻址方式的寻址方式一、立即寻址一、立即寻址(Immediate Addressing)n主要用于给寄存器主要用于给寄存器或存储单元赋初值或存储单元赋初值nMOVAX,3508H第6页,共108页,编辑于2022年,星期六2023/1/76 二、直接寻址二、直接寻址(DirectAddressing)n直接寻址指令在指令的操作码后面直接直接寻址指令在指令的操作码后面直接给出操作数的给出操作数的16位偏移地址。位偏移地址。n此偏移地址也称为有效地址此偏移地址也称为有效地址EA(EffectiveAddress),与指令的操与指令的操作码一起,存放在内存的代码段作码一起,存放在内存的代码段.n低低8位存放在低地址单元,高位存放在低地址单元,高8位存放在位存放在高地址单元。高地址单元。第7页,共108页,编辑于2022年,星期六2023/1/77 直接寻址:nMOV AX,3200H如果DS=5000H,则所寻找的操作数的物理地址:5000H10H+3200H=50000H+3200H =53200H 第8页,共108页,编辑于2022年,星期六2023/1/78 n段超越段超越:MOVBX,ES:2100H第9页,共108页,编辑于2022年,星期六2023/1/79 三、寄存器寻址三、寄存器寻址(RegisterAddressing)n操作数为操作数为CPU的内部寄存器的内部寄存器n指令在执行过程中不必通过指令在执行过程中不必通过访问内存而取得操作数,因访问内存而取得操作数,因此执行速度很快。此执行速度很快。nMOV DS,AX n 第10页,共108页,编辑于2022年,星期六2023/1/710 四、寄存器间接寻址四、寄存器间接寻址(RegisterIndirectAddressing)nMOVAX,DIn指令中的指令中的16位寄存器的内容不是操作数,而是操作数位寄存器的内容不是操作数,而是操作数的偏移地址,操作数本身则在存储器中。的偏移地址,操作数本身则在存储器中。n可用的寄存器有四个,分别是:可用的寄存器有四个,分别是:SI、DI、BX和和BP,但如果使用不同的间址寄存器,则相应的段但如果使用不同的间址寄存器,则相应的段寄存器有所不同寄存器有所不同第11页,共108页,编辑于2022年,星期六2023/1/711 n1选择SI、DI、BX作为间址寄存器n操作数在数据段(没有使用段超越时)n MOV AX,DI 若已知(DS)=5000H,(DI)=1600H,则操作数的物理地址为:5000H10H+1600H=51600H 执行的结果为(AX)=789AH 第12页,共108页,编辑于2022年,星期六2023/1/712 2选择BP作为间址寄存器 n操作数在堆栈段(没有使用段超越时)n MOV BP,AX 若已知(SS)=6000H,(BP)=1500H,则操作数的物理地址为:6000H10H+1500H=61500H 若已知(AX)=5566H,则指令的执行结果为:66H送到61500H内存单元,55H送到61501H内存单元第13页,共108页,编辑于2022年,星期六2023/1/713 无无论论用用SI、DI、BX或或BP作作为为间间址址寄寄存存器器,都允许段超越。都允许段超越。nMOVES:DI,AXnMOVDX,DS:BP第14页,共108页,编辑于2022年,星期六2023/1/714 n五、变址寻址五、变址寻址(IndexedAddressing)n以指定的寄存器内容,加上以指定的寄存器内容,加上指令中给出的指令中给出的8位或位或16位位位位移量(必须要以一个段寄移量(必须要以一个段寄存器作为基地址),作为存器作为基地址),作为操作数的地址。操作数的地址。n作为变址寻址的寄存器可以作为变址寻址的寄存器可以是是SI、DI、BX、BP四个四个寄存器中的任一个寄存器中的任一个n若用若用SI、DI和和BX作为变址作为变址寄存器,操作数在数据段,寄存器,操作数在数据段,即段地址在即段地址在DS寄存器;若寄存器;若用用BP变址,则操作数在堆变址,则操作数在堆栈段,即段地址在栈段,即段地址在SS寄存寄存器器nMOVAX,2000HSI若若(SI)=1200H,(DS)=1500H,则操作数则操作数的地址为的地址为18200H 第15页,共108页,编辑于2022年,星期六2023/1/715变址寻址方式变址寻址方式 第16页,共108页,编辑于2022年,星期六2023/1/716 六、基址变址寻址六、基址变址寻址(BasedIndexedAddressing)n将将BX和和BP看作基址寄存器,将看作基址寄存器,将SI和和DI看作变址寄看作变址寄存器。存器。n基址加变址的寻址方式基址加变址的寻址方式:把一个基址寄存器(把一个基址寄存器(BX或或BP)的内容加上一个变址寄存器(的内容加上一个变址寄存器(SI或或DI)的内容,的内容,再加上指令中指定的再加上指令中指定的8位或位或16位位移量(必须要以一位位移量(必须要以一个段寄存器作为地址基址),作为操作数的地址个段寄存器作为地址基址),作为操作数的地址nMOVAX,1050HBXSI第17页,共108页,编辑于2022年,星期六2023/1/717 nMOVAX,1050HBXSI若若(BX)=2000H,(SI)=1600H,(DS)=1200H,指指令中给出的偏移量为令中给出的偏移量为1050H,则源操作数的物理则源操作数的物理地址为地址为16650H若用若用BX作为基址寄存器,则段寄存器为作为基址寄存器,则段寄存器为DS,操作操作数在数据段中;数在数据段中;若用若用BP作为基址寄存器,则段寄存器为作为基址寄存器,则段寄存器为SS,操作数操作数在堆栈段中。在堆栈段中。第18页,共108页,编辑于2022年,星期六2023/1/718基址加变址的寻址方式基址加变址的寻址方式第19页,共108页,编辑于2022年,星期六2023/1/719第三节第三节8086的指令系统的指令系统n 数据传送数据传送(Datatransfer)n算术运算算术运算(Arithmetic)n逻辑运算和移位逻辑运算和移位(Logic)n串操作串操作(Stringmanipulation)n控制转移控制转移(Controltransfer)n处理器控制处理器控制(Processorcontrol)第20页,共108页,编辑于2022年,星期六2023/1/720 nOPRD泛指各种类型的操作数泛指各种类型的操作数nmem存储器操作数存储器操作数nacc累加器操作数累加器操作数ndest目的操作数目的操作数nsrc源操作数源操作数ndisp8位或位或16位偏移量,可用符号地址表示位偏移量,可用符号地址表示nDATA8位或位或16位立即数位立即数nport输入输出端口,可用数字或表达式表示输入输出端口,可用数字或表达式表示n()表示寄存器的内容表示寄存器的内容n表示存储单元的内容或偏移地址表示存储单元的内容或偏移地址第21页,共108页,编辑于2022年,星期六2023/1/721一、数据传送类指令一、数据传送类指令 按功能可分为以下按功能可分为以下4小类:小类:n通用数据传送指令通用数据传送指令n输入输出指令输入输出指令n目标地址传送指令目标地址传送指令n标志传送指令标志传送指令第22页,共108页,编辑于2022年,星期六2023/1/722 1.通通用用数数据据传传送送指指令令(GeneralPurposeTransfer)n一般传送指令一般传送指令MOVn堆栈操作指令堆栈操作指令PUSH和和POPn交换指令交换指令XCHGn查表转移指令查表转移指令XLATn字位扩展指令字位扩展指令第23页,共108页,编辑于2022年,星期六2023/1/723 一般传送指令一般传送指令MOV(Movement)MOVdest,src;(dest)(src)n既既可可传传送送字字节节操操作作数数(8位位),也也可可传传送送字操作数(字操作数(16位);位);n可使用本章讨论过的各种寻址方式;可使用本章讨论过的各种寻址方式;n可实现以下各种传送:可实现以下各种传送:第24页,共108页,编辑于2022年,星期六2023/1/724MOV可实现的各种传送可实现的各种传送:n寄存器与寄存器之间的传送寄存器与寄存器之间的传送:MOVAL,CLn寄存器与段寄存器之间的传送寄存器与段寄存器之间的传送:MOVDS,AXn寄存器与存储器之间的传送寄存器与存储器之间的传送:MOV3000H,AXn立即数到寄存器的传送立即数到寄存器的传送:MOVAL,20Hn立即数到存储器的传送立即数到存储器的传送:MOVBYTEPTRBP+SI,20Hn存储器与段寄存器之间的传送存储器与段寄存器之间的传送:MOVDS,2000H第25页,共108页,编辑于2022年,星期六2023/1/725使用使用MOV指令完成数据传送时需注意几点指令完成数据传送时需注意几点:nMOV指令的两个操作数的类型必须相同指令的两个操作数的类型必须相同MOVAX,DL n不能用一条不能用一条MOV指令完成两个存储器单元之间的数指令完成两个存储器单元之间的数据传送据传送MOVBX,SI n不能用立即数直接给段寄存器赋值不能用立即数直接给段寄存器赋值MOVDS,DATA n不能在段寄存器之间进行直接数据传送不能在段寄存器之间进行直接数据传送MOVDS,ES n通常不要求用户用通常不要求用户用MOV指令修改代码段寄存器指令修改代码段寄存器CS和指令指针寄存器和指令指针寄存器IP的内容,但的内容,但CS可以作为源操可以作为源操作数作数第26页,共108页,编辑于2022年,星期六2023/1/726 n堆栈操作指令堆栈操作指令PUSH和和POP(Pushwordontostack,Popwordoffstack)n堆栈是内存中一个特定的区域,用以存放堆栈是内存中一个特定的区域,用以存放寄存器或存储器中暂时不用但又必须保存寄存器或存储器中暂时不用但又必须保存的数据。的数据。第27页,共108页,编辑于2022年,星期六2023/1/727堆栈操作需要遵循以下原则:n 堆栈的存取每次必须是一个字堆栈的存取每次必须是一个字(16位位);n向向堆堆栈栈中中存存放放数数据据时时,总总是是从从高高地地址址向向低低地地址址方方向向增长,从堆栈取数据时正好相反;增长,从堆栈取数据时正好相反;n堆堆栈栈指指令令中中的的操操作作数数只只能能是是寄寄存存器器或或存存储储器器操操作作数数,而不能是立即数;而不能是立即数;n堆堆栈栈段段在在内内存存中中的的位位置置由由SS决决定定,堆堆栈栈指指针针SP总总是是指指向向栈栈顶顶,即即SP的的内内容容等等于于当当前前栈栈顶顶的的偏偏移移地地址址。在在压压入入操操作作数数之之前前,SP先先减减2。每每弹弹出出一一个个字字,SP加加2;n对对堆堆栈栈的的操操作作遵遵循循“后后进进先先出出(LIFO:LastInFirstOut)”的原则。最后压人堆栈的数据会最先被弹出。的原则。最后压人堆栈的数据会最先被弹出。第28页,共108页,编辑于2022年,星期六2023/1/728堆栈示意图堆栈示意图 n 第29页,共108页,编辑于2022年,星期六2023/1/729堆栈操作指令堆栈操作指令PUSH,POPPUSH src ;src的高8位(SP)-1;src的低8位(SP)-2;(SP)-2(SP)POP dest ;SPdest的低8位;SP+1dest的高8位;(SP)+2(SP)第30页,共108页,编辑于2022年,星期六2023/1/730 指指令令中中,操操作作数数src和和dest可可以以是是以以下下三三种类型:种类型:n寄寄存存器器(包包括括数数据据寄寄存存器器、地地址址寄寄存存器器和变址寄存器);和变址寄存器);n段段寄寄存存器器(CS除除外外。PUSHCS指指令令是是合法的;而合法的;而POPCS是非法的);是非法的);n存储器单元存储器单元第31页,共108页,编辑于2022年,星期六2023/1/731PUSHAX指令执行示意图指令执行示意图 n 第32页,共108页,编辑于2022年,星期六2023/1/732POPAX指令执行示意图指令执行示意图 n 第33页,共108页,编辑于2022年,星期六2023/1/733交换指令交换指令XCHG(Exchange)指令格式及操作:指令格式及操作:XCHGdest,src;(dest)(src)n源源操操作作数数和和目目标标操操作作数数均均可可以以是是寄寄存存器器或或存存储储器器,但但不不能能同同时时为为存存储储器器。即即可可以以在在寄寄存存器器与与寄寄存存器器之之间间、寄寄存存器器与与存存储储器器之之间间进进行行交交换换,但但不不能能在在存存储储器器与与存存储器之间进行交换。储器之间进行交换。n不不能能为为段段寄寄存存器器操操作作数数。即即段段寄寄存存器器的的内内容容不不能能参参加交换。加交换。n两两个个操操作作数数的的字字长长必必须须相相同同,可可以以是是字字节节交交换换,也也可以是字交换。可以是字交换。第34页,共108页,编辑于2022年,星期六2023/1/734查表转移指令查表转移指令XLAT(Translate)指令格式与操作:指令格式与操作:XLAT;(AL)(BX)+(AL)或或:XLATsrc_table(src_table表表示示要要查查找找的的表表的首地址)的首地址)可以根据表中元素的序号查出表中相应元素的内容可以根据表中元素的序号查出表中相应元素的内容n应预先将要查找的这类代码排成一个表存放在内存的某个区域中。应预先将要查找的这类代码排成一个表存放在内存的某个区域中。n将表的首地址(偏移地址)送将表的首地址(偏移地址)送BX寄存器,要查找的元素的序寄存器,要查找的元素的序号送号送AL,表中第一个元素的序号为表中第一个元素的序号为0,然后依次为,然后依次为1,2,3,。n执行执行XLAT指令后,标中指定序号的元素存于指令后,标中指定序号的元素存于AL第35页,共108页,编辑于2022年,星期六2023/1/735例:例:现要查出数值现要查出数值6对应的对应的ASCII码码LEABX,Hex_table;(BX)表的首地址表的首地址MOVAL,6;(AL)6XLAT;查表转换查表转换n结果为结果为(AL)=36H,为为6所所对应的对应的ASCII码。码。n 第36页,共108页,编辑于2022年,星期六2023/1/736字位扩展指令字位扩展指令 n操操作作数数扩扩展展的的规规则则是是:扩扩展展时时在在高高位位添添加加符符号号位位,即即将将符符号号位位扩扩展展到到整整个个高高8位位(或高或高16位位)。n例例如如,要要把把有有符符号号数数35H扩扩展展为为一一个个字字,则则结结果果为为0035H;而而如如果果要要扩扩展展的的数数是是81H,则结果为则结果为FF81H。第37页,共108页,编辑于2022年,星期六2023/1/737CBW(ConvertBytetoWord)CBW;若若(AL)80H,则则(AH)=00H;否则否则(AH)=FFH。CBW将将一一个个字字节节的的数数(8位位)扩扩展展为为一一个个字字长长的的数数(16位位)。指指令令中隐含了操作数中隐含了操作数AL和和AH。CBW指令不影响标志位。指令不影响标志位。例如,把字节例如,把字节9AH扩展为字的语句如下:扩展为字的语句如下:MOVAL,9AHCBW其结果为:其结果为:(AX)=FF9AH。第38页,共108页,编辑于2022年,星期六2023/1/738CWD(ConvertWordtoDoubleword)CWD;若若(AX)9或或AF=1,则则(AL)+06H(AL),并使并使AF=1;若若(AL)中高中高4位位9或或CF=1,则则(AL)+60H(AL),并使并使CF=1。第56页,共108页,编辑于2022年,星期六2023/1/756例例编程用编程用BCD数计算数计算4635?MOV AL,46H ;(AL)=46H ADD AL,35H ;(AL)=7BH DAA ;(AL)=81H第57页,共108页,编辑于2022年,星期六2023/1/757 非压缩非压缩BCD加法的十进制调整指令加法的十进制调整指令AAA(unpackedBCDASCIIAdjustforAddition)所所谓谓非非压压缩缩的的BCD码码,就就是是一一个个字字节节存存放放一一位位BCD码码(BCD码码存存放放在在字字节节的的低低4位位,高高4位位为为零零)。调调整整以以前前,先先用用指指令令ADD或或ADC进进行行8位位数数的的加加法法运运算算,相相加加结结果果放放在在AL中中,用用AAA指指令令调调整整后后,非非压压缩缩BCD码码的的低低位位在在AL寄寄存存器器,高高位位在在AH寄寄存存器。器。AAA指令的调整步骤为:指令的调整步骤为:若若(AL)中低中低4位位9或或AF=1,则则(AL)+6,(AH)+1,并使并使AF=1;屏蔽掉屏蔽掉(AL)中高中高4位,即位,即(AL)(AL)0FH;CFAF第58页,共108页,编辑于2022年,星期六2023/1/758例例用用BCD码计算码计算86?MOV AL,08H ;BCD码数8 MOV BL,06H ;BCD码数6 ADD AL,BL ;(AL)=08H+06H=0EH AAA ;(AL)=0EH+06H=04H(高4位清零);(AH)=1;(CF)=1第59页,共108页,编辑于2022年,星期六2023/1/759减法运算指令减法运算指令 n不带进位减法指令不带进位减法指令SUBn带进位减法指令带进位减法指令SBBn减减1指令指令DECn求补指令求补指令NEGn比较指令比较指令CMPn减法的减法的ASCII调整指令调整指令AASn减法十进制调整指令减法十进制调整指令DAS 第60页,共108页,编辑于2022年,星期六2023/1/760 不带进位减法指令SUB(Subtraction)SUB OPRD1,OPRD2 ;(OPRD1)(OPRD1)-(OPRD2)带进位减法指令SBB(Subtraction with Borrow)SBB OPRD1,OPRD2 ;(OPRD1)(OPRD1)-(OPRD2)-CF减1指令DEC(Decrement by 1)DEC OPRD ;(OPRD)(OPRD)-1第61页,共108页,编辑于2022年,星期六2023/1/761 DEC指令常用在循环程序中修改循环次数。指令常用在循环程序中修改循环次数。例如:例如:MOVCX,1000HNEXT:DECCXJNZNEXTHLT第62页,共108页,编辑于2022年,星期六2023/1/762 求补指令求补指令NEG(Negate)NEG OPRD ;(OPRD)0-(OPRD)求补指令对求补指令对6个操作数均有影响。个操作数均有影响。操作数的类型可以是寄存器或存储器;可以操作数的类型可以是寄存器或存储器;可以对对8位或位或16位数求补位数求补利用利用NEG指令可以得到负数的绝对值指令可以得到负数的绝对值第63页,共108页,编辑于2022年,星期六2023/1/763 比较指令比较指令CMP(Compare)CMPOPRD1,OPRD2;(OPRD1)-(OPRD2),结结 果果 不不 送送 回回OPRD1比比较较指指令令对对6个个状状态态标标志志位位SF、ZF、AF、PF、CF和和OF都有影响。都有影响。比较指令主要用来比较两个数的大小关系比较指令主要用来比较两个数的大小关系 第64页,共108页,编辑于2022年,星期六2023/1/764 n 压缩压缩BCD减法的十进制调整减法的十进制调整DAS(DecimalAdjustforSubtraction)n非压缩非压缩BCD减法的十进制调整减法的十进制调整AAS(unpackedBCDASCIIadjustforsubtraction)第65页,共108页,编辑于2022年,星期六2023/1/765乘法运算指令乘法运算指令n无符号数乘法指令无符号数乘法指令MULn有符号数乘法指令有符号数乘法指令IMULn乘法的十进制调整指令乘法的十进制调整指令AAM 第66页,共108页,编辑于2022年,星期六2023/1/766 无符号数乘法指令MUL(Multiplication unsigned)MULOPRD指令的操作为:指令的操作为:字节乘法:字节乘法:(AX)(OPRD)(AL)字乘法:字乘法:(DX:AX)(OPRD)(AX)源操作数源操作数OPRD可以是可以是8位或位或16位的寄存器或存储器。另一个操位的寄存器或存储器。另一个操作数隐含在累加器中(作数隐含在累加器中(8位乘法时在位乘法时在AL中;中;16位乘法时在位乘法时在AX中)中)。两个操作数均按无符号数处理,其取值范围为两个操作数均按无符号数处理,其取值范围为0255(字节)(字节),或,或065535(字)。(字)。乘法指令要求两个操作数必须等长,且不能是立即数乘法指令要求两个操作数必须等长,且不能是立即数第67页,共108页,编辑于2022年,星期六2023/1/767 n有符号数乘法指令IMUL(Integer Multiplication)操作数应满足带符号数的取值范围,即128127(字节)和3276832767(字)n乘法的十进制调整指令AAM(unpacked BCDASCII adjust for multiply)第68页,共108页,编辑于2022年,星期六2023/1/768除法运算指令除法运算指令 n无符号数除法指令无符号数除法指令DIVn带符号数除法指令带符号数除法指令IDIVn除法的十进制调整指令除法的十进制调整指令AAD 第69页,共108页,编辑于2022年,星期六2023/1/769 无符号数除法指令DIV(Division unsigned)DIV OPRD指指令令中中的的操操作作数数OPRD(除除数数)可可以以是是8位位或或16位位的的寄寄存存器器操操作作数数 或或 存存 储储 器器 操操 作作 数数。指指 令令 隐隐 含含 被被 除除 数数AX(16位位)或或DX:AX(32位)。位)。字节除法:字节除法:(AL)(AX)/(OPRD)(AH)(AX)%(OPRD)(%为取余数操作为取余数操作)字除法:字除法:(AX)(DX:AX)/(OPRD)(DX)(DX:AX)%(OPRD)(%为取余数操作为取余数操作)第70页,共108页,编辑于2022年,星期六2023/1/770 n带符号数除法指令IDIV(Integer Division)IDIV指令在格式和功能上都与指令在格式和功能上都与DIV指令类似,指令类似,只是要求操作数为有符号数只是要求操作数为有符号数n除法的十进制调整指令AAD(unpacked BCDASCII adjust for division)第71页,共108页,编辑于2022年,星期六2023/1/771逻辑运算和移位指令逻辑运算和移位指令 逻辑运算指令逻辑运算指令nAND(逻辑逻辑“与与”)nOR(逻辑逻辑“或或”)nNOT(逻辑逻辑“非非”)nXOR(逻辑逻辑“异或异或”)nTEST(测试测试)这些指令可对这些指令可对8位或位或16位的寄存器或存储器单元中的内位的寄存器或存储器单元中的内容进行按位操作容进行按位操作第72页,共108页,编辑于2022年,星期六2023/1/772 逻辑“与”指令AND(Logical and)AND OPRD1,OPRD2 ;(OPRD1)(OPRD1)(OPRD2)AND指令的主要用途是将目标操作数的某些位清零,而指令的主要用途是将目标操作数的某些位清零,而其他位保持不变其他位保持不变如果一个寄存器的内容与该寄存器本身相与(例如:如果一个寄存器的内容与该寄存器本身相与(例如:ANDAX,AX),),则寄存器原来的内容不会改变,则寄存器原来的内容不会改变,但将影响标志位但将影响标志位SF、ZF和和PF,并使并使CF=OF=0第73页,共108页,编辑于2022年,星期六2023/1/773 n逻辑“或”指令OR(Logical inclusive or)OR OPRD1,OPRD2 ;(OPRD1)(OPRD1)(OPRD2)OR指令的主要用途是将目标操作数的某些位指令的主要用途是将目标操作数的某些位置置1,而其他位保持不变,而其他位保持不变第74页,共108页,编辑于2022年,星期六2023/1/774 n逻辑“非”指令NOT(Logical not)NOT OPRDNOT指令将指定的操作数指令将指定的操作数OPRD按位求反,再送回到该按位求反,再送回到该操作数操作数n 逻辑“异或”指令XOR(Logical not)XOR OPRD1,OPRD2 ;(OPRD1)(OPRD1)(OPRD2)XOR指指令令的的一一个个用用途途是是将将寄寄存存器器清清零零,同同时时也也将将进进位位标标志志位位CF清零。例如:清零。例如:XORAX,AX 第75页,共108页,编辑于2022年,星期六2023/1/775 测试指令TEST(Test or non-destructive logical and)TEST指指令令的的格格式式、操操作作及及对对操操作作数数的的要要求求和和AND指指令令类类似似,但但该该指指令令“与与”的的结结果果不不送送回回目目标标操操作作数数,而而只是影响标志位。只是影响标志位。TEST指指令令常常用用于于在在不不破破坏坏原原来来操操作作数数的的情情况况下下检检测测操操作作数中某些位是数中某些位是“1”还是还是“0”。例如:例如:TESTAL,80HTESTAX,4000H第76页,共108页,编辑于2022年,星期六2023/1/776非循环移位指令非循环移位指令 n算术左移指令算术左移指令SAL(Shiftarithmeticleft)n算术右移指令算术右移指令SAR(Shiftarithmeticright)n逻辑左移指令逻辑左移指令SHL(Shiftlogicleft)n逻辑右移指令逻辑右移指令SHR(Shiftlogicright)可可以以实实现现对对8位位或或16位位的的寄寄存存器器或或存存储储器器操操作作数数进进行行指指定次数的移位。定次数的移位。在在要要求求进进行行2位位或或更更多多位位的的移移动动时时,移移位位的的次次数数必必须须放放在在CL寄存器中。寄存器中。第77页,共108页,编辑于2022年,星期六2023/1/777 n算术左移和逻辑左移指令SAL/SHL 算算术术左左移移指指令令SAL和和逻逻辑辑左左移移指指令令SHL执执行行完完全全相相同同的操作:的操作:SAL OPRD,1 SHL OPRD,1或 SAL OPRD,CL SHL OPRD,CLSAL指令和指令和SHL指令的区别是:指令的区别是:SAL指令将操作数视为有指令将操作数视为有符号数,而符号数,而SHL将操作数视为无符号数将操作数视为无符号数 第78页,共108页,编辑于2022年,星期六2023/1/778例例3-8一个一个16位无符号数存放在以位无符号数存放在以DATA为首地址的两个为首地址的两个连续的单元,用左移指令实现将该数乘以乘以连续的单元,用左移指令实现将该数乘以乘以10。LEA SI,DATA ;DATA单元的偏移地址送SI MOV AX,SI ;(AX)被乘数 SHL AX,1 ;(AX)DATA*2 MOV BX,AX ;暂存于BX MOV CL,2 ;(CL)移位次数 SHL AX,CL ;(AX)DATA*8 ADD AX,BX ;(AX)DATA*10 HLT ;停止 第79页,共108页,编辑于2022年,星期六2023/1/779 逻辑右移指令SHR将目标操作数顺序向右将目标操作数顺序向右移移1位或位或CL指定的位指定的位数数 例:SHR BH,1 SHR AX,CL n算术右移指令SAR 将目标操作数顺序向右将目标操作数顺序向右移移1位或位或CL指定的位指定的位数数例:SAR AL,1 SAR BX,CL 第80页,共108页,编辑于2022年,星期六2023/1/780循环移位指令循环移位指令 n不带进位标志位不带进位标志位CF的循环左移指令的循环左移指令ROL(Rotateleft)n不带进位标志位不带进位标志位CF的循环右移指令的循环右移指令ROR(Rotateright)n带进位标志位带进位标志位CF的循环左移指令的循环左移指令RCL(Rotateleftthroughcarry)n带进位标志位带进位标志位CF的循环右移指令的循环右移指令RCR(Rotaterightthroughcarry)所有循环移位指令都只影响进位标志所有循环移位指令都只影响进位标志CF和溢出标志和溢出标志OF,而对其他标志位没有影响而对其他标志位没有影响第81页,共108页,编辑于2022年,星期六2023/1/781 n不带进位标志位CF的循环左移指令ROL ROL OPRD,1或 ROL OPRD,CL n不带进位标志位CF的循环右移指令ROR ROR OPRD,1或 ROR OPRD,CL 第82页,共108页,编辑于2022年,星期六2023/1/782 n带进位标志位CF的循环左移指令RCL RCL OPRD,1或 RCL OPRD,CL n带进位标志位CF的循环右移指令RCR RCR OPRD,1或 RCR OPRD,CL 第83页,共108页,编辑于2022年,星期六2023/1/783串操作指令串操作指令 串操作指令具有以下的共同特点串操作指令具有以下的共同特点:源源串串指指针针为为DS:SI。源源串串(源源操操作作数数)默默认认为为数数据据段段,即即段段基基地地址在址在DS中,但允许超越。偏移地址用中,但允许超越。偏移地址用SI寄存器指定。寄存器指定。目目标标串串指指针针为为ES:DI。目目标标串串(目目标标操操作作数数)默默认认在在ES附附加加段段中中,不允许段超越。偏移地址用不允许段超越。偏移地址用DI寄存器指定。寄存器指定。使用重复前缀时,要操作的串长度放在使用重复前缀时,要操作的串长度放在CX寄存器中。寄存器中。自动修改指针和计数器。在对每个字节(或字)操作后,自动修改指针和计数器。在对每个字节(或字)操作后,SI和和DI寄寄存器的内容会根据方向标志存器的内容会根据方向标志DF的情况自动修改:若的情况自动修改:若(DF)=0,则每次操作后,则每次操作后,SI和和DI按地址增量方向修改(对字节操作加按地址增量方向修改(对字节操作加1;对字操作加;对字操作加2);若);若(DF)=1,则则SI和和DI按地址减量方向修改。按地址减量方向修改。若使用了重复前缀,若使用了重复前缀,CX的内容也会每次自动减的内容也会每次自动减1。第84页,共108页,编辑于2022年,星期六2023/1/784 用于串操作的重复前缀用于串操作的重复前缀:REP:REP:无无条条件件重重复复前前缀缀 重重复复执执行行指指令令规规定定的的操操作作,直直到到(CX)CX)0 0;REPE:REPE:相等时重复相等时重复 ZFZF1 1,且且(CX)0CX)0时重复;时重复;REPZ:REPZ:结果为零时重复结果为零时重复 ZFZF1 1,且且(CX)0CX)0时重复;时重复;REPNE:REPNE:不相等时重复不相等时重复 ZFZF0 0,且且(CX)0CX)0时重复;时重复;REPNZ:REPNZ:结果不为零时重复结果不为零时重复 ZFZF0 0,且且(CX)0CX)0时重复时重复第85页,共108页,编辑于2022年,星期六2023/1/785 串传送指令串传送指令MOVS(Move string)MOVS(Move string)指令格式有指令格式有3 3种:种:MOVS OPRD1,OPRD2MOVS OPRD1,OPRD2 MOVSB MOVSB MOVSW MOVSW第二种和第三种格式隐含了两个操作数的地址,此时源串第二种和第三种格式隐含了两个操作数的地址,此时源串和目标串地址必须符合默认值,即源串在和目标串地址必须符合默认值,即源串在DSDS段,偏移地段,偏移地址在址在SISI中,而目标串在中,而目标串在ESES段,偏移地址在段,偏移地址在DIDI中中第86页,共108页,编辑于2022年,星期六2023/1/786 例例 将将30003000H:1500HH:1500H地址开始的地址开始的100100个字节传送到个字节传送到60006000H:1000HH:1000H开始的内存单元中去开始的内存单元中去 MOV AX,3000HMOV AX,3000H MOV DS,AX ;MOV DS,AX ;设定源串段地址设定源串段地址 MOV AX,6000H MOV AX,6000H MOV ES,AX ;MOV ES,AX ;设定目标串段地址设定目标串段地址 MOV SI,1500H ;MOV SI,1500H ;设定源串偏移地址设定源串偏移地址 MOV DI,1000H ;MOV DI,1000H ;设定目标串偏移地址设定目标串偏移地址 MOV CX,100 ;MOV CX,100 ;串长度送串长度送CXCX CLD CLD ;(DF);(DF)0 0,使地址指针按增量方向修改使地址指针按增量方向修改 NEXT:REP MOVSB NEXT:REP MOVSB 第87页,共108页,编辑于2022年,星期六2023/1/787 串比较指令串比较指令CMPS(Compare string)CMPS(Compare string)指令有指令有3 3种格式:种格式:CMPS OPRD1,OPRD2CMPS OPRD1,OPRD2 CMPSB CMPSB CMPSW CMPSW串串 比比 较较

    注意事项

    本文(微机原理与接口技术指令系统幻灯片.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开