第五章80868088指令系统ppt课件

上传人:博****1 文档编号:567370234 上传时间:2024-07-20 格式:PPT 页数:109 大小:244KB
返回 下载 相关 举报
第五章80868088指令系统ppt课件_第1页
第1页 / 共109页
第五章80868088指令系统ppt课件_第2页
第2页 / 共109页
第五章80868088指令系统ppt课件_第3页
第3页 / 共109页
第五章80868088指令系统ppt课件_第4页
第4页 / 共109页
第五章80868088指令系统ppt课件_第5页
第5页 / 共109页
点击查看更多>>
资源描述

《第五章80868088指令系统ppt课件》由会员分享,可在线阅读,更多相关《第五章80868088指令系统ppt课件(109页珍藏版)》请在金锄头文库上搜索。

1、第五章8086/8088 指令系统C第一节指令格式和寻址方式第一节指令格式和寻址方式C第二节数据传送指令第二节数据传送指令C第三节算术运算指令第三节算术运算指令C第四节逻辑运算指令第四节逻辑运算指令C第五节控制转移指令第五节控制转移指令C第六节字符串指令第六节字符串指令吼凄撬笋御吾瞅但穆率阁不悄敖做揖滤苍潭刮遍铆翼脆斌锥哟文位炒聊银第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件第一节指令格式和寻址方式i一、指令格式一、指令格式i二、指令助记符二、指令助记符i三、寻址方式三、寻址方式i(一)指令地址的寻址方式(一)指令地址的寻址方式i(二)操作数地址寻地方式(二

2、)操作数地址寻地方式呈篙凶阑袋郎盔狸豪邯众拦酸仙丹边灾踩峭姨娩钓侠纂壹诈撮滞丙脂宵旦第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件一、指令格式指令是计算机用以控制各部件协调动作的命令指令是计算机用以控制各部件协调动作的命令指指令令字字是是一一种种二二进进制制代代码码,它它包包括括两两个个基基本本部部分分:操操作作码码和和地地址址码码。操操作作码码提提供供的的是是操操作作控控制制信信息息,指指明明计计算算机机应应执执行行什什么么性性质质的的操操作作,如如进进行行+、-、等等;地地址址码码提提供供参加运算操作数据的存放地址(即操作数地址)。参加运算操作数据的存放地

3、址(即操作数地址)。只只提提供供一一个个操操作作数数地地址址的的指指令令,称称为为单单操操作作数数指指令令;提提供供二二个个操操作作数数地地址址的的指指令令,称称为为双双操操作作数数指指令令;不不提提供供操操作作数地址的指令,称为无操作数指令。数地址的指令,称为无操作数指令。无操作数指令只有操作码部分,它的格式为无操作数指令只有操作码部分,它的格式为 其中其中为操作码。为操作码。甄彭誉冯码筛眯侣塌起锄怒蓉扣溺市钎抓媳烛疮煽点紫馁琉阑坐钙讣日轰第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件这这种种指指令令表表示示只只进进行行某某种种操操作作,无无需需操操作作数数

4、,如如控控制制机机器的运行状态,暂停(器的运行状态,暂停(HALTHALT)等,就属于无操作数指令。)等,就属于无操作数指令。单操作数指令格式为单操作数指令格式为 其中其中为操作码;为操作码;D D为目标操作数地址,简称目标地址。为目标操作数地址,简称目标地址。这这种种指指令令表表示示对对目目标标地地址址D D中中的的内内容容,按按操操作作码码规规定定进行操作,结果送目标地址。进行操作,结果送目标地址。双操作数指令格式为双操作数指令格式为 其其中中,为为操操作作码码,D D为为目目标标地地址址,S S为为源源地地址址(即即作作数数地址)。地址)。这这种种指指令令表表示示对对源源地地址址和和目目

5、标标地地址址中中的的内内容容,按按操操作作码码规定的操作进行操作,结果送目标地址,即规定的操作进行操作,结果送目标地址,即DDSDDS。船适那蒲走往嫉遵闰戴筋尘薄哑总涸遇涪苍转宾意纽数澜随亮考奥垦瓢啪第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件在在微微型型机机中中,一一般般采采用用可可变变字字长长指指令令。也也就就是是说说,不不同同的的指指令令用用不不同同长长度度来来表表示示,但但都都是是字字节节的的整整倍倍数数。如如一一字字节节、二二字字节节、三三字字节节和和四四字字节节指指令令等等。它它们们在在存存储储器器中中分分别别占占有有14个存储单元,其格式如下:

6、个存储单元,其格式如下:单字节指令:单字节指令: 操作码操作码 7 6 5 4 3 2 1 0 虏睬包薛英尤制牺今总孜匆碰走锻朋居孤追浊论疑曼桔瞧垛夫靳骋萤桩云第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件 双字节指令:双字节指令: 第一字节:第一字节: 操作码操作码 第二字节:第二字节: 操作数或地址操作数或地址 隆采肚蔼釉嘎梳舱悄磋捡讼附惶爵陆趟痔怎掳咖熊牲黄驴馁碑弛颊蛤涤妄第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件 三字节指令:三字节指令: 第一字节:第一字节: 操作码操作码 第二字节:第二字节: 操作数或地址低位操

7、作数或地址低位 第三字节:第三字节: 操作数或地址高位操作数或地址高位 或:或: 第一字节:第一字节: 操作码操作码 第二字节:第二字节: 操作码操作码 第三字节:第三字节: 操作数或地址操作数或地址 橱沙藤舍扎痉宝讯棒抓狂鹤玖堵速瘪斤佩僵黍祟拴像歉听迅裴榷搔涯良翱第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件 四字节指令:四字节指令: 第一字节:第一字节: 操作码操作码 第二字节:第二字节: 操作码操作码 第三字节:第三字节: 操作数或地址地位操作数或地址地位 第四字节:第四字节: 操作数或地址高位操作数或地址高位 孕猿墨峪脯局恫闲析赦完驾咕郴辜琅忻痘帜唾橱

8、比激蔡豪扔山骗饭殖壁索第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件二、指令助记符机机器器指指令令是是二二进进制制代代码码,二二进进制制代代码码不不易易辨辨识识和和记记忆忆。因因此此,在在介介绍绍机机器器指指令令时时,除除非非必必要要情情况况下下用用二二进进制制代代码码,一一般般情情况况下下使使用用指指令令助助记记符符。指指令令助助记记符符由由操操作作码码和和操操作作数数的的助助记记符符号号表表示示。通通常常操操作作码码用用英英文文单单词词或或英英文文缩缩写写单单词词来来表表示示如如:ADD,JP(Jump)等等。操操作作数数用用表表示示寄寄存存器器存存储储器

9、器地地址址的的符符号号来来表表示示。我我们们首首先先来来学学习习操操作作数数部部分分的的符符号号,然然后后结结合合指指令令来来学学习习表表示示操操作作码码的的符符号号。用用助助记记符符来来表表示示的的指令又称为指令的汇编格式。指令又称为指令的汇编格式。听挽靶排伐阮汪汲观蚌唆脱悉斥烙莆宫塘缓妈隙矩嚏拷臻智乳鬼苟包琉州第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件指令中要出现的符号介绍如下:指令中要出现的符号介绍如下:AX,BX,CX,DX 16位位通通用用寄寄存存器器AH,BH,CH,DH,AL,BL,CL,DL 8位通用寄存器位通用寄存器CS,DS,ES,SS

10、 段寄存器段寄存器SP,BP ,IP 堆栈指针,基址指针,指令指针堆栈指针,基址指针,指令指针DI,SI 目目的的,源源变变址址寄寄存存器器Flags 标志寄存标志寄存r r=AX、BX、CX、DX r=AL、BL、CL、DLa( acc) a=AX AL矛勤洱渣陡此暖啸申诬钳油吁揣何靳恒醋蛾碟尹郝呻哗历捷忱怖公凸语锑第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件Seg seg=CS、DS、ES、SSSrc( source)、)、dst( dest)源操作数、目的操作数)源操作数、目的操作数Count 计数器计数器Oprd 操作数操作数Im 立即数立即数 n

11、8位位 nn 16位位nnnn 32位位EA 有效地址有效地址员奉倍玉身钨右雪娶示夺吟申渐搀菠鹤撂忍辈餐盎撬龄卉神菲亩胶豆语需第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件三、寻址方式数数据据和和程程序序在在存存储储器器中中的的位位置置,称称为为地地址址。存存放放指指令令的的地地址址,称称为为指指令令地地址址;存存放放数数据据的的地地址址,称称为为操操作作数数地地址址,简简称称操操作地址。作地址。寻寻找找指指令令地地址址和和操操作作数数地地址址的的方方式式,统统称称为为寻寻址址方方式式。形形成成指指令令地地址址和和操操作作数数地地址址的的过过程程,称称为为寻址

12、过程。寻址过程。(一)指令地址的寻址方式(一)指令地址的寻址方式(二)操作数地址寻地方式(二)操作数地址寻地方式弯骄趁茂痔贯手讲桔吻勾因渤道浑级矢篷船撒滴愉讹畦正怨才乓彝呼拱冶第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件(一)指令地址的寻址方式在在微微机机中中,指指令令地地址址的的寻寻址址方方式式比比较较简简单单,通通常常是是在在CPU中设置程序计数器中设置程序计数器PC,PC中的内容就是指令地址。中的内容就是指令地址。在在一一般般情情况况下下,程程序序是是顺顺序序执执行行的的,程程序序在在存存储储器器中中也也是是按按顺顺序序存存放放的的。这这时时,只只要要

13、将将程程序序计计数数器器中中的的内内容容自自动动递递增,就可以形成下一条指令地址。增,就可以形成下一条指令地址。当当需需要要改改变变程程序序的的执执行行顺顺序序时时,要要使使用用转转移移指指令令,由由转转移移指指令令给给出出转转移移后后指指令令字字的的起起始始地地址址。将将此此地地址址送送到到程程序序计计数数器器,就就形形成成了了转转移移后后的的地地址址。然然后后,程程序序计计数数器器中中的的内内容容又自动递增,直到再次发生转移为止。又自动递增,直到再次发生转移为止。盯叭蔽捕榜虹辑潭赡烤鹰逗廷宗益她茹骗挟淌葬捍店告危桂握猾溢刷蒙竞第五章80868088指令系统ppt课件第五章80868088指

14、令系统ppt课件(二)操作数地址寻地方式微微机机在在工工作作时时,指指令令地地址址在在程程序序执执行行过过程程中中时时自自动动形形成成的的,但但指指令令所所需需的的操操作作数数地地址址是是随随机机的的,要要根根据据指指令令的的规规定定求求得得,获获得得操操作作数数地地址址的的方方式式,称称为为操操作作数数寻寻址址方方式式,有有时时也把它称为寻址方式。也把它称为寻址方式。在在操操作作数数寻寻址址方方式式中中,除除了了涉涉及及BP的的寻寻址址方方式式外外,一一般般寻寻址址均均在在数数据据段段内内(段段地地址址由由DS提提供供),在在涉涉及及BP时时,则则使使用用堆堆栈栈段段(段段地地址址由由SS提

15、提供供),在在执执行行串串操操作作时时,使使用用附附加加段段ES。在在各各种种寻寻址址方方式式中中,以以立立即即数数和和存存储储器器直直接接寻寻址址方方式式,速速度度最最快快,因因为为此此时时8086/8088的的执执行行单单元元EU可可以以立立即即从从寄寄存存器器中中或或指指令令队队列列中中取取出出操操作作数数,而而无无须须再再由由总总线线执执行单元计算出有效的行单元计算出有效的20位地址,然后再去取操作数。位地址,然后再去取操作数。痘第曝老竖啦消碟懈羽蔑功浪沪菱瘴烬别韶栋晴缝东剪如父叛侠波斧济阐第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件立即数寻址在指令

