资源描述:
《汇编语言程序设计 教学课件 作者 董少明 第2章 8086/8088的指令系统.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汇编语言程序设计第2章8086、8088的指令系统第2章8086、8088的指令系统2.18088的寻址方式2.28088的基本指令集小结指令是计算机用于控制各部件协调动作的命令。指令的集合称为指令系统,不同的计算机系统拥有不同的指令系统。指令系统的功能越强,计算机的功能就越强。按照指令的二进制位数分类,指令有1B指令、2B指令、3B指令等;按照指令所带操作数字段的数量分类,指令可以分为无操作数指令、单操作数指令和双操作数指令。在双操作数指令中,紧跟在操作码后面的是作为存放操作结果的目的地,称之为目的操作数,而另一个操作数则称之为源操作数。提示:2.18088的寻址方式指令中用于说明
2、操作数所在地址以及获得转移地址的方法称为寻址方式。8088的寻址方式分为两类:与数据有关的寻址方式和与转移地址有关的寻址方式。2.1.1与数据有关的寻址方式与数据有关的寻址方式有立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和基址变址相对寻址7种。1.立即寻址(ImmediateAddressingMode)立即寻址又称立即数寻址。这种寻址方式是把参与操作的数据作为指令的一部分,直接写在指令中。这种操作数称为立即数。立即数可以是各种数制下的数值,也可以是带单引号的字符,也可以写成一个具有确定值的表达式。立即数只能作为源操作数,不能作为目的操作数。由于操作
3、数直接放在代码段中,所以这种寻址方式的优点是执行速度快,缺点是灵活性差,其作用主要用来给寄存器或存储器赋初值。例2-1MOVAX,1234H指令执行后(AX)=1234H操作示意图如图2-1a所示。例2-2MOVCL,5指令执行后(CL)=05H操作示意图如图2-1b所示。例2-3编程计算1+3+5+7解:MOVAL,1ADDAL,3ADDAL,5ADDAL,72.寄存器寻址(RegisterAddressingMode)操作数在CPU内部的寄存器中,其寄存器名在指令给出,这种寻址方式称为寄存器寻址方式。对于8bit操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL、DH中
4、的任一个,对于16bit操作数,寄存器可以是AX、BX、CX、DX、SI、DI、SP和BP等。例2-4MOVBX,AX指令执行前(AX)=1234H,(BX)=5678H指令执行后(BX)=1234H(AX)保持不变,操作示意图如图2-2所示。这种从寄存器取得操作数的方式,与从存储器取操作数相比,执行速度快。例2-5AX←(AX)×10解:ADDAX,AXMOVBX,AXADDAX,AXADDAX,AXADDAX,BX图2-2寄存器寻址实例3.直接寻址(DirectAddressingMode)直接寻址方式的操作数存放在存储器中,操作数地址的偏移地址(又称有效地址EA)在指令中给出,
5、它紧跟在操作码之后。如果操作数存放在数据段中,它的物理地址=(DS)×16+EA。8088允许数据存放在数据段以外的其他段中,此时应在指令中指定段跨越前缀,在计算物理地址时应使用指定的段寄存器,如图2-3所示。图2-3直接寻址示意图例2-6MOVBX,[2000H]指令执行前(DS)=4000H,EA=2000H,(42000H)=3050H指令执行后(BX)=3050H,操作示意图如图2-4所示。例2-7MOVAX,CS:[3700H]指令执行前(CS)=1000H,EA=3700H,(13700H)=172AH指令执行后(AX)=172AH图2-4直接寻址实例在汇编语言中,可以使
6、用符号地址代替数值地址。例如:MOVAX,[BUFFER],其中BUFFER为存放操作数单元的符号地址。符号地址出现在指令中时,也可以省略方括号。例如:MOVAX,DATA,其中DATA为存放操作数单元的符号地址。例2-8在内存0100H:0200H开始的单元,存放了3个8位数,计算累加和。解:MOVAL,0;累加器置0MOVBX,0100HMOVDX,BX;置段地址ADDAL,[0200H];加第1个数ADDAL,[0201H];加第2个数ADDAL,[0202H];加第3个数4.寄存器间接寻址(RegisterIndirectAddressingMode)寄存器间接寻址方式的操作
7、数在存储器中,指令中使用的基址寄存器BX、BP或变址寄存器SI、DI存放操作数的有效地址。如果不特别指出,使用BX、SI、DI寻址时,默认操作数在数据段中,由数据段段寄存器DS左移4bit加上BX、SI、DI中之—的16bit偏移地址量形成物理地址;使用BP寻址时,默认操作数在堆栈段中,由堆栈段段寄存器SS左移4位加上BP中16bit偏移地址量形成物理地址,如图2-5所示。图2-5寄存器间接寻址示意图例2-9MOVAX,[BX]指令执行前(DS)=3000