《第3章8086寻址方式与指令系统课件.ppt》由会员分享,可在线阅读,更多相关《第3章8086寻址方式与指令系统课件.ppt(195页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统拙条委史赔蹄躁鹰桓拄块句秦旦唱瓮戏睁唤裙半别胞釜帛捶溅扯座及爸瞪第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统本章主要内容本章主要内容 概述概述1 8086寻址方式寻址方式2 8086指令系统指令系统3崭脏妖牺赦淤托誊骏冰孜靛朵占兹菏少蚤痹骇开禽吠猛秽销懦辽闯沫餐按第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统3.1 3.1 概述概述v指令是指挥计算机
2、进行操作的命令。指令是指挥计算机进行操作的命令。v指令系统是指微处理器能执行的各种指令的指令系统是指微处理器能执行的各种指令的集合。集合。v程序是一系列按一定顺序排列的指令。程序是一系列按一定顺序排列的指令。v执行程序的过程就是计算机的工作过程。执行程序的过程就是计算机的工作过程。v微处理器的主要功能由它的指令系统来体现。微处理器的主要功能由它的指令系统来体现。v不同的微处理器有不同的指令系统,其中每不同的微处理器有不同的指令系统,其中每一条指令对应着处理器的一种基本操作,这一条指令对应着处理器的一种基本操作,这在设计微处理器时确定。在设计微处理器时确定。潦之腮秋销捧晕漆固翱式邮锻曙爆镑称告牧
3、伊锄敦试能深载箩骗叛赚昏相第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统v通常一条指令包括两部分:通常一条指令包括两部分:操作码操作码:决定要完成的操作决定要完成的操作操作数操作数:指参加运算的数据或是该数所在的内存单元指参加运算的数据或是该数所在的内存单元的地址。的地址。v指令的一般格式如下:指令的一般格式如下:操作码操作码 操作数操作数1 1,操作数,操作数2 2,操作数,操作数nn没有操作数的指令称为没有操作数的指令称为无操作数指令无操作数指令。有两个操作数的指令称为有两个操作数的指令称为双操作数或二
4、地址指令双操作数或二地址指令。v操作码和操作数地址都由二进制数码表示,整条操作码和操作数地址都由二进制数码表示,整条指令以二进制编码的形式存放在存储器中。指令以二进制编码的形式存放在存储器中。折弦豁扼青光督羡症反干虑学服炬部锻剩威撅剩祖榴锥搪逗曝滦杜舜缺酿第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统指令系统与寻址方式的重要性指令系统与寻址方式的重要性v采用采用不同不同CPUCPU的计算机的的计算机的指令系统不同。指令系统不同。v采用采用不同不同CPUCPU的计算机的的计算机的指令的格式不同。指令的格式不同
5、。v采用采用不同不同CPUCPU的计算机的各指令允许的的计算机的各指令允许的寻址方式寻址方式不同不同。v要使用某种微处理器,必须先要掌握其指令系统要使用某种微处理器,必须先要掌握其指令系统和各指令允许的寻址方式。和各指令允许的寻址方式。洒培设尹事瞥玲铸雏骸顷沃隘衣集肝寞堆冀躯貌却惫餐棱崔酉猴饵饰友恃第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统3.2 80863.2 8086寻址方式寻址方式v寻址方式:寻址方式:指令中给出的求出操作数有效地址的方法。指令中给出的求出操作数有效地址的方法。v寻址操作:寻址操作
6、:计算机按照指令给出的寻址方式求出操作数有效地址计算机按照指令给出的寻址方式求出操作数有效地址的过程。的过程。掸嘶乃赎揪呐墩盆撑折闭洽永玖色颤弄阐顷蛀崩蛔最授刘啃皮米棉坎晨倒第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统808808的七种基本的数据寻址方式的七种基本的数据寻址方式v(1)(1)立即寻址;立即寻址;v(2)(2)寄存器寻址;寄存器寻址;v(3)(3)直接寻址;直接寻址;v(4)(4)寄存器间接寻址;寄存器间接寻址;v(5)(5)寄存器相对寻址;寄存器相对寻址;v(6)(6)基址变址寻址;基址变
7、址寻址;v(7)(7)相对基址变址寻址。相对基址变址寻址。存存储储器器寻寻址址方方式式涸舀弥督咙倾骸雹淑早陶老任螟块毅筏缴柏大桐藏麻纪扰牧琅赔得隆撤赞第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统3.2.1 3.2.1 立即寻址立即寻址v操作数直接出现在指令中,此时的操作数也叫立操作数直接出现在指令中,此时的操作数也叫立即数。即数。v立即数紧跟在操作码后面,一起存放在代码段中。立即数紧跟在操作码后面,一起存放在代码段中。v例如:例如:MOV AXMOV AX,2010H2010H在该指令格式中,在该指令格式
8、中,AXAX是目标操作数,是目标操作数,2010H2010H是源操作是源操作数。数。大亩粟拽桑佰庙别盯肌阂混密晦但衔非弥酣息渴棠盔缚假学睁雷倾庭剂昭第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统立即寻址方式的指令执行示意图立即寻址方式的指令执行示意图挂璃纪签讣软婿琳聋揭诲坪蚌滓界摔拇雕铆梆版逸回相徊攘扒剐直踩芒屯第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统立即寻址方式说明立即寻址方式说明v在所有的指令中,立即数只能作源
9、操作数,不能作在所有的指令中,立即数只能作源操作数,不能作目标操作数。目标操作数。v立即数应与目标操作数的长度一致。立即数应与目标操作数的长度一致。v立即数默认采用十进制形式,以十六进制形式出现立即数默认采用十进制形式,以十六进制形式出现的立即数应以字母的立即数应以字母H H为后缀,以八进制形式出现的立为后缀,以八进制形式出现的立即数应以字母即数应以字母Q Q为后缀。为后缀。v以十六进制形式出现的立即数,若以字母开头,则以十六进制形式出现的立即数,若以字母开头,则必须以数字必须以数字0 0为前缀。为前缀。v立即数还可以用表示立即数还可以用表示+、-、/表示的算术表达式,表示的算术表达式,也可以
10、用圆括号改变运算顺序。也可以用圆括号改变运算顺序。v立即数只能是整数,不能是小数、变量或其它类型立即数只能是整数,不能是小数、变量或其它类型的数据。的数据。亲假沃布治挠遇灼淳话盗暴周泳藏尽澳变槐糟纯坑遭搔奋槐妥礁诺森绥该第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统3.2.2 3.2.2 寄存器寻址寄存器寻址v操作数在寄存器中,在指令中指定寄存器号。操作数在寄存器中,在指令中指定寄存器号。v由于寄存器号短,因此,采用寄存器寻址方式由于寄存器号短,因此,采用寄存器寻址方式的指令的机器码长度短。的指令的机器码长
11、度短。v操作数在寄存器中,指令执行时,操作就在操作数在寄存器中,指令执行时,操作就在CPUCPU的内部进行,不需要通过访问存储器来取的内部进行,不需要通过访问存储器来取得操作数,因而指令的执行速度快。得操作数,因而指令的执行速度快。v在编程中,如有可能,应尽量在指令中使用这在编程中,如有可能,应尽量在指令中使用这种寻址方式。种寻址方式。v例如:例如:MOV AX MOV AX,2010H2010H葱畔夜爹雷察窒泛绊瓷怀喝彪鼎砰奥矗榔懂幅昧委庞沪甭大呻橱公篓畅寇第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统寄
12、存器寻址方式可用的寄存器寄存器寻址方式可用的寄存器v对于对于1616位操作数,寄存器可以是:位操作数,寄存器可以是:AXAX,BXBX,CXCX,DXDXSISI,DIDI,SPSP,BPBPCSCS,DSDS,SSSS和和ESESv对对8 8位操作数,寄存器可以是:位操作数,寄存器可以是:AHAH,ALALBHBH,BLBLCHCH,CLCLDHDH,DLDL柒跳碴打缺争莲有毛辈虱叹招顶爽哑汁秋崖锥构禾循矛跟驱泊兹酌子圈沸第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统寄存器寻址方式指令执行示意图寄存器寻址
13、方式指令执行示意图皆准脓虱搓掌夜马挨焰篷界诞宜救刹崇醇挡钳皇一贺其员谱故治阜杜复毋第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统寄存器寻址方式说明寄存器寻址方式说明v在一条指令中,寄存器寻址方式既可用于源操作在一条指令中,寄存器寻址方式既可用于源操作数,也可用于目标操作数,还可以两者都用寄存数,也可用于目标操作数,还可以两者都用寄存器寻址方式。器寻址方式。v源操作数与目标操作数的长度应一致。例如,不源操作数与目标操作数的长度应一致。例如,不能将寄存器能将寄存器AXAX的内容传送到寄存器的内容传送到寄存器BH
14、BH中,也不能中,也不能将寄存器将寄存器BHBH的内容传送到寄存器的内容传送到寄存器AXAX中。中。v两个操作数不能同时为段寄存器。两个操作数不能同时为段寄存器。v目标操作数不能是代码段寄存器。目标操作数不能是代码段寄存器。惰棘挡暑拎陋爪谜黔糯谣州宪初贝炸税敌菏清缅嫡醉寞钨楔收血朽较抽隙第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统3.2.4 3.2.4 直接寻址直接寻址v操作数在存储器中,指令中以具体数值的形式直操作数在存储器中,指令中以具体数值的形式直接给出操作数所在存储单元的有效地址接给出操作数所在存
15、储单元的有效地址EAEA。为了。为了与立即数区别,该有效地址必须用与立即数区别,该有效地址必须用括起。括起。v例如:例如:MOV AX MOV AX,2010H2010H该指令的源操作数采用直接寻址方式。该指令的源操作数采用直接寻址方式。若若(DS)=2000H(DS)=2000H,那么指令执行后,那么指令执行后,(AX)=1225H(AX)=1225H。湍另拯画彭汰耘戍跌瞪莉阔饥藤穿射挣掩玲戈坚篷毅非芭景擅羊志闽秽八第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统直接寻址方式指令执行示意图直接寻址方式指令执
16、行示意图俘涪皮乃堂翠秸黑鸭清吞痴阐涩方能狮鼠谋腰喻潞韩徘斌除澈体虞召颗呵第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统v采用直接寻址方式时,如果指令中没有用前缀说采用直接寻址方式时,如果指令中没有用前缀说明操作数存放在哪个段,则操作数默认存放在数明操作数存放在哪个段,则操作数默认存放在数据段。据段。v80868086系统允许操作数存放在代码段、堆栈段或附系统允许操作数存放在代码段、堆栈段或附加段。此时,就需要在指令中指明段超越。加段。此时,就需要在指令中指明段超越。v例如:例如:MOV ES:1225H M
17、OV ES:1225H,AX AX 该指令的目标操作数采用直接寻址方式。操作数存放该指令的目标操作数采用直接寻址方式。操作数存放在由在由ESES指示的附加段中。指示的附加段中。物理地址物理地址=ES10H+1225H=ES10H+1225H。椅备优崔邻翼邦贱练簿寡牌均最垢窍圣篱不胚稳莆厉抬浸动践妨蛰御婪敛第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统v在汇编语言指令中,可以用符号地址代替数值地在汇编语言指令中,可以用符号地址代替数值地址。址。v例如:例如:MOV AX MOV AX,NUMANUMA此时,此
18、时,NUMANUMA是存放操作数的内存单元的符号地址。是存放操作数的内存单元的符号地址。v上面这条指令还可以写成如下的形式:上面这条指令还可以写成如下的形式:MOV AX MOV AX,NUMANUMAv如如DATA1DATA1数据存放在附加段,则可以用如下的形数据存放在附加段,则可以用如下的形式指定段跨越前缀:式指定段跨越前缀:MOV AX MOV AX,ES:NUMAES:NUMA或或 MOV AX MOV AX,ES:NUMAES:NUMA奥蝶烙赢糖澎枝兹滚欧采蜂咬讶孔阂琢娄舞孰搐刘滥眶适滔坛促飞沉烫同第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 808
19、6 8086寻址方式与指令系统寻址方式与指令系统3.2.4 3.2.4 寄存器间接寻址寄存器间接寻址v操作数的有效地址操作数的有效地址EAEA存放在基址寄存器存放在基址寄存器BXBX、BPBP或或变址寄存器变址寄存器SISI、DIDI中。中。v为了区别于寄存器寻址方式,指令中指定的寄存为了区别于寄存器寻址方式,指令中指定的寄存器名要用器名要用括起来。括起来。v指令中使用指令中使用SISI、DIDI、BXBX寄存器时,操作数默认存寄存器时,操作数默认存放在数据段中;使用放在数据段中;使用BPBP寄存器时,操作数默认存寄存器时,操作数默认存放在堆栈段中,允许段超越。放在堆栈段中,允许段超越。v操作
20、数的物理地址操作数的物理地址=(DS)10H+(SI)/(DI)/(BX)=(DS)10H+(SI)/(DI)/(BX)或或 (SS)10H+(BP)(SS)10H+(BP)盯匈趋送圭丹坠嘉所晰诣徐跪永士草豢团脐荤胃蝴钵弱蹿赎屉浩发炬绷绪第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统v例如:例如:MOV AX MOV AX,SI SI v该指令的源操作数采用寄存器间接寻址方式。该指令的源操作数采用寄存器间接寻址方式。v若若(DS)=2000H(DS)=2000H,(SI)=2010H(SI)=2010H,那
21、么指令执行后,那么指令执行后,(AX)=1225H(AX)=1225H。v如操作数不存放在间址寄存器默认的段,则指如操作数不存放在间址寄存器默认的段,则指定段超越的指令可采用如下形式。定段超越的指令可采用如下形式。MOV AX MOV AX,ES:SIES:SI 此时,操作数的物理地址此时,操作数的物理地址=ES10H+SI=ES10H+SI。宋无坯增漱汾民捅过弗始障擦氛勒躺晾蛔见境绥典绒永徊氓佃耗乒潜兔锚第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统寄存器间接寻址方式指令执行示意图寄存器间接寻址方式指令执
22、行示意图昏钒漂一娶诀兜忧埋环策秽初哀境戮海榴骆维降莲坷咐境腕撤壁孪侧店郧第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统3.2.5 3.2.5 寄存器相对寻址寄存器相对寻址v操作数的有效地址操作数的有效地址EAEA是指令中指定的基址或变址是指令中指定的基址或变址寄存器的值与位移量之和。寄存器的值与位移量之和。v指令中使用指令中使用SISI、DIDI、BXBX寄存器时,操作数默认存寄存器时,操作数默认存放在数据段中;使用放在数据段中;使用BPBP寄存器时,操作数默认存寄存器时,操作数默认存放在堆栈段中,允许段超
23、越。放在堆栈段中,允许段超越。v操作数的物理地址操作数的物理地址=(DS)10H+(SI)/(DI)/(BX)+8=(DS)10H+(SI)/(DI)/(BX)+8位或位或1616位位移量位位移量 或或 =(SS)10H+(BP)+8 =(SS)10H+(BP)+8位或位或1616位位移量位位移量纽僧悉珍朝责共荤酸吮仑袱钻奎施籽迹评栓评孩嚣讲亢妇兹虫怔掩碟生炳第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统v例如:例如:MOV AX MOV AX,8BX 8BX v该指令的源操作数采用寄存器相对寻址方式。该指
24、令的源操作数采用寄存器相对寻址方式。v若(若(DSDS)=2000H=2000H,(,(BXBX)=2008H=2008H,那么指令执,那么指令执行后,(行后,(AXAX)=1225H=1225H。睹懦鳃糙得运谢天莲温丛轮弛莽遮私蛛消刹矢鼓煎形墩岳囊封于渣储漫搜第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统寄存器相对寻址方式的指令执行示意图寄存器相对寻址方式的指令执行示意图粟谩面豆卵村稿唾馒敦疮春园策耻细遂贝篆舶贩策钳勘剐埔雪姥玫纯讼奉第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3
25、3章章 8086 8086寻址方式与指令系统寻址方式与指令系统寄存器相对寻址说明寄存器相对寻址说明v偏移量是符号数,偏移量是符号数,8 8位偏移量的取值范围为:位偏移量的取值范围为:00000FFH(0FFH(即即+127D+127D-128D)-128D);v1616位偏移量的取值范围为:位偏移量的取值范围为:000000000FFFFH(0FFFFH(即即+32767D+32767D-32768D)-32768D)。v80868086汇编允许用下面三种形式表示相对寻址,它汇编允许用下面三种形式表示相对寻址,它们是等效的。们是等效的。MOV AXMOV AX,BX+8 BX+8 MOV AX
26、MOV AX,8BX 8BX MOV AXMOV AX,BX+8BX+8宛比擞染隐莉乘髓象林澈蕾恳剃辨冕卜真袋免愿曙擞坤帕旗糙吞潦隘蓄画第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统3.2.63.2.6基址变址寻址基址变址寻址v操作数的有效地址操作数的有效地址EAEA是指令中指定的基址寄存是指令中指定的基址寄存器的值与变址寄存器的值之和。器的值与变址寄存器的值之和。v指令中使用基址寄存器指令中使用基址寄存器BXBX时,操作数默认存放时,操作数默认存放在数据段中;在数据段中;v使用基址寄存器使用基址寄存器BP
27、BP时,操作数默认存放在堆栈时,操作数默认存放在堆栈段中,允许段超越。段中,允许段超越。v操作数的物理地址操作数的物理地址=(DSDS)10H+10H+(SISI)/(DIDI)+(BXBX)或或 =(SSSS)10H+10H+(SISI)/(DIDI)+(BPBP)匿旭涅伸挎曙蓉择脆光粪伤梦监掷莹盅见椭咆绥谰征扬陌杯谱诛沉荆牲姚第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统v例如:例如:MOV AXMOV AX,BX SI BX SI v该指令的源操作数采用基址变址寻址方式。该指令的源操作数采用基址变址寻
28、址方式。v若(若(DSDS)=2000H=2000H,(,(BXBX)=2008H=2008H,(,(SISI)=8H=8H,那么指令执行后,(那么指令执行后,(AXAX)=1225H=1225H。易要胡从缔吧嚎闹赏惦昏呐仆优感咒恿侣茬浦毙昨且氰央刊学溪餐烹插捷第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统基址变址寻址方式的指令执行示意图基址变址寻址方式的指令执行示意图嘶碰爷聂宰烷呜肖袁魄挫语泼蛔搁镁独讣综余盒垢肌纪氏愈而捧裤叫淫十第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章
29、章 8086 8086寻址方式与指令系统寻址方式与指令系统3.2.7 3.2.7 相对基址变址寻址相对基址变址寻址v操作数的有效地址操作数的有效地址EAEA是指令中指定的基址寄存器是指令中指定的基址寄存器的值与变址寄存器的值以及的值与变址寄存器的值以及8 8位或位或1616位位移量之位位移量之和。和。v指令中使用基址寄存器指令中使用基址寄存器BXBX时,操作数默认存放在时,操作数默认存放在数据段中;数据段中;v使用基址寄存器使用基址寄存器BPBP时,操作数默认存放在堆栈段时,操作数默认存放在堆栈段中,允许段超越。中,允许段超越。v操作数的物理地址操作数的物理地址=(DSDS)10H+10H+(
30、SISI)/(DIDI)+(BXBX)+8+8位或位或1616位位移量位位移量或或 =(SSSS)10H+10H+(SISI)/(DIDI)+(BPBP)+8+8位或位或1616位位移量位位移量橙仁恳狈贵蒂戚闹表凿釉捣锌踊寂欣血鄂吏抄赁碳哮借烽娄谤河幻搔设责第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统v例如:例如:MOV AXMOV AX,3BX SI 3BX SI v该指令的源操作数采用寄存器相对寻址方式。该指令的源操作数采用寄存器相对寻址方式。v若(若(DSDS)=2000H=2000H,(,(BXB
31、X)=2008H=2008H,(,(SISI)=5H=5H,那么指令执行后,(那么指令执行后,(AXAX)=1225H=1225H。察嗡泌动屉憾佯馏赚吃甄减眼趣亥冕万哈扼蛔冉蕉耍淌澡残誓跃抿锐赚脏第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统相对基址变址寻址方式的指令执行示意图相对基址变址寻址方式的指令执行示意图蛔柠人酞蜒折扩割员聪座奥主慕簧峭窟摘沛型丙石良优申疹扒思飘扳掌讶第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统
32、3.3 80863.3 8086指令系统指令系统v80868086指令系统包括六大类指令:指令系统包括六大类指令:v数据传送指令数据传送指令v算术运算指令算术运算指令v逻辑运算和移位指令逻辑运算和移位指令v串操作指令串操作指令v控制转移指令控制转移指令v处理器控制指令处理器控制指令仗圭惮槐据立津赃艾氏描漫州拍同呸捣更伯寡描旅轴轴沽遂屠毡椎舷泅炼第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统v80868086汇编指令中的操作数可以有零个、一个或两汇编指令中的操作数可以有零个、一个或两个,通常称为零地址、一地址
33、或二地址指令。个,通常称为零地址、一地址或二地址指令。v二地址指令中的两个操作数分别称为源操作数和二地址指令中的两个操作数分别称为源操作数和目标操作数。目标操作数。措萤戍闰赢揍华被笋杜伶造讥诸炬肇椒喊序被晚载匠吁废绣违厦莹馅株沫第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统3.3.13.3.1数据传送指令数据传送指令v数据传送指令是将数据或地址传送到寄存器、存数据传送指令是将数据或地址传送到寄存器、存储单元或储单元或I/OI/O端口中。端口中。v包括包括5 5类:类:v通用数据传送指令;通用数据传送指令;v
34、累加器专用传送指令;累加器专用传送指令;v地址传送指令;地址传送指令;v标志传送指令;标志传送指令;v数据类型转换指令。数据类型转换指令。盖昆洋妙畜受欣卢锭沈沾鸦留讳橙贱缄盔巷部褒泽刊圃绒刘遁羹乾鳃氰推第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统数据传送指令的共同特点数据传送指令的共同特点v除了除了POPFPOPF和和SAHFSAHF指令外,其他的数据传送指令的指令外,其他的数据传送指令的执行结果都不影响标志位。执行结果都不影响标志位。v指令中如果列出两个操作数,则指令的执行过程指令中如果列出两个操作数,
35、则指令的执行过程是:目标操作数是:目标操作数源操作数。源操作数。v指令中如果仅列出一个操作数,则另一个操作数指令中如果仅列出一个操作数,则另一个操作数为隐含操作数。为隐含操作数。沏激忠伎敖漾见蛹芥瓷着线悄距公凸盒监蜒签浆羽瞎粟咕锐始腊赞轮忿初第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统1.1.通用数据传送指令通用数据传送指令v1 1)传送指令)传送指令v格式:格式:MOV MOV 目标操作数,源操作数目标操作数,源操作数 v功能:将源操作数的内容(一个字或一个字节)功能:将源操作数的内容(一个字或一个字节
36、)传送到目标操作数指定的寄存器或内存单元,源传送到目标操作数指定的寄存器或内存单元,源操作数内容不变。操作数内容不变。秦穗蚀骂耽瘩您涌随流尿鳃钞伪玻葬剥捍契症译梯分生犀邮覆夸租绦梁潍第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统MOVMOV指令举例指令举例MOV ALMOV AL,5 5;字节传送,立即数送通用寄存器;字节传送,立即数送通用寄存器MOV AXMOV AX,BXBX;字传送,通用寄存器送通用寄存器;字传送,通用寄存器送通用寄存器MOV DSMOV DS,AXAX;字传送,通用寄存器送段寄存器;
37、字传送,通用寄存器送段寄存器橙岩诉坞紊蹭蝶窝庙岿低蔑窃割匪亲壁砰同韩京书掂疲妆佰禹舟铡窄柳瓤第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统MOVMOV指令的使用说明指令的使用说明v源操作数可以是立即数、寄存器或内存操作数。源操作数可以是立即数、寄存器或内存操作数。v目标操作数可以是寄存器或内存操作数。目标操作数可以是寄存器或内存操作数。v立即数和立即数和CSCS寄存器只能作为源操作数,不允许作寄存器只能作为源操作数,不允许作为目标操作数。为目标操作数。vIPIP和和PSWPSW都不可作为源操作数或是目标操作
38、数。都不可作为源操作数或是目标操作数。v立即数不允许直接传送至立即数不允许直接传送至DSDS、ESES或或SSSS寄存器。寄存器。v源操作数和目标操作数不允许同时是内存操作数,源操作数和目标操作数不允许同时是内存操作数,也不允许同时是段寄存器。也不允许同时是段寄存器。v源操作数和目标操作数的类型必须相同,即同为源操作数和目标操作数的类型必须相同,即同为字节类型或字类型。字节类型或字类型。彝擞例夏呕痞秀眺撞隐龙潭慎彦樊噬昧暂驻叁寇池辊蟹弧蹈弛吁纤酉锭菲第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统1.1.通用
39、数据传送指令(续)通用数据传送指令(续)v2 2)数据交换指令)数据交换指令v格式:格式:XCHGXCHG 目标操作数,源操作数目标操作数,源操作数 v功能:源操作数的内容(一个字或字节)与目标功能:源操作数的内容(一个字或字节)与目标操作数的内容(一个字或字节)互换。操作数的内容(一个字或字节)互换。v例如:例如:XCHG BLXCHG BL,AHAH ;字节交换,寄存器与寄存器的内容交换;字节交换,寄存器与寄存器的内容交换XCHG AXXCHG AX,BXSIBXSI ;字交换,寄存器与内存单元的内容交换;字交换,寄存器与内存单元的内容交换犬翘夕怔邱褥耀足迟敛灼襟拢矣惮牙锣蜘悸露吵识皑边颅
40、空绳莱香拌放贤第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统XCHGXCHG指令的使用说明指令的使用说明v源操作数和目标操作数都可以是寄存器或内存操源操作数和目标操作数都可以是寄存器或内存操作数。作数。v源操作数和目标操作数不可同时是内存操作数。源操作数和目标操作数不可同时是内存操作数。v源操作数和目标操作数不可以同时是寄存器(累源操作数和目标操作数不可以同时是寄存器(累加器)加器)AXAX。v段寄存器、寄存器段寄存器、寄存器IPIP或立即数不可以作为源操作或立即数不可以作为源操作数或目标操作数。数或目标操
41、作数。v例如:例如:XCHG AXXCHG AX,2011H2011H;源操作数不能是立即数源操作数不能是立即数XCHG CSXCHG CS,5SI5SI;CSCS不能作为操作数不能作为操作数XCHG AXXCHG AX,AX AX ;源操作数和目标操作数不可同是源操作数和目标操作数不可同是AXAX昂匠吊伶档措维夷壮尝袒趟洪悔俱扁啦告惋胖剔狼盂拎眼锡茧玩启月软可第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统v【例【例3-13-1】若两个字数据分别存储在内存单元】若两个字数据分别存储在内存单元NUM1NUM1
42、和和NUM2NUM2中,编写汇编程序段将这两个内存单中,编写汇编程序段将这两个内存单元的内容互换。元的内容互换。v汇编程序段如下:汇编程序段如下:MOV AXMOV AX,NUM1 NUM1 XCHG AXXCHG AX,NUM2 NUM2 MOV NUM1MOV NUM1,AX AX 非恐原莎市姬壹妻节五榨口撂娥员拄糊雇蛤毋鬃茧绵液己饼鞭铆瓣堤蛛瓜第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统堆栈堆栈v堆栈是一块按照堆栈是一块按照“后进先出后进先出”原则工作的内存区原则工作的内存区域。域。v把数据从栈顶存
43、入堆栈中的操作称为入栈(或压把数据从栈顶存入堆栈中的操作称为入栈(或压入);入);v把数据通过栈顶从堆栈中取出的操作称为出栈把数据通过栈顶从堆栈中取出的操作称为出栈(或弹出)。(或弹出)。v堆栈常被用于数据的暂存、交换、子程序的参数堆栈常被用于数据的暂存、交换、子程序的参数传递等场合。传递等场合。v在调用子程序或转入中断服务程序时,堆栈是默在调用子程序或转入中断服务程序时,堆栈是默认的被用于保存返回地址的内存区域。认的被用于保存返回地址的内存区域。v为了实现子程序或中断嵌套,也必须使用堆栈技为了实现子程序或中断嵌套,也必须使用堆栈技术。术。徘畜博撂咬屠拓佃泅跑迭亿锚率图纬卷酣隐付颜迭园可拭谣嘿
44、局瞥葵升驼第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统v在在80868086系统中,堆栈所在的段就是堆栈段,它可系统中,堆栈所在的段就是堆栈段,它可以占用的最大空间是以占用的最大空间是64KB64KB。v堆栈段的段地址由堆栈段的段地址由SSSS寄存器指示。寄存器指示。v堆栈指针寄存器堆栈指针寄存器SPSP始终指示栈顶的偏移地址并随始终指示栈顶的偏移地址并随着入栈和出栈操作而自动变化。着入栈和出栈操作而自动变化。v当进行压入操作后堆栈指针达到定义值,表明堆当进行压入操作后堆栈指针达到定义值,表明堆栈满;当执
45、行弹出操作后堆栈指针回到初值,表栈满;当执行弹出操作后堆栈指针回到初值,表明堆栈空。明堆栈空。v当栈满时,再压入数据,称为当栈满时,再压入数据,称为“堆栈溢出堆栈溢出”。荚主溅淤探县洋丝挞厦零澡箩泥欠球阎拭竿迟煤禁需提魔很访蒂却螺糯巴第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统1.1.通用数据传送指令(续)通用数据传送指令(续)v3)3)堆栈操作指令堆栈操作指令v80868086指令系统中:指令系统中:v堆栈操作指令中操作数的类型只能是字,不能是堆栈操作指令中操作数的类型只能是字,不能是字节。字节。v立即
46、数不能作为操作数。立即数不能作为操作数。眺位缚炊猿盈菌这诛芬助颂力威笆埠候刽吧卤栅烃命惯鸿算蔽瞄菇爷乾竿第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统进栈指令进栈指令v格式:格式:PUSH PUSH 源操作数源操作数v功能:源操作数入栈。功能:源操作数入栈。v指令的执行如下操作:指令的执行如下操作:v(SP)(SP)-2 (SP)(SP)-2 v(SS:SP)(SS:SP)源操作数源操作数 v说明:说明:v源操作数可以是寄存器或是内存操作数。源操作数可以是寄存器或是内存操作数。帝酉苔擞峻区贯咨楔凸温龟就摄强
47、软讯荫崇执箔饯又恼计叫岿涕揩炊俐芝第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统出栈指令出栈指令v格式:格式:POP POP 目标操作数目标操作数v功能:数据出栈,存入目标操作数。功能:数据出栈,存入目标操作数。v指令的执行如下操作:指令的执行如下操作:v 目标操作数目标操作数(SS:SP)(SS:SP)v(SP)(SP)+2 (SP)(SP)+2 v说明:说明:v目标操作数可以是段寄存器、目标操作数可以是段寄存器、1616位寄存器或内存位寄存器或内存操作数。操作数。v当目标操作数是段寄存器时,不能是当目标
48、操作数是段寄存器时,不能是CSCS寄存器。寄存器。胯尝熏晶从杠俺屿蜘坎砖刘抹曼儒惜都森滦痛肮筐艇纬妇痪乳布匠苗善屡第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统【例【例3-23-2】v设设(SS)=2011H(SS)=2011H,(SP)=0020H(SP)=0020H,依次执行下列汇编,依次执行下列汇编指令后,分析堆栈中的数据和寄存器指令后,分析堆栈中的数据和寄存器AXAX、BXBX、SPSP的变化情况。的变化情况。MOV AX,0103HMOV AX,0103HMOV BX,1228HMOV BX,12
49、28HPUSH AXPUSH AXPUSH BXPUSH BXPOP BXPOP BX铜落喷剿颈跺套端己谓廖缕沽泻褒欺玄蹿趣侍钻稚瓤晴堡滥僧展师贸乍聊第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统仍藻迷一然桔扭霄桅裹票诌别沼扑啮孔笑礼何翻温锌蛙褐栗淹兴枪塑染桶第3章8086寻址方式与指令系统第3章8086寻址方式与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统稳国规镊湘仙磊彦淳糊臂馋温茂遁域镭瞧酬酪残椽伺胞历募辨诞娇夫郝铜第3章8086寻址方式与指令系统第3章8086寻址方式
50、与指令系统第第3 3章章 8086 8086寻址方式与指令系统寻址方式与指令系统2.2.累加器专用传送指令累加器专用传送指令v(1 1)换码指令)换码指令v格式一:格式一:XLATXLATv格式二:格式二:XLAT XLAT 表格首地址表格首地址 v功能:将内存表格中某一单元的值传送至寄存器功能:将内存表格中某一单元的值传送至寄存器ALAL,实现一种编码到另一种编码的转换。例如,实现一种编码到另一种编码的转换。例如,把字符的扫描码转换成把字符的扫描码转换成ASCIIASCII码。码。v指令的执行如下操作:指令的执行如下操作:v把数据段中偏移地址为把数据段中偏移地址为BX+ALBX+AL的内存单