16、中直接给出一个常数作为操作数,如:在指令中直接给出一个常数作为操作数,如: MOV AX,200表示将常数表示将常数200送到存储器送到存储器AX中,要注意的是在中,要注意的是在16位操位操作中,直接数的取值范围为作中,直接数的取值范围为32767(7FFFH)到)到-32768(8000H),当为无符号数时则为),当为无符号数时则为0-65535(0FFFFH),对),对8位数应为位数应为0-255(OFFH),符号),符号数为数为127(7FH)到)到-128(80H)。)。镑异战嫉插规嗜咏蹬菱免猪糕现喀叶硕戏寡纸笼缝亥塑孵主月戮证欠腻癣第五章80868088指令系统ppt课件第五章808

17、68088指令系统ppt课件2.寄存器直接寻址指令中的寄存器存放了操作数,如:指令中的寄存器存放了操作数,如: ADD CX,BX表示将表示将BX中的值直接相加,然后送到中的值直接相加,然后送到CX中去。中去。遥鄙绒槽廉盒寞漂鞍课厨剂挝捍藻箱栋苑肮把崖藐贷许檬沽铰赠题虱筐蹄第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件3.寄存器间接寻址在在指指令令中中,有有操操作作数数的的地地址址,将将该该地地址址同同左左移移4位位后后的的DS值值相相加加,即即可可得得到到20位位物物理理地地址址,从从该该地地址址中中取取出出操操作作数数进进行行指指令令所所要要求求的的操操作

18、作,这这种种寻寻址址方方法法称称为为直直接接寻寻址址,通通常该类指令中,操作数的地址用标号表示,例如:常该类指令中,操作数的地址用标号表示,例如:ADD AX、TABLE表表示示将将AX中中的的值值和和TABLE表表示示的的地地址址中中的的内内容容相相加加,和和放在放在AX中。中。8086/8088按按字字存存放放内内容容时时,低低字字节节方方在在低低地地址址中中,高字节跟随其后,方在高地址中。高字节跟随其后,方在高地址中。接玖咕佃刁涉烈闺颂掏盟快过木求怠呻林人潜煌杆滩貌麦馒炊隔对掣项逗第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件5.变址寻址将将指指令令中中

19、指指令令的的变变址址寄寄存存器器的的内内容容加加上上偏偏移移值值,即即成成为为操作的地址,例如:操作的地址,例如:MOV DI,4MOV AX,TABLEDI表表示示偏偏移移值值TABLE加加4(DI的的内内容容)作作为为操操作作数数地地址址,取出操作数送取出操作数送AX。这这种种寻寻址址方方式式通通常常用用于于读读写写表表中中的的元元素素,如如TABLE偏偏移移值值表表示示的的首首址址,加加4表表示示将将表表中中的的第第三三个个量量(16位位)送送AX,读写数组元素也采用此法。读写数组元素也采用此法。蛙齿尺抖诱罚壶肠美毅链尤怯困纠客圾泰仇畴潭闭脖啥陇嗡痔言袜舱公以第五章80868088指令系

20、统ppt课件第五章80868088指令系统ppt课件6.基址寻址同同变变址址类类似似,不不过过这这种种寻寻址址中中使使用用基基址址寄寄存存器器BX、BP代代替替变变址址寄寄存存器器DI和和SI。它它是是将将基基址址寄寄存存器器的的内内容容加加上上偏偏移量而作为操作数地址的,例如:移量而作为操作数地址的,例如:MOV AX,BX+6表表示示BX作作为为基基址址,距距其其偏偏移移6字字节节的的地地址址便便是是操操作作数数地地址址,在在这这种种寻寻址址中中BX基基址址对对应应的的段段地地址址在在当当前前数数据据段段中中,若若基址是基址是BP,则操做数在堆栈段内。,则操做数在堆栈段内。IBM汇汇编编允

21、允许许用用三三种种形形式式指指定定基基址址寻寻址址,它它们们的的效效果果是是一样的,如:一样的,如:MOV AX,BX+6 ;标准格式;标准格式MOV AX,6BX ;先写偏移值;先写偏移值MOV AX,BX+6 ;偏移值写在括号内;偏移值写在括号内躲途羹周功撞犊救映强气蔑嘲饺嫌瀑拘苛量巴铂个螺咳驾圣脑指铬攻捎砚第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件7.基址变址寻址基基址址变变址址寻寻址址时时,操操作作数数地地址址是是由由一一个个基基址址寄寄存存器器的的内内容容,一一个个变变址址寄寄存存器器的的内内容容及及偏偏移移值值(是是任任选选项项,也也可可不不用

22、用)相加和,例如:相加和,例如:MOV AX,6BPSI表表示示距距栈栈顶顶6个个字字节节处处作作为为基基址址,然然后后以以SI内内容容为为相相对对基基址址的的偏偏移移作作为为操操作作地地址址,这这种种寻寻址址方方式式在在访访问问堆堆栈栈数数组组时时很很有有用用,如如基基址址为为栈栈顶顶,则则变变址址寄寄存存器器中中的的值值表表示示堆堆栈栈中中的的相应元素。相应元素。这这种种寻寻址址方方式式也也多多用用于于对对二二维维数数组组的的访访问问,如如用用BX作作为为数数组组的的首首地地址址,变变址址寄寄存存器器及及偏偏移移值值作作为为数数组组行行和和列列的的值值,依次寻址,就可找到某个二维数组元素。

23、依次寻址,就可找到某个二维数组元素。钠艳闸种番顾套臼哮疮友踌女翟锄延谎困绣眉狮移佳袍抨轰菱玄激措由路第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件第二节数据传送指令第二节数据传送指令8086/8088有有92条指令,按其功能可分为条指令,按其功能可分为6个功能组:个功能组: 1.数据才传送数据才传送2.算术运算算术运算 3.逻辑运算逻辑运算 4.串操作串操作 5.控制传送控制传送 6.处理器控制处理器控制汇冻芳丧马渺殊蘑刃熬双簇糖伍柔婪融簇玖路档黑涪节弄访腊票茸描朋凌第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件 数据传送指令

24、又可分为以下七种:数据传送指令又可分为以下七种: (1)通用数据传送指令通用数据传送指令MOV (2)堆栈操作指令堆栈操作指令 (3)交换指令交换指令 (4)标志寄存器传送指令标志寄存器传送指令 (5)输入输出指令输入输出指令 (6) 地址目的传送指令地址目的传送指令 (7)查表转换指令查表转换指令 这类指令用来在寄存器和存储单元或输入这类指令用来在寄存器和存储单元或输入/输出端口传输出端口传送数据或地址,表送数据或地址,表5.2.1列出这列出这7种指令种指令:出柿黄译帝沧痛满若铅袄沈柜屁幻陶涅浓咙须蒸耿亦炔护堡悸炬喉瓷殃拈第五章80868088指令系统ppt课件第五章80868088指令系统

25、ppt课件汇编格式汇编格式 操作操作MOV dest,source 传送一个字节或字传送一个字节或字PUSH source 压一个字进栈压一个字进栈POP dest 弹一个字进栈弹一个字进栈PUSHF 压标志寄存器进栈压标志寄存器进栈POPF 弹标志寄存器出栈弹标志寄存器出栈XCHG op1,op2 交换两个字节或字交换两个字节或字LAHF 将标志寄存器内容装入将标志寄存器内容装入AH中(装右字节)中(装右字节)SAHF 将将AH寄存器内容存到标志寄存器(右字节)寄存器内容存到标志寄存器(右字节)IN acc,port 从端口输入字节或字到累加器从端口输入字节或字到累加器OUT port,ac

26、c 从累加器输出一个字节或字到端口从累加器输出一个字节或字到端口LEA dest,source 装入有效地址,即将存储器操作数偏装入有效地址,即将存储器操作数偏 移地址送目的寄存器移地址送目的寄存器LDS dest,source 将段地址装入将段地址装入DS中,偏移地址装入中,偏移地址装入 目的寄存器目的寄存器LES dest,source 将段地址装入将段地址装入ES中,偏移地址装入目中,偏移地址装入目 的寄存器的寄存器 XLAT 查表转换查表转换糠伐泅使碴短严酷朝剐磨阉缠祖裔毯闲更谢佰流价砖吉缝嗣慎毫梨综贼烂第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件、

27、MOV指令MOV指指令令是是最最基基本本的的通通用用传传送送指指令令,它它把把一一个个字字节节或或一一个字从源传送到目的。这条指令可实现下述操作:个字从源传送到目的。这条指令可实现下述操作:MOV nn,a ;(nn) aMOV a,nn ;a(nn)MOV seg,src ;segsrcMOV dst,seg ;dstsegMOV r,src ;rsrcMOV dst,r ;dstrMOV dst,im ;dstim孕踌誓跑碴传蹿爸耗泄歼函琼雄遗织刻戳庆捧娜忠垢赊杏匪锥赂瑚格砌吾第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件MOV指指令令可可以以在在寄寄存存

28、器器与与存存储储单单元元之之间间,寄寄存存器器和和寄寄存存器器之之间间传传送送字字节节或或字字,也也可可以以将将一一个个立立即即数数送送寄寄存存器器或或存存储储单元,例如:单元,例如:MOV AX,TABLE ;TABLE存储地址传送到存储地址传送到AXMOV TABLE,DX ;从;从DX传送到存储地址传送到存储地址MOV ES;BX,AX ;指指定定段段寄寄存存器器到到ES,而而不不用用DSMOV DS,AX ;寄存器间;寄存器间16位数传送位数传送MOV DL,AL ;8位寄存器间传送位寄存器间传送MOV CL,30 ;常数送寄存器;常数送寄存器MOV TABLE,05H ;常数送存储单

29、元;常数送存储单元悬洼霓质姻王体钥樊欣秆懂梆赤青钾屎坦宁诞棋千谜乓磅松成眉献蛇萍冶第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件2、堆栈操作指令目目前前,微微计计算算机机一一般般都都是是把把内内存存的的一一个个区区域域作作为为堆堆栈栈。这这个个堆堆栈栈按按照照后后进进先先出出的的原原则则组组织织一一段段内内存存区区域域,由由堆堆栈栈指指针针指指出出它它在在存存储储器器中中的的位位置置。8086/8088用用段段寄寄存存器器SS和和堆堆栈栈指指针针SP指指示示堆堆栈栈在在内内存存的的位位置置,这这个个堆堆栈栈长长度度为为64KB,因因此此SP为为16位位指指针针

30、的的单单元元。8086/8088规规定定SP始始终终指指向向堆堆栈栈的的顶顶部部,即即始始终终指指向向最最后后压压入入堆堆栈栈的的信信息息所所在在的的单单元元。8086/8088的的堆堆栈栈是是下下推推式式,即即随随着着压压入入堆堆栈栈的的内内容容的的增增加,加,SP的值减小。的值减小。SP的初值可由的初值可由MOV SP,im指令来设定。指令来设定。堆栈操作指令包括入栈指令和出栈指令。堆栈操作指令包括入栈指令和出栈指令。钳股拜胁斑瓮斋商贾梳尊枚先蛮疚腔仪铝棘拿诚郎省踞瞻峻杀封盛韶夫醒第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件(1)入栈指令)入栈指令 PU

31、SH oprd 入栈指令完成将入栈指令完成将16位的数据送入堆栈的操作,具体入栈位的数据送入堆栈的操作,具体入栈指令如下:指令如下:PUSH r ;(SP) r,SPSP-2PUSH seg ;(SP) seg,SPSP-2PUSH src ;(SP) src,SPSP-2澄妊山挡步切娄齐查撞簇梳归思明范缩境筐曹氨湛青纲吗徘役肯痒获神谁第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件(2) 出栈指令出栈指令 POP oprd出栈指令完成将出栈指令完成将16位的数据从堆栈弹出的操作,具体出位的数据从堆栈弹出的操作,具体出栈指令如下:栈指令如下:POP r ;r(S

32、P),SPSP+2POP seg ;seg(SP),SPSP+2POP dst ;dst(DP),SPSP+2疵兄搪看堂氟煽凑屁演块睛鸟就瞥鞍渺付肄营量诵了研绣荚饱土拌柴昨梢第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件入入栈栈时时,把把一一个个字字从从上上述述操操作作数数传传送送到到已已由由SP指指向向的的堆堆栈顶部,同时修改栈顶部,同时修改SP的值,使的值,使SP指向新的栈项单元。指向新的栈项单元。出出栈栈时时,把把堆堆栈栈顶顶部部的的一一个个字字,传传送送到到指指定定的的目目标标操操作作数,同时修改数,同时修改SP的值,使的值,使SP指向新的栈顶单元。指

33、向新的栈顶单元。PUSH和和POP指指令令提提供供一一个个先先进进后后出出的的堆堆栈栈结结构构,它它们们用用SS栈栈寄寄存存器器来来指指向向栈栈的的段段地地址址,用用SP堆堆栈栈指指针针来来指指向向栈栈顶顶位位置置,当当执执行行PUSH指指令令时时,SP减减2后后,将将源源操操作作数数(一一个个字字)压压入入栈栈内内,相相反反POP指指令令则则将将当当时时SP所所指指定定的的堆堆栈栈中中的的字字取取出到目的操作数,然后出到目的操作数,然后SP加加2。尽吗大缩蜂阀绸圈榜署铀瞪豺俯扦匆睡瞪住岿鼻窘亦寒怠旬弘甚窑戏寿籍第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件P

34、USH和和POP指指令令提提供供了了一一种种存存储储的的技技巧巧,例例如如可可用用于于数数据据交交换换,将将DS的的值值传传给给ES,使使数数据据段段和和附附加加段段指指向向同同一一个个段地址:段地址:PUSH DSPOP ES又又如如在在程程序序中中要要用用到到某某一一寄寄存存器器,它它的的值值在在程程序序中中某某一一段段将将被被改改变变,而而后后面面又又要要用用到到它它,且且需需要要它它的的原原先先值值,可可采采用如下方法:用如下方法:PUSH AX ;将;将AX值存入堆栈值存入堆栈 ;AX的值被改变的程序段的值被改变的程序段POP AX ;再取回;再取回AX的原先值的原先值揉盔滩尝落型筹

35、婆权重更呼姆迄腐簧吹瞬痪龙灶嗽装校缕戎抒蛰佬劳犬霞第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件(3)PUSHF和和POPF指令指令PUSHF和和POPF是是将将标标志志寄寄存存器器内内容容入入栈栈和和出出栈栈,这这两两种种指指令令在在调调用用子子程程序序,保保存存标标志志寄寄存存器器内内容容时时常常用用到到,即即在在调调用用前前标标志志寄寄存存器器入入栈栈,返返回回主主程程序序时时,恢恢复复其其值值。另另外外,当当标标志志寄寄存存器器TF位位为为1时时,8086/8088在在每每执执行行一一条条指指令令后后,便便执执行行一一条条1型型中中断断指指令令,即即指

36、指令令执执行行变变成成单单步步方方式式,这这在在调调试试程程序序时时可可用用到到,以以便便跟跟踪踪每每条条指指令令执执行行情情况况。由由于于没没有有任何一条指令能使任何一条指令能使TF变成变成1,但这可用下面的方法实现:,但这可用下面的方法实现:PUSHF ;标志进栈;标志进栈POP AX ;标志值送;标志值送AXOR AX ,0100H ;使;使TF位置位置1PUSH AX ;AX进栈进栈 POPF ;将;将AX值送到标志寄存器值送到标志寄存器若若要要恢恢复复TF=0,则则可可将将OR AX,0100H换换成成AND AX,0FEFFH来清除来清除TF。僚掘蹬辰漱誓讳粤劣妙配纹互想愈疥迸簇轩

37、莹痪赞敝踞迁暴墅武塞签冉楞第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件3、交换指令具体的指令如下:具体的指令如下: XCHG AX XCHG AX,r ;AX rr ;AX r XCHG r,src ;r src XCHG r,src ;r src XCHG XCHG指令用于交换源操作数和目的操作数的内容,源和指令用于交换源操作数和目的操作数的内容,源和目的操作数可以在寄存器或单元中,但不能同为存储单元,目的操作数可以在寄存器或单元中,但不能同为存储单元,段寄存器也不能用作操作数。下面是寄存器交换段寄存器也不能用作操作数。下面是寄存器交换例如:例如: MOV

38、 AX MOV AX, 50 50 MOV BX MOV BX,1010 XCHG AX XCHG AX,BX BX ;现在;现在AX=10AX=10,BX=50BX=50属锦染畔势诺鞋俱拴奉愿揣善嘴诫漫源桩固郴旁凉劣韵若垦簇先魏捍结凋第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件4标志寄存器传送指令LAHF和SAHFLAHF指指令令是是将将标标志志寄寄存存其其中中标标志志CF.PF.AF.ZF.和和SF分分别别送送到到AH的的0.2.4.6.7位位,而而SAHF指指令令却却相相反反,它它是是将将AH的相应位内容送到标志寄存器的的相应位内容送到标志寄存器的CF

39、、PF、AF、ZF和和SF位。位。沼钾荡梅蚌宦旭瑟梦固窥铱勒葵敷振乐锦缚九腊拇忌洒砂恬玲慢漱吨岩碑第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件5.输入输出指令IN和OUTIN和和OUT指指令令用用来来读读写写I/O口口,8086/8088可可寻寻址址的的口口地地址址可可达达64K个个,口口地地址址可可用用DX或或立立即即数数表表示示,如如用用立立即即数数,则则仅仅能能寻寻址址0-FFH,读读写写的的数数据据必必须须从从AX中中接接收收或或传传送送,例例如如:IN AL,2FH ; 从从2FH口输入一个字节到口输入一个字节到ALOUT 5,AL ; 将将AL中

40、的数送到中的数送到5口中去口中去MOV DX,3FCH ;3FCH口地址送口地址送DXIN AX,DX ; 从从3FCH口读一个字到口读一个字到AX中中这这类类指指令令在在接接口口技技术术中中使使用用较较多多,当当读读写写一一个个字字时时,先先是是低低字字节节,然然后后是是高高字字节节(因因为为数数据据总总线线是是8位位,所所以以必必须须分分两两次次读读写写),如如从从3FCH口口读读一一个个字字时时,实实际际上上从从3FCH口口读读一一个个字节到字节到AL中去中去.然后从然后从3FCH口再读一个字节到口再读一个字节到AH中去。中去。秩址逆颖雕捕拎剥痔剑订冷陈苟蛾启疵贵旅眶挥妥筛毗直让发罪胺蛋

41、妮傲第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件6.地址-目标传送指令8086/8088有三条地址有三条地址-目标传送指令目标传送指令: LEA r,src LDS r,src LES r,src LEA指指令令将将一一个个储储储储器器中中数数据据的的偏偏移移地地址址送送到到任任一一个个通通用用寄存器寄存器.指针寄存器或变址寄存器指针寄存器或变址寄存器,例如例如: LEA BX,TABLEDI 将把将把TABLE+DI的偏移地址送到的偏移地址送到BX中中. LDS指指令令将将从从指指定定的的存存储储器器地地址址中中取取出出一一个个32位位的的双双倍倍字字,将

42、将其其低低16位位送送到到指指定定的的字字寄寄存存器器,而而将将高高16位位送送到到DS,例例如如:及穿镰呢彩哇攫仇卸糊恫双苛臃付据排惶凳骑胜肩宦虐到净郡帆摸拴夯撅第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件 LDS BX,ARRAY ARRAY假假如如为为一一个个双双倍倍字字长长的的字字,比比如如是是代代表表一一个个物物理理地地址址的的变变量量,执执行行此此指指令令后后将将ARRAY高高二二字字节节表表示示的的段段地地址址送送入入DS中中,而而将将其其低低二二字字节节表表示示的的偏偏移移地地址址送送入入BX中中,这这相相当当执行了三条指令执行了三条指令:

43、MOV BX,ARRAY MOV AX,ARRAY+2 MOV DS,AX LES指令将段地址送入指令将段地址送入ES中中,其别的功能同其别的功能同LDS.博滁栖棠巳江御绚袖橱萤合赴桩吞悄侍瞬涸茄屈赛胎褂哆涸匪铸奄吻烧却第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件7.查表转换指令XLATXLAT指指令令可可进进行行查查表表操操作作此此表表可可达达256个个字字节节.使使用用该该指指令令时时,将将表表的的起起始始地地址址送送入入BX中中,将将表表的的位位移移值值(即即要要查查表表的的位位置置)送送入入AL中中.。然然后后执执行行XLAT指指令令,则则将将查查到

44、到的的值值存存入入AL中中.漾氯狠魏醋锦眉席帐专福返尼巨喜遥酒电琼谎誉邻揣脑眼么怯绊胃灾滑螟第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件第三节算术运算指令8086/8088有有加加、减减、乘乘、除除四四种种基基本本的的运运算算指指令令,这这些些指指令令可可用用于于字字节节或或字字运运算算,可可用用于于带带字字号号数数与与无无符符号号数数的的运运算算。如如果果是是符符号号数数,则则用用补补码码表表示示。大大部部分分指指令令操操作作影影响标志寄存器响应位。算术运算指令如表响标志寄存器响应位。算术运算指令如表5.3.1所示所示8086/8088提提供供各各种种矫矫

45、正正操操作作指指令令,这这些些矫矫枉枉正正操操令令与与二二进进制制算算术术运运算算指指令令配配合合使使用用,使使得得8086/8088也也能能进进行行十十进进制制算算术术运运算算。十十进进制制数数不不带带符符号号,可可用用压压缩缩十十进进制制数数(BCD),或或非非压压缩缩型型十十进进制制表表示示,前前者者每每个个字字可可包包含含两两个个用用场场4位位二二进进制制码码表表示示的的十十进进制制数数,即即十十进进制制数数的的范范围围为为0099;对对非非压压缩缩型型的的数数,则则一一个个字字节节仅仅表表示示一一个个十十进进制制数数即即09,字字节节的的高高4位位在在作作乘乘除除运运算算时时必必须须

46、为为0 ,加加减减时时可可任意。任意。探农叮偏短反茸成缝寻踢马烤卓糟归男灶湃快猜爆届赋低课焕袱彦损倍柑第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件;1 1、加减法运算指令、加减法运算指令 、;2 2、比较指令、比较指令;3 3、INCINC、DNCDNC、NECNEC指令指令;4 4、乘法与除法指令、乘法与除法指令MULMUL、IMULIMUL、DIVDIV、IDIVIDIV;5 5、CBWCBW与与CWDCWD指令指令;6 6十进调整指令十进调整指令股酞嘶澡溃绰衫米措啡兼帽获朱逃晤底遇传尿欺补柜姥宫透彪迪找许极斌第五章80868088指令系统ppt课件第五

47、章80868088指令系统ppt课件梯糟蝇芋伙蠢淳厩褒莹就柞们绰渠苦锚剧伦诺猪沟院瞒并孙降辗甥柑耙患第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件潦选折杖箩丛龟驳詹恢荚交冬逞睛杆您纤了兹彻窟城膀轧念逛拄丛翌湃财第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件1、加减法运算指令 、A加法指令加法指令A带进位加法指令带进位加法指令A减法指令减法指令A带借位减法指令带借位减法指令汉弗抡摸豢意实丈撂瀑行下僚肿烩铺浅柞拭册社帚账焰桥抉剖茶灭颧酋俗第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件()、加法指令

48、 , ; , ; , ; , ;纹赐哈唯框枝农例贫昨姐原炊蚂牺虫财沼铰呢燃箩芒概淋拿躁功命峻柠计第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件()带进位加法指令 , ; , ;A D C , ;A D C , ;其中为进位标志的现行值。其中为进位标志的现行值。系爱掉刹糖互勾湿皑楷娩押扼泵把厕枝怨皑乖拙尚贸谢几兹浅咋垮赘鸦反第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件()减法指令SUB , ;SUB , ;SUB , ; SUB , ; 捷吵计厨扬诞部销茶辩嫩查雕壹除题瞪讹蹿昨锭辱碴拽榨珐股隋蔷菜烹佯第五章80868088指令

49、系统ppt课件第五章80868088指令系统ppt课件(4) 带借位减法指令SBB r, src ; r r src cSBB a,im ; a a im c SBB dst,im ; dst dstimcSBB dst,r ; dst dstrc其中其中c为借位标志的现行值为借位标志的现行值邓拜耳阉维撬敖塘译渐馅裸蜕鬼庞磕硅少瘟育告极逊袒卿擎岭惭谆渔挞苑第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件、均均是是作作加加减减运运算算的的指指令令,其其功功能能是是源源操操作作数数与与目目的的操操作作数数进进行行相相加加或或相相减减,而而与与的的差差别别是是为为带带

50、进进位位的的加加,同同样样是是带带借借位位的的减减,源源操操作作数数可可以以在在寄寄存存器器、存存储储器器中中或或立立即即数数,目目的的操操作作数数可可以以在在寄寄存存器器、存存储储器器中中。这这些些指指令令运运算算的的结结 突突目目的的操操作作数数中中。上上述述指指令令可可完完成成位位(字字节节)或或位运算超过位则需多条指令。位运算超过位则需多条指令。比如操作数长度大于位的加法,用下面的指令比如操作数长度大于位的加法,用下面的指令 , ;低位相加;低位相加 , ;带低位进位的高位相加;带低位进位的高位相加这这两两条条指指令令将将把把和和中中的的位位数数加加到到和和中中的的位位数数中中,县县后

51、后面面的的一一条条指指令令,还还将将低低位位的的进进位位也也一一起起加加上上,结结果果在在和和中中。又又比比如如操操作作数数长长度度大大于位的减法,可用下面的指令于位的减法,可用下面的指令统阜双且用靴涣蚁帖割州丈太任涟撼穴哭巴认郸穴症篙疗辩楔哗弘胖锚虫第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件 , ;低位相减;低位相减 , ;带低位借位的高位相减;带低位借位的高位相减作减法时,不仅和相减,还要减去上条作减法时,不仅和相减,还要减去上条指令执行相减后的借位,最后的结果低位将在中,指令执行相减后的借位,最后的结果低位将在中,高位将在中。高位将在中。这类指令不能

52、用于存储单元容的加减,也不能用立即数这类指令不能用于存储单元容的加减,也不能用立即数作为目的操作数。它们的运算结果均将影响标志寄存器的作为目的操作数。它们的运算结果均将影响标志寄存器的、和。、和。耻傅执枚戒缩旭箩欲饱笛胯匣慷栅哎转卓小说噪扩颗黄今艘保茸顾泪迅唤第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件、比较指令比比较较指指令令完完成成两两个个操操作作数数加加减减,使使结结果果反反映映到到标标志志位位上上,并不送回相减的差值。指令格式如下:并不送回相减的差值。指令格式如下:CMP , ;CMP , ; CMP , ;CMP , ;指指令令是是比比较较指指令令

53、,用用于于目目的的操操用用数数 与与源源操操用用数数 进进行行比比较较,即即相相减减,类类似似于于指指令令,但但不不同同的的是是,该该指指令令不不保保存存相相减减的的结结果果,因因而而不不变变操操作作数数 ,它它仅仅影影响响标标志志寄寄存器,表存器,表.示出了比较指令影响标志位的情况。示出了比较指令影响标志位的情况。眠凹柏舷革忙哆风炊饶拍胳拄紧前赞俘飞裤揖福善各趟精碳嗅要麓极乎婴第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件燥也苗厩净堆挽铅遏奈论蜒川直跨步地门惨众渭沼牧巨晒彰咳羌傲财喜摆第五章80868088指令系统ppt课件第五章80868088指令系统pp

54、t课件一一般般在在使使用用指指令令时时,后后面面总总是是跟跟着着一一条条条条件件转转移移命命令令,跟跟据据比比较较结结果果标标志志位位的的情情况况决决定定程程序序的的执执行行方方向向,由由表表. . .可看出:可看出:两位比较要等用零标志位两位比较要等用零标志位ZFZF,若,若ZFZF1 1则表示相等。则表示相等。不不带带符符号号数数比比较较大大小小时时,当当借借位位标标志志CFCF1 1时时,说说明明源源目的,否则目的源。目的,否则目的源。带带符符号号数数比比较较大大小小时时,用用符符号号标标志志SFSF与与溢溢出出OFOF半半加加(异异或或)来来判判断断,若若SFOFSFOF1 1,则则源

55、源目目的的,否否则则源源目目的的。例如:例如:CMP AXCMP AX,8000H 8000H ;AX AX 与与8000H8000H相比较相比较JL AGAIN JL AGAIN ;如;如AXAX小于小于8000H8000H则转则转AGAINAGAIN当当CMPCMP执执行行后后,若若SFOFSFOF时时,(即即SFCFSFCF1 1),即即源源目的,则转移。目的,则转移。蛤堪汲宗增桶私伴涂怒锈浙俺裤伦阎痪驾殖缴杭绿饲氢郊仕婶弦锗冬谢防第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件3、INC、DNC、NEC指令INCINC和和DECDEC指指令令仅仅有有一一

56、个个操操作作数数,其其操操作作可可以以是是位位或或位位的的通通用用寄寄存存器器值值,也也可可以以是是存存储储单单元元中中的的数数,将将执执行行操操作作数数加加的的操操作作,指指令令将将执执行行操操作作数数减减的的操操作作,结结果果仍仍送送回回操操作作的的位位置置中中去去。这这两两条条指指令令操操作作结结果果均均不不影响影响CFCF标标. .。NECNEC指指令令为为求求补补指指令令,它它是是从从零零中中减减去去操操作作数数,形形成成2 2 的的补补, ,操操作作数数仅仅有有一一个个,可可以以是是寄寄存存器器的的破破除除储储存存单单元元的的数数。例如:例如:NEC DATANEC DATADAT

57、ADATA存存储储单单元元内内设设有有数数为为0000010100000101,则则执执行行该该指指令令后后,其内容就变为其内容就变为1111101111111011。朝优桌杏转乙固百柔颈阅张碾碳贝牲传坑拇听矛乱昂煌试努寓零感硬恃藐第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件当从一个立却数中减去寄存器或存储器中的数时,不能当从一个立却数中减去寄存器或存储器中的数时,不能用用SUBSUB指令,但可以减数变补,然后再和其相加得到减的果,指令,但可以减数变补,然后再和其相加得到减的果,如立即数为如立即数为100100,则可用如下命令:,则可用如下命令:NEG AL

58、NEG ALADD AL,100ADD AL,100敏拉惩称峙岁郧痉亩上诵博肃舰揭禁舍杯耶啦颅兑驾响弟嗜印袋芽缕掸彩第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件4、乘法与除法指令MUL、IMUL、DIV、IDIV80888088提供乘法与除法指令,具体指令格式如下:提供乘法与除法指令,具体指令格式如下:MUL src ; AXAL*src(MUL src ; AXAL*src(无符号数无符号数) )MUL src ; DXMUL src ; DX、AXAX*srcAXAX*src(无符号数)(无符号数)IMUL src ; AXAL*srcIMUL src

59、; AXAL*src(符号数)(符号数)IMUL src ; DX IMUL src ; DX 、AXAX*srcAXAX*src(符号数)(符号数)DIV src ; ALAX/src,AHDIV src ; ALAX/src,AH余数余数DIV src ; AXDX. AX/src, DXDIV src ; AXDX. AX/src, DX余数余数IDIV src ;ALAX/src, AHIDIV src ;ALAX/src, AH余数(符号数)余数(符号数)IDIV src ; AXDX IDIV src ; AXDX 、 AX/src,DX AX/src,DX余数(符号数)余数(符号

60、数)插抖径磕阉霸揭韦右裔姻槽千家恕鼻蹭秘弥流辜鞘滓山迫嫩纺钱室山则祟第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件MULMUL是是无无符符号号数数乘乘法法指指令令,IMULIMUL是是带带符符号号数数的的乘乘法法指指令令(整整数数乘乘法法),它它们们都都可可以以完完成成字字节节与与字字节节相相乘乘,字字与与字字的的相相乘乘,这这些些乘乘法法指指令令均均认认为为目目的的操操作作数数在在ALAL和和AXAX中中,源源操操作作数数由由指指令令指指出出,当当1616位位乘乘法法时时,3232位位的的乘乘积积规规定定高高1616位位在在DXDX中,低中,低1616位在位

61、在AXAX中。中。在在8 8位位或或1616乘乘法法若若扩扩展展部部分分AHAH或或DXDX为为0 0则则CF=0CF=0,OF=0OF=0,反反之之CF=1CF=1。OF=1OF=1。IMULIMUL是是带带符符号号数数乘乘法法 ,执执行行情情况况同同MULMUL,不不过过在在1616位位或或3131位乘积中,包括一位符号位。位乘积中,包括一位符号位。DIVDIV是是无无符符号号除除法法指指令令,它它可可以以进进行行字字节节或或字字除除法法,DIVDIV规规定定:对对于于8 8位位除除法法,被被除除数数在在AX AX 中中,对对于于1616位位除除法法,被被除除数数则则在在DXDX与与AXA

62、X中中,而而除除数数在在指指令令中中指指出出。除除完完的的结结果果,对对8 8位数除法,商与余数分别放在位数除法,商与余数分别放在AXAX与与DXDX中。中。磊密脖啪雏林架散痢趾萌膏道整原茁情懊猖鼓掖亩闸眩榆姻陨健快娩棺葵第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件IDIVIDIV是带符号是带符号 数除法,情况同数除法,情况同DIVDIV,除后余数符号和被,除后余数符号和被除数相同除数相同 。这两条除法指令都不能用立即数作源操作,但。这两条除法指令都不能用立即数作源操作,但若需要时,可用如下指令来实现,例如:若需要时,可用如下指令来实现,例如: MOV BX

63、 MOV BX,1010 DIV BX DIV BX ;用;用1010去除去除DXDX:AXAX枝钟群帐呜炕育铜啮臣憨冒立趾挠导姓后奔累饲毒饱慈猜咐锚梭庆池秽斩第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件5、CBW与CWD指令上上述述的的除除法法,被被除除数数均均是是除除数数的的双双倍倍字字长长,若若要要进进行行相相同同字字长长的的除除法法,则则需需将将被被除除数数扩扩展展为为双双倍倍字字长长,这这就就要要用用下下面两条指令:面两条指令:CBW是是将将字字节节扩扩展展为为字字指指令令,它它是是将将AL 中中的的符符号号扩扩展展到到AH的的所所有有位位去去,C

64、WD是是扩扩展展为为双双字字指指令令,它它是是将将AX的的符符号号(第第15)扩扩展展到到DX的的所所有有位位去去,例例如如AL中中的的内内容容为为-2,执执行行CBW后后 AH AL 1111111111111110=-2陋吕恬车锰锐瞻蹬哉府诫香移环讽肌馒银情檀湖绚妙杖输随秒愚艰戮起搬第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件下面是一个四则运算的例子:下面是一个四则运算的例子: 设设BH=FB(即(即-5) BL=FE(-2) CH=(-20) CL=05 计算计算(BH*BL)+(CH/CL) AX MOV AL, BH ; AX=FB IMUL BL

65、 ; AX=000A=-5(-2) MOV DX,AX ; 暂时保存结果暂时保存结果 MOV AL,CH ; AX=00EC(-20) CBW ;AX=FFEC,扩展为双扩展为双 字节字节 IDIV CL ; AX=00FC(-4) CBW ; AX=FFFC ADD AX、DX ; AX=0006=+6 蒂竣汲协隐永骤弗麦莆底裴贝深计扇织贼流赐杂游哉嗽湃厌挥耪层砖讫兴第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件6十进调整指令/(1 1)DAADAA指令指令/(2 2)AAAAAA指令指令/(3 3)DASDAS和和AAS AAS 指令指令/(4 4)AAM

66、AAM与与AADAAD指令指令舅眷铱怯为曝衰瓮末货披凳攘墟闸曾躺刺肤说芯圆助遥招俏索云槛沸鸟擎第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件(1)DAA指令当当BCD码码的的十十进进制制运运算算用用二二进进制制进进行行时时,有有两两种种情情况况需需要要进进行行调调整整:1、运运算算的的结结果果出出现现非非法法的的BCD码码(即即大大于于的的数数);2、运运算算产产生生半半字字节节间间的的进进位位。调调整整的的方方法法是是加加6进进行行修正。修正。DAA指指令令就就是是按按上上述述原原则则进进行行十十进进制制调调整整的的,它它是是一一条条无操作数指令,与无操作数

67、指令,与ADD指令配合实现压缩型十进制加法。指令配合实现压缩型十进制加法。份夜战慧咖撤丙逻秒惺辽轨佩岛瞬帖瘫捉操耻更耻燕韭掠般伯艰困统盯源第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件(2)AAA指令AAAAAA是是非非压压缩缩型型十十进进制制加加法法调调整整指指令令,它它的的作作用用是是将将ALAL中中的的数数换换成成一一个个非非压压缩缩型型十十进进制制数数,即即AAAAAA指指令令执执行行时时,检检查查ALAL的的低低4 4位位,若若是是一一个个合合法法的的BCDBCD码码,则则清清除除ALAL的的高高4 4位位,否否则则按按上上述述修修正正原原则则进进行

68、行低低4 4位位修修正正,并并将将ALAL的的高高4 4位位清清零零。例例如如ALAL中中的的内内容容为为00001001=900001001=9,CLCL的的内内容容为为00001000=800001000=8,执执行如下指令:行如下指令:ADD AL,CLADD AL,CLAAAAAA执执行行ADDADD后后,ALAL中中的的内内容容为为0001000100010001,因因AF=1AF=1,故故AAAAAA指指令令进进行行调调整整,将将ALAL中中的的低低4 4位位加加6 6,即即变变成成0001011100010111,然然后后高高4 4位位清清零零成成为为00000111000001

69、11,并并且且AHAH加加1 1,因因此此AHAH中中为为0000000100000001,ALAL中为中为0000011100000111,得到两个非压缩型十进制数。,得到两个非压缩型十进制数。粳尿织求瘫固劫竹侩邪二宰叶浴阴麓濒轰段考债棒责另大忻疯泵根版关办第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件(3)DAS和AAS 指令DASDAS是是压压缩缩型型十十进进制制数数减减法法调调整整指指令令,AASAAS是是非非压压缩缩型型十十进进制制数数减减法法调调整整指指令令,它它们们同同ADDADD和和AAAAAA指指令令一一样样,不不要要操操作作数,且假定要调整

70、的数在数,且假定要调整的数在ALAL中。中。DASDAS的的调调整整过过程程是是:若若ALAL的的低低4 4位位大大于于9 9或或AF=1AF=1,则则从从AFAF中中减减去去6 6,并并置置AF=1AF=1,若若ALAL的的高高4 4位位大大于于9 9,或或CF=1CF=1,则则从从ALAL中高中高4 4位减去位减去6 6,并置,并置CF=1CF=1,如用下述指令:,如用下述指令:SUB SUB ALAL,BL BL ;ALAL中中的的数数(压压缩缩的的BCDBCD码码)减减去去BLBL(压缩的(压缩的BCDBCD码)码)DAS DAS ;调整结果,;调整结果,ALAL中为正确的码。中为正确

71、的码。 AASAAS指指令令将将ALAL中中的的内内容容调调整整成成非非压压缩缩型型十十进进制制码码,即即如如果果ALAL低低4 4位位大大于于9 9,或或AF=1AF=1,则则减减去去6 6,AHAH减减1 1,并并置置AF=1AF=1,CF=1CF=1,并清除,并清除ALAL高高4 4位。位。耍浪礁缩酪福注盛些誉勃凹氧玫螺甭党肤咙抿辐粥拧敬箕寨刷唾艾壬挝凌第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件(4)AAM与AAD指令AAM是是非非压压缩缩型型十十进进制制乘乘法法调调整整指指令令,它它与与指指令令配配合合使使用用,把把中中的的两两个个非非压压缩缩型型

72、十十进进制制数数相相乘乘所所得得结结果果加加以以校校正正。AAM指令必须跟在指令必须跟在MUL指令后。指令后。AAD是是非非压压缩缩型型十十进进制制除除法法调调整整指指令令,它它要要在在执执行行除除法法之之前前使使用用,它它是是将将非非压压缩缩十十进进制制表表示示的的被被除除数数换换成成第第二二进进制制值值送送到到AL中中,即即AAD将将被被除除数数高高位位(AH)乘乘10,然然后后加加到到低位(低位(AL)上,并将)上,并将AH清零,清零,ADD用法如下所示:用法如下所示: AAD ;将非压缩型十进制数调整;将非压缩型十进制数调整 DIV BL ; 完成除法。完成除法。买噪验穷龋挟道勿偶胀挑

73、湿仑医睛粹么膏醋拘阔培肛箩捐犹批沧鸽礁曰抡第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件第四节逻辑运算指令8086/80888086/8088逻逻辑辑运运算算指指令令组组包包括括逻逻辑辑运运算算指指令令、移移位位指指令令和和循循环环移移位位指指令令。它它们们是是对对寄寄存存器器或或存存储储单单元元进进行行位位操操作作的的指指令令,也也称称位位操操作作指指令令。逻逻辑辑运运算算指令如表指令如表5.4.15.4.1所示所示. .一、逻辑运算指令一、逻辑运算指令二、移位指令二、移位指令三、循环指令三、循环指令垣慎胆旺允藏烬域幢召遁对钝戮含乾漱为赵萍柄弄犹苟运靛抉亢摘

74、涡热穗第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件漾章鸽灾容谴处殊糠漓醉戊窍娥膝寿虹葫朋矮耪翠徊遏璃磁棒旋翻五扫献第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件一、逻辑运算指令1 1、NOTNOT指令指令 这这条条指指令令对对原原操操作作数数求求反反,然然后后再再送送回回原原操操作作数数。指指令令格式为:格式为: NOT src ; src NOT src ; srcsrcsrc,这条指令对标志位无影响。,这条指令对标志位无影响。 贮致袖缎辜菏违那焦冷曰敲蘸纹岛滤斡徒轨冲盂典擅巩攘磕帅梳控烙珠葵第五章80868088指令系统

75、ppt课件第五章80868088指令系统ppt课件2、AND指令这条指令对两个操作数按位进行逻辑这条指令对两个操作数按位进行逻辑“与与”运算。运算。与与运运算算通通常常用用符符号号“X X”或或“ ”或或“. .”来来表表示示,它它的的运运算算规则为:规则为:00=0 01=0 10=0 11=1 00=0 01=0 10=0 11=1 ANDAND指指令令可可以以进进行行字字节节操操作作,也也可可以以进进行行字字操操作作。指指令令的一般格式为:的一般格式为:AND dst, src; dstAND dst, src; dstdstsrc dstsrc 其其中中目目的的操操作作数数可可以以用用

76、累累加加器器,也也可可以以是是任任意意一一通通用用寄寄存存器器,也也可可以以是是各各种种寻寻址址方方式式的的存存储储器器操操作作数数。原原操操作作数数可可以是立即数,寄存器和各种寻址方式的存储器操作数。例如:以是立即数,寄存器和各种寻址方式的存储器操作数。例如:秧实嫉兑粪薪凋妥臂详药香鹰暂吭维共禹刷哑厄贰沽埔茵昧渍冲丙礁灰弟第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件 AND AX, BX AND AX, BX AND AL, F0H AND AL, F0H AND SI, BP AND SI, BP AND DATA AND DATAWORD, AXWOR

77、D, AX AND AX, AX AND AX, AX某某个个操操作作数数与与本本身身进进行行“与与”运运算算,操操作作数数不不变变,但但可可以以是进位标志位是进位标志位CFCF清清“0 0”。ANDAND指令常用与屏蔽(清除)操作数的指定位。例如:指令常用与屏蔽(清除)操作数的指定位。例如: AND AX, OFFH AND AX, OFFH结果结果AHAH被清被清“0 0”,而,而ALAL值不变。值不变。遭产主樱夏叁蚤掠闷显鄙缔嘲湘俗摧驼丛毁气滞期蜘压渺熙唾峭魄异诞匠第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件3、OR指令这这条条指指令令对对两两个个操操

78、作作数数控控位位进进行行逻逻辑辑“或或”运运算算,结结果果送送回回目目的的操操作作数数。或或运运算算通通常常用用符符号号“+ +”或或“ ”表表示示,它它的的运运算规则为:算规则为:0v0=0 0v0=0 0v1=1 0v1=1 1v0=1 1v0=1 1v1=1 1v1=1 OROR指指令令可可以以进进行行字字节节操操作,也可以进行字操作。指令的一般格式为作,也可以进行字操作。指令的一般格式为 OR dst ,src ; dstOR dst ,src ; dstdstsrcdstsrc其中的目的操作数河源操作数,其中的目的操作数河源操作数, 与与ANDAND指令相同。指令相同。某某个个操操作

79、作数数本本身身进进行行或或运运算算,操操作作数数不不变变,但但可可以以是是进进位标志位位标志位CFCF清清“0 0”。例如:。例如:OR AX , AXOR AX , AX操作的结果是:操作数不变,但使操作的结果是:操作数不变,但使CFCF清清“0 0”。狐毫树呼羊侵乙塔窖贵汛原周最丸享得浸形亲膨柴阿趣万论酝晶伯郡张胆第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件4、XOR指令 XOR指指令令用用于于异异或或操操作作,将将源源操操作作数数与与目目的的操操作作数数做做异异或或运运算算,然然后后送送目目的的操操作作数数。异异或或运运算算通通常常用用符符号号表表示示

80、,它的运算规则为:它的运算规则为:00=0 01=110=1 11=0运运算算的的结结果果相相当当于于二二个个一一位位的的二二进进制制数数做做加加法法的的结结果果(进位丢掉),所以又把异或运算称为(进位丢掉),所以又把异或运算称为“按位加按位加”。 XOR dst, src ;dst dstsrc 其中,目的操作数和原操作数与其中,目的操作数和原操作数与AND指令相同。指令相同。 宠列丰恶辙禁单代柄刁化赞坠蔗凑砂听胃篇谣粟烁登寓鄙褒汉哮译啮挝文第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件XOR 指令可用对数据指定位进行求反。指令可用对数据指定位进行求反。XO

81、R AL, OFFH则将则将AL 中所有位求反。中所有位求反。某操作数与其本身进行异或运算可使操作数和进位志位某操作数与其本身进行异或运算可使操作数和进位志位CF都清都清“0”。例如:。例如:XOR AX,AXNOT、 AND 、OR 、 XOR指令都是按位操作的逻辑运指令都是按位操作的逻辑运算指令,运算结果算指令,运算结果影响标志寄存器部分标志位。影响标志寄存器部分标志位。鞍拱获盔敞粪逻呢决枢胚运凤篱蛆淮铱裹剁桶报影倡貌祸岂穴牙弘浊纶疆第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件5、TEST指令TEST指指令令是是一一条条测测试试指指令令,它它执执行行的的

82、操操作作与与AND相相同同,不过它不回送结果。不过它不回送结果。只只影影响响标标志志位位,该该指指令令常常与与条条件件转转移移指指令令配配合合使使用用,以以决定程序的转移方向。决定程序的转移方向。宵协烙临段商湘晶镜尼可筷悯棠辖躺顽精祭捂名死撩蒲丽卜摧蚊牵裳笑旭第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件二、移位指令8086/8088有四条移为指令:有四条移为指令: 算术左移指令算术左移指令 SAL dst,cout 逻辑左移指令逻辑左移指令 SHL dst,count 算数右移指令算数右移指令 SAR dst,count 逻辑右移指令逻辑右移指令 SHR d

83、st,count 其其中中SAL与与SHL 指指令令功功能能完完全全相相同同。这这些些指指令令的的功功能能如如图图5.4.1。 移移位位指指令令可可将将通通用用寄寄存存器器或或存存储储单单元元的的8位位或或16位位的的数数左左移移或或右右移移,其其移移位位方方向向由由指指令令决决定定,移移动动位位数数由由指指令令中中的的计计数值所决定,计数值可以是数值所决定,计数值可以是1或存放在或存放在CL中的无符号数。中的无符号数。纬蹋靖危凌干庭江酱镇雇姜住暮烁匀碉聘捎蛋单狭量仍搜汾代燃亿甭拖讲第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件烬掌溅玩宣叔增畜执锌兢姚啮斑抢萌

84、铃翅密帛搞抑圃午愉君靛辰打由钵锻第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件这些移位指令如下所示。例如:这些移位指令如下所示。例如:MOV DMOV D,1 1将将D D中的数逻辑右移中的数逻辑右移1 1位,位,D D可以是寄存器或存储器单元。可以是寄存器或存储器单元。当要移多位时,则可用当要移多位时,则可用CLCL作移位计数器,例如:作移位计数器,例如:MOV CLMOV CL,2 2SHL BLSHL BL,CLCL;将;将BLBL中的低中的低4 4位左移到高位左移到高4 4位,低位,低4 4位变为位变为0 0。常常利利用用移移位位指指令令,作作快快速速

85、的的乘乘除除法法,例例如如:某某数数乘乘4 4或或除除4 4的的运算。运算。MOV CLMOV CL,2 2SHL AX SHL AX ,CL CL ;AXAX中的无符号数乘中的无符号数乘4 4SAL AXSAL AX, CL CL ;AXAX中带符号数乘中带符号数乘4 4SHR AXSHR AX, CL CL ;无符号数除以;无符号数除以4 4SAR AXSAR AX, CL CL ;带符号数除以;带符号数除以4 4殃货锚渺碴滩她蔬奎潜辰疾负荆藐赁藤眠变藏蹦瓶股若帜骤影丛陋舜趟己第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件使用移位指令作乘除法,要比用乘除指

86、令快得多,比如使用移位指令作乘除法,要比用乘除指令快得多,比如实现实现AXAX乘乘1010: MOV BX MOV BX,AX AX ;保存;保存AXAX MOV CL MOV CL,2 2 ;移为两次(乘;移为两次(乘4 4) ADD AX ADD AX,BX BX ;加上原来的;加上原来的AXAX SHL AX SHL AX,1 1 ;AXAX移位一次(实现乘移位一次(实现乘1010)涧猫摸揉浴点妄株饰搏朽卧铭给彬易不桩忠利渭阴扒贤鄂鸥看逻槛且厢嗓第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件三、循环指令8086/80888086/8088有四条循环指令:

87、有四条循环指令: 循环左移指令循环左移指令 ROL dst,count ROL dst,count 循环右移指令循环右移指令 ROR dst,count ROR dst,count 带进位位循环左移指令带进位位循环左移指令 RCL dst,count RCL dst,count 带进位位循环右移指令带进位位循环右移指令 RCR dst,count RCR dst,count 前前两两条条指指令令未未把把标标志志位位CFCF包包括括在在循循环环的的环环中中,而而后后两两条条指指令令把把CFCF包包括括在在循循环环中中,作作为为整整循循环环的的一一部部分分。循循环环指指令令的的功功能如图能如图5.

88、4.25.4.2所示。所示。 循循环环指指令令可可以以对对字字节节操操作作,也也可可以以对对字字操操作作。操操作作数数可可以以是是寄寄存存器器操操作作数数,也也可可以以是是内内存存操操作作数数。循循环环方方向向由由指指令令决决定定。循循环环移移动动的的位位数数由由指指令令中中的的计计数数值值决决定定,计计数数值值可可以以是是1 1或存放在或存放在CLCL中的无符号数中的无符号数。嫡赏办旬搏狙疡浓跺袭节否锌眩阵锭薯翁慰侣财逗淫烟垦喀韵桃娟枢朱赋第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件梅疾鞋靠哆催方命豆向淄烩孰擒哇钞拍晨怪臻饯盐惹错决红换谬众牛喷且第五章80

89、868088指令系统ppt课件第五章80868088指令系统ppt课件第五节控制转移指令8086/8088 有四类转移指令:有四类转移指令: (1)转移指令,包括无条件转移和条件转移指令。转移指令,包括无条件转移和条件转移指令。 (2)重复控制指令重复控制指令 (3)调用和返回指令调用和返回指令 (4)中断指令中断指令 8086/8088 使使用用CS 段段寄寄存存器器和和IP 指指令令指指针针寄寄存存器器的的值值来来寻寻址址,以以取取指指令令来来执执行行 ,转转移移指指令令则则可可改改变变CS与与IP的的值值或或仅仅改改变变IP 的的值值,使使得得改改变变指指令令执执行行的的顺顺序序,转转移

90、移指指令令如表如表5.5.1所示指令中的所示指令中的 Target 表示转移的目标。表示转移的目标。 这这些些指指令令都都将将引引起起程程序序执执行行方方向向的的转转移移,不不过过转转移移又又段段内内转转移移和和段段间间转转移移之之分分,所所谓谓段段内内转转移移是是指指段段地地址址不不变变,只只是是IP改变,而段间转移则改变,而段间转移则CS和和IP均发生改变。均发生改变。栈尧处碱荷缠流绑妹汕墨栋炊待穗抗俘街愁纠冈衔狸成祥焚鹅祟碘泽挚锻第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件膘吞鞘羞敖氟监涂掂个汝磁谎僚晕爵揽邻臂牙盅邱孺锰重突捶腋搪锭扒我第五章80868

91、088指令系统ppt课件第五章80868088指令系统ppt课件站拧宫谎序摘贩显褒晾桐委虏葬玛秸唯栈废诡级鹿艰蔡期玻秩橡婆扭肛播第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件一、转移指令转移指令分无条件转移和条件转移指令转移指令分无条件转移和条件转移指令1.无条件转移指令无条件转移指令无条件转移指令格式为:无条件转移指令格式为: JMP TARGET JMP 转转移移指指令令分分直直接接转转移移和和间间接接转转移移,直直接接转转移移又又分分短短程程(SHORT),近近程程(NEAR)和和远远程程(FAR) 三三种种形形式式,当当程程序序中中执执行行到到JMP

92、指指令令时时,执执行行就就无无条条件件转转移移到到JMP所所指指的的目目标标(TARGET)去去,目目标标可可以以是是一一个个标标号号指指出出的的直直接接转转移移地地址址, 如如 : JMP SUM它它指指出出无无条条件件转转向向SUM 地地址址(是是段段内内转转移移)目目标标也也可可以以是是用用NEAR或或FAR 进行说明,例如:进行说明,例如:排将夹疽挖靶上意词答徒抢哗挽殖蠕啡枉聋锭阂宦阑甫硼蚤麓嫉玄械握圃第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件 JMP FAR LABEL 说明说明LABEL 不在现行段内,则是段间转移。不在现行段内,则是段间转移。

93、 如如果果目目标标与与JMP 指指令令的的距距离离在在-128到到+127个个字字节节之之间间,则则可可用用SHORT 来来说说明明 ,表表示示为为短短程程转转移移,这这种种格格式式,由由于于目目标标用用位位移移表表示示(一一个个字字节节),所所以以指指令令节节省省一一个个单单元元,若若是是目目标标用用地地址址表表示示,则则需需两两个个字字节节,当当目目标标前前不不用用NEAR说说明明时,隐含着时,隐含着NEAR型的段内转移。例如:型的段内转移。例如: JMP SHORT NEXT;短程转移;短程转移 JMP LOOPL ;近程转移;近程转移JMP指指令令中中的的目目标标也也可可以以是是由由存

94、存储储器器或或寄寄存存器器指指出出的的间间接接转转移地址,例如:移地址,例如: JMP TARGET BX;转移地址由;转移地址由BX及及TARGET变变 ;址计算得到;址计算得到 JMP CX ;以;以CX的内容位转移目的地的内容位转移目的地 ;址;址敖酱矽函互谴钡闸余邯伙果葱瓷爹汇皱京铡毁氰萌色坟察姜惶罕裁垂扬傲第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件2.条件转移指令8086/8088有有18条条不不同同的的条条件件转转移移指指令令。它它是是根根据据标标志志寄寄存存器器的的标标志志位位决决定定程程序序是是否否进进行行转转移移,条条件件转转移移指指令令

95、的的目目的的地地址址必必须须在在现现行行的的代代码码段段内内(CS)中中,并并且且以以下下一一条条指指令令地地址址为为基基准准,必必须须在在+127到到-128的的位位移移范范围围内内,因因此此条条件件转转移移之之零零转转移移的的范范围围是是有有限限的的,而而不不像像JMP指指令令。条条件件转转移指令如表移指令如表5.5.1所列。所列。从从表表种种可可看看出出条条件件转转移移指指令令有有时时根根据据两两数数比比较较结结果果来来进进行行转转移移,有有时时指指明明测测试试某某些些标标志志未未来来决决定定转转移移,但但有有时时两两条条指令时实质上是一致的。如:指令时实质上是一致的。如:JE/JZ S

96、UM;JE指指令令的的含含义义若若两两数数相相等等则则转转SUM,而而JZ指令的含义是若标志位指令的含义是若标志位ZF=1则转则转SUM。误菇茵豺窟乓筋浸家玖浅牢卤弊裕捂童淑音痰屯疼甄讯鲍志逻驼妈厌邢置第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件使用条件转移指令时,经常在该指令之前用一条比较指使用条件转移指令时,经常在该指令之前用一条比较指令或减法指令,以建立标志位,然后由条件转移指令进行判令或减法指令,以建立标志位,然后由条件转移指令进行判断是否转移。断是否转移。条件转移指令由对带符号数比较或测试的指令,这常对条件转移指令由对带符号数比较或测试的指令,这常

97、对溢出为溢出为OF或符号为或符号为SF及逆行测试,对无符号数则常测试及逆行测试,对无符号数则常测试CF,对带符号数由大于等于小于三种情况,无符号数则有高于,对带符号数由大于等于小于三种情况,无符号数则有高于等于低于三种情况。等于低于三种情况。噪喜蹲等袭痊秒陪届澎菜酣廓华堡婪穆坍洲菜紫目槽赤腑尽瞻皇陪惜激块第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件二、重复控制指令8086/8088有有三三条条控控制制重重复复控控制制指指令令:LOOP、LOOPZ(LOOPE)、LOOPNZ(LOOPNE),还还有有一一条条通通常常用用于于循循环环控控制制的的条件转移指令条件

98、转移指令JCXZ。1 1、LOOPLOOP、LOOPZLOOPZ、LOOPNZLOOPNZ指指令令2 2、JCXZ JCXZ 指令指令兔痊财歪桐性狰瓣百遇巳宦埠裙隐爹垫肉胞阮窟厚界觅塔层锻尘哺察衔戌第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件1、LOOP、LOOPZ、LOOPNZ指令这这类类指指令令用用于于控控制制程程序序的的循循环环,其其控控制制转转向向的的目目的的地地址址是是在在以以下下条条指指令令地地址址为为中中心心的的+127到到-128的的范范围围内内,这这类类指指令令用用CX 作作计计数数器器,每每执执行行该该指指令令,CX便便减减1,直直到到减

99、减为为0为止。为止。例例如如用用LOOP时时,规规定定循循环环次次数数放放在在CX中中,每每LOOP指指令令一一次次,则则CX减减1,若若CX不不等等于于0,则则转转向向目目的的地地址址执执行行,如如此此重重复复直直到到CX减减为为0为为止止,例例如如要要重重复复执执行行某某一一程程序序段段100次,可用下面的程序:次,可用下面的程序: MOV CX,100;100次输送次输送CX START: . . ;要执行;要执行100次的程序段次的程序段 LOOP START ;CX0,转,转START执行执行 . . ;CX=0,往下执行,往下执行阵看娇违抓蘑妒熬危企帐线驶砷屿宾倚蕴炯好埂酞支盾圭辫

100、赠行冲匹恕冻第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件在在循循环环过过程程中中,常常根根据据循循环环内内出出现现的的情情况况来来终终止止循循环环,若若相相等等则则循循环环,这这可可用用LOOP指指令令,若若不不相相等等则则循循环环,这这可可用用LOOPNE指指令令,前前者者,是是当当CX不不等等于于零零,ZF=1时时则则循循环环,后后者者是是CX不不等等于于零零 ZF=0时时则则循循环环。当当两两个个中中的的一一个个条条件件满满足一个不满足时,则终止循环。足一个不满足时,则终止循环。例例如如在在指指定定的的存存储储区区中中,找找第第一一个个非非零零字字节节

101、 ,设设存存储储区区开开始始单单元元的的偏偏移移地地址址在在BX中中,最最后后单单元元的的偏偏移移地地址址在在DI中中,若若找找到到非非零零字字节节,则则其其偏偏移移地地址址在在BX中中,若若没没找找到到则则BX与与DI相等,表示已找到最后单元。相等,表示已找到最后单元。摆掇旁治未戍歪套叠暖渭昨糖扣偷识研陈孕瘁显走或纹秉遭隆龄雀斋读陀第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件 SUB DI SUB DI,BX BX INC DI INC DI ;字节数;字节数=(DI)-(BX)+1=(DI)-(BX)+1 MOV CX MOV CX,DI DI ;字节数

102、送;字节数送CX CX DEC BX DEC BX NEXTNEXT: INC BX INC BX CMP BYTEPTRBX CMP BYTEPTRBX,0 0 ;与;与0 0比较比较 LOOPE NEXT LOOPE NEXT ;是;是0 0,去比较下一个,去比较下一个 JNZ NZ_FOUND JNZ NZ_FOUND ;找到否,即;找到否,即ZF=0?ZF=0? . . ;没找到;没找到NZ_FOUNDNZ_FOUND: ;找到,;找到,BXBX中为非零字节中为非零字节 .湃扯橇僳玉镜患娠升情键勿衬娃掐氖刑恶嫌朽患汹傻量色虏吸怪矢兜龋蝉第五章80868088指令系统ppt课件第五章80

103、868088指令系统ppt课件2、JCXZ 指令这这条条指指令令也也是是一一条条转转移移指指令令,它它的的转转移移条条件件是是CX=0。这这条条指指令令在在循循环环程程序序的的开开始始处处,为为了了能能跳跳过过循循环环(只只要要是是CX=0)是有用的。是有用的。仅李佃搏扶芒动蛤杖笔睦损纲芬控补个哄匈否裁梆枚姥奔翰棕俊刚纫埔特第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件三、调用和返回指令 CALL、RETCALL 指指令令用用来来调调用用一一个个过过程程或或者者程程序序。当当调调用用的的过过程程或或子子程程序序结结束束后后,使使用用RET 指指令令返返回回,由

104、由于于过过程程或或子子程程序序由由段段间间调调用用(即即远远程程FAR)和和段段内内调调用用(及及近近程程NEAR)所所以以CALL也也有有FAR和和NEAR之之分分,这这由由被被调调用用的的过过程程的的定定义义所所决决定,因此定,因此RET也有段间和段内返回两种。也有段间和段内返回两种。当当段段内内调调用用时时,首首先先将将IP内内容容入入栈栈。当当返返回回时时,从从站站内内取取出出一一个个字字并并放放回回到到IP中中,若若段段间间调调用用时时,则则先先把把CS入入栈栈,在在把把IP如如战战,RET返返回回时时,在在从从栈栈中中去去回回一一个个字字放放入入IP中中,然后从栈中取第二个字放入然

105、后从栈中取第二个字放入CS中,作为段间返回地址。中,作为段间返回地址。训细油擦拱刊金峻丰锚剪贺殴母总灰扇昂涟勺锅诛苟四岗紧槽胡殖疼朱街第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件象象JMP指令一样指令一样CALL指令也有两种得到目标地址的办法:指令也有两种得到目标地址的办法:直接和间接。直接调用目标地址在直接和间接。直接调用目标地址在CALL指令中,间接调用指令中,间接调用目标地址在由指令指定的寄存器或内存单元中。目标地址在由指令指定的寄存器或内存单元中。汽挫副唾健霹孰卜髓猴炯押营拒宾缸录赞唤浅愤没驮及偶疥苗逗答垣歇迫第五章80868088指令系统ppt课件

106、第五章80868088指令系统ppt课件四、中断指令8088提供三条中断传送操作指令:提供三条中断传送操作指令: 中断指令中断指令 INT n 溢出中断指令溢出中断指令 INTO 中断返回指令中断返回指令 IRET 在在8086/8088中中,程程序序的的执执行行控控制制可可以以采采用用软软中中断断的的方方式式。当当程程序序中中遇遇到到中中断断指指令令时时,中中止止现现行行程程序序,保保护护断断点点和和现场后,转去执行。现场后,转去执行。荫镊穴疲蝉移丈浇乾蹦记垄顶挤痢仁桥峙惕怒部询悟耙讶憋嘻固肯坞尉钎第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件1、INT n

107、指令这这条条指指令令启启动动在在指指令令中中的的中中断断类类型型号号(n)规规定定的的中中断断过过程程。8088采采取取向向量量中中断断,中中断断类类型型号号0255,规规定定了了256个个中中断断向向量量。每每个个中中断断向向量量包包括括了了四四个个字字节节的的中中断断程程序序的的入入口口地地址址。其其中中,有有两两个个字字节节是是中中断断程程序序的的代代码码段段值值,另另两两个个字字节节是是中中断断程程序序入入口口地地址址偏偏移移量量。这这256个个入入口口地地址址组组成成一一个个表表叫叫中中断断向向量量表表,存存放放在在存存储储器器绝绝对对地地址址00000H到到003FFH中。中。关关

108、于于8088中中断断系系统统的的介介绍绍请请参参阅阅第第七七章章,当当程程序序中中遇遇到到中中断断指指令令INT时时,便便中中断断程程序序的的执执行行,而而转转向向由由256个个中中断向量提供的地址之一去执行。例如:断向量提供的地址之一去执行。例如: INT 1AH此此时时程程序序将将转转向向IA型型中中断断服服务务程程序序执执行行,此此时时中中断断向向量量地地址址为为41AH=68H,即即从从68H和和69H单单元元中中取取出出IP的的值值,从从6AH和和6BH取出取出CS的值,然后转向该地址执行中断服务程序。的值,然后转向该地址执行中断服务程序。蝗性蔓穷泅肌强夯彪浚珠售敌暗足炬碗伊餐掺写厚

109、筛应刮吸赵惭筒利帜佯第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件2、INTO指令和IRET指令INTO指指令令可可以以写写在在一一条条算算数数指指令令的的后后面面,若若算算数数运运算算指指令令执执行行的的结结果果溢溢出出,及及溢溢出出标标志志OF=1,则则转转向向溢溢出出中中断断处理;否则不进行任何操作,接着执行下一条指令。处理;否则不进行任何操作,接着执行下一条指令。 IRET指令的作用是:当执行完中段服务程序后,返回主指令的作用是:当执行完中段服务程序后,返回主程序。程序。咆弘迈刚托歌捻尊腮中啄胁汤球勃帐壳鸡专橇捍谷浇左感舰揽耶围铂悸幂第五章808680

110、88指令系统ppt课件第五章80868088指令系统ppt课件第六节字符串指令存存储储器器中中存存放放的的一一串串字字或或字字节节,它它们们可可以以是是二二进进制制数数,也也可可以以是是BCD码码或或ASCII代代码码等等相相关关的的一一些些信信息息。它它们们存存放放在在连连续续区区域域中中,若若对对它它们们的的每每个个字字或或字字节节均均作作同同样样的的操操作作,就就称称为为串串操操作作。我我们们把把能能够够完完成成这这些些功功能能的的指指令令,称称为为字字符符串操作指令或简称为字串指令这些指令如表串操作指令或简称为字串指令这些指令如表5.6.1所列。所列。氰揩明杂桔龟杜亚竭收析宝票祸巴宾特

111、炎蒸良褥岁钵酌惯陷索余途瓶绳尿第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件抢仓殴盟姑助垢滋孵寺似鸽瘫亿将哨豁峰扒邀房揽著廖涧垫集冻岛夷荔船第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件此此表表中中每每一一类类指指令令的的第第一一个个均均带带有有操操作作数数,汇汇编编时时,汇汇编编程程序序均均将将其其转转换换为为后后面面中中的的一一个个(根根据据是是字字节节还还是是字字操操作),因此多使用后面的两种形式作),因此多使用后面的两种形式在在字字串串操操作作中中假假定定源源串串在在数数据据中中,目目的的串串在在附附加加段段中中,用用

112、作作指指针针对对源源寻寻址址,用用作作指指针针骒骒目目的的串串寻寻址址,在在每每次次字字串串操操作作后后,若若是是字字节节操操作作,则则和和(或或)的的值值会会自自动动加加或或减减,若若是是字字操操作作,则则和和(或或)自自动动加加或或减减,是是加加还还是是减减由由标标志志寄寄存存器器的的方方向向标标志志位位决决定定,若若:则则作作加加,否否则则,作作减减操操作作在在串串操操作作前前可可用指令来设置,用指令来清用指令来设置,用指令来清搪是补秒插访罪殃湍缓遵辑伞儒铺平富融海璃抢俗阻阜璃嗓邱淀惨违社关第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件一、串操作指令有有

113、五五种种基基本本的的串串操操作作指指令令:串串传传送送指令,串比较指令,串扫描指令,串装入指令和串存储指令。指令,串比较指令,串扫描指令,串装入指令和串存储指令。是是串串传传送送命命令令。它它将将把把当当前前数数据据串串中中用用指指出出的的源源串串的的一一个个字字节节或或一一个个字字传传送送到到用用指指针针指指向向的的附附加加段段目目的的地地址址去去,当当,则则、作减或减。、作减或减。是是串串比比较较命命令令。它它是是将将当当前前数数据据段段由由指指针针指指出出的的字字节节或或字字当当前前附附加加段段指指出出的的字字节节或或字字进进行行比比较较,把把比比较较结结果果送送标标志志寄寄存存器器,而

114、而不不影影响响两两个个操操作作数数。所所谓谓的的操操作作数数中中减减去去源源操操作作数数,因因此此两两者者对对标标志志位位的的影影响响将将是是不不同同的的,因因此此若若该该指指令令后后面面用用条条件件转转移移指令,则应和的不同指令,则应和的不同扼躲憾拟沾溯镐娥厦晃醒搪惦奇耗李穿廓上执迄撑缎抢绝夯络无缝仆书林第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件该该指指令令执执行行过过后后,也也将将使使、加加减减或或,这这根根据的值决定。据的值决定。是是字字串串扫扫描描指指令令。它它是是将将(字字节节串串操操作作)或或(字字串串操操作作)的的值值减减去去在在附附加加段段

115、中中由由寻寻址址的的目目标标串串的的字字节节或或字字,结结果果将将改改变变标标志志寄寄存存器器的的标标志志位位,但但不不改改变变操操作作数数的的原原始始值值,并并将将使使修修改指针,修改情况如上所述,由的值决定。改指针,修改情况如上所述,由的值决定。是是字字串串装装入入指指令令。它它将将由由寻寻址址的的源源串串字字节节或或字字装装入入到到累累加加器器或或中中去去,且且根根据据的的值值,修修改改的的值值,以以指指向向下下一一个个要要装装入入的字节或字。的字节或字。是是字字串串存存贮贮指指令令。它它是是将将(字字符符串串操操作作)或或X(字字串串操操作作)中中的的字字储储存存到到由由寻寻址址的的附

116、附加加段段中中去去,且且根根据据的的值值来来修修改改的的值。值。向怒鸡方咯泽辆奋傅纠诞玖艰责韵烹靡燃痔本旺用阳蛤腮皇阔凛某性德况第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件二、字符串指令的重复当当一一条条串串操操作作指指令令要要重重复复执执行行时时,可可以以指指令令前前加加前前缀缀,这些前缀是:这些前缀是: 重重复复,使使用用时时将将重重复复次次数数放放在在中中,这这样样当当指指令令执执行行每每重重复复一一次次,值值便便减减,直直到到减减到到目目前前为为止止为为止,便停止重复。止,便停止重复。是是相相等等时时重重复复不不相相等等时时重重复复,即即若若只只要要

117、和和不不减减到到0 0,串串指指令令就就重重复复执执行行,这这两两条条前前缀缀有有两两个个等等价价的的名名字字/ /,效效果果同同前。示例如下:前。示例如下:怒旷条叔伐缺骸纳纽裹俯颗雏祥饰访讫锈目朵辉毫墓肯伺皑灯怂威戌初充第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件将将1024个字符串从个字符串从DATA-A数据区般到数据区般到DATA-B数据区数据区: MOV SI,OFFSET DATA-A ;DATA-A偏移地址送偏移地址送SI MOV DI,OFFSET DATA-B ;DATA-B的偏移地址送的偏移地址送DI MOV CX,1024 ;传送次数送传

118、送次数送CX REP MOVS ;DATA-A,DATA-B 重复搬运重复搬运曳然奉源匝肃绚宇墙澈陋拱宦昭钠扰掠霉诗拣蚂粉挞蠕待鹅徐归浊钻悠诵第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件将当前数据段中的将当前数据段中的BLOCK1数据块搬到同一段中数据块搬到同一段中BLOCK2去去: PUSH DS POP ES ;使使ES=DS,即数据段和附加段为同一个。即数据段和附加段为同一个。 LEA SI,BLOCK1 ;源串地址送;源串地址送SI LEA DI,BLOCK2 ;目的串地址送目的串地址送DI MOV CX,0050H ;重复次数重复次数(80)送送C

119、X CLD ;使使DF=0,SI.DI作加作加2操作操作 REP MOVSW ;重复执行重复执行,直到直到CX=0为止为止泳附欺短锥羞咱潞投酪诡寝汇旱赐吱脆推芯段秀姓柏涯咒侈庄骇驮梆均窖第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件比比较较DESTDEST和和SOURCESOURCE中中的的500500个个字字节节, ,找找出出第第一一个个不不匹匹配配( (不不相相同同) )的字节的字节, ,如果找到如果找到, ,则将则将SOURCESOURCE中的这个数送到中的这个数送到ALAL中中: : CLD CLD LEA DI,ES:DEST ;DEST LEA D

120、I,ES:DEST ;DEST偏移地址送偏移地址送DIDI LEA SI,SOURCE ;SOURCE LEA SI,SOURCE ;SOURCE偏移地址送偏移地址送SISI MOV CX,500 ; MOV CX,500 ;重复次数送重复次数送CXCX REPE CMPB ; REPE CMPB ;重复比较不相等或重复比较不相等或CX=0CX=0停止比较停止比较 JCXZ MATCH ; JCXZ MATCH ;没找到转没找到转MATCHMATCH DEC SI ; DEC SI ;找到找到SISI,减,减1,1,恢复到找到时地址恢复到找到时地址 MOV AL,SI ; MOV AL,SI

121、;读到读到ALAL中中MATCH:MATCH: ; ;没找到,由此执行没找到,由此执行哄聘缨律铲桃埃殊音蛊烤躇擂使痪打炯换辟闽恨扦络测泳资塌碟哨逊砍电第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件第七节处理器控制指令8086/8088处处 理理 器器控控制制指指令令用用于于修修改改标标志志寄寄存存器器,或或与与外外部部设设备备同同步步,以以及及用用来来控控制制处处理理器器与与协协处处理理器器之之间间的的相相互互作作用用。这类指令如表这类指令如表5.7.1所列。所列。一、标志位操作指令一、标志位操作指令二、外部同步指令二、外部同步指令叙朵湍屎览垫挺棉屈军竭镀犊扇

122、畏魔念冠抢盅摄猜信钢挡缮邪蜡疏迫透陌第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件一、标志位操作指令8086/8088有有七七条条直直接接对对单单独独的的标标志志进进行行操操作作的的指指令令。其其中中三三条条是是针针对对进进位位标标志志CF,有有两两条条是是针针对对标标志志DF的的,有有两条是针对中断标志两条是针对中断标志IF的。的。标标志志位位操操作作指指令令用用于于改改变变档档志志位位的的状状态态,如如表表5.7.1中中操作说明所示。操作说明所示。薛滚洋补梆架软情川恢权估困疹嫌掀肤砰督透茨傈殃硼逢嫁助歧恤描崭梦第五章80868088指令系统ppt课件第五章

123、80868088指令系统ppt课件谗龄豁褥饯炼屎密弄绳府练介趾悬简峪憎筋泼堆槛睦秤框癸认瑚么垦伊琢第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件二、外部同步指令8088有五条外部同步指令。有五条外部同步指令。 HLT是是暂暂停停指指令令,将将使使8088处处于于暂暂停停状状态态,只只有有再再重重新新启启动动或或有有一一个个外外部部中中断断发发生生时时,则则退退出出暂暂停停状状态态,常常用用HLT指令来等待中断的产生。指令来等待中断的产生。NOP是是空空操操作作指指令令,什什么么也也不不作作,但但执执行行却却需需3个个时时钟钟周期,常用于延迟。周期,常用于延迟。

124、WAIT是是等等待待指指令令,它它也也使使8088处处于于空空操操作作状状态态,但但每每隔隔5个个时时钟钟周周期期要要检检查查一一下下8088的的TEST线线,若若该该线线为为人人1,则则使使8088处处于于等等待待,直直到到TEST线线为为0止止,这这主主要要用用于于8088和协处理器及外部设备实现同步。和协处理器及外部设备实现同步。LOCK指令是一个前缀,可放在任何一条指令的前面,指令是一个前缀,可放在任何一条指令的前面,套芥局烩藕雁蜒威松淫拖浩漱连沥念涅给桌讹朴焕收雏闷焉氓啥贱猜当合第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件这条指令执行时锁存了总线的控制权,其它的处理器这条指令执行时锁存了总线的控制权,其它的处理器则得不到总线控制权,这个过程一直持续到指令执行完毕则得不到总线控制权,这个过程一直持续到指令执行完毕为止,它在多机系统中使用。为止,它在多机系统中使用。ESC指令是处理器交权指令。它可使协处理器从指令是处理器交权指令。它可使协处理器从8088的指令流中取出一部分指令,并在协处理器上执行。的指令流中取出一部分指令,并在协处理器上执行。巍孵检傲氦看拂瞳酝丧俯轿箭趣豁似浑沁颈枢课渡噬逼跟吝诺贿抒强符彩第五章80868088指令系统ppt课件第五章80868088指令系统ppt课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号