汇编语言ppt课件第3章

上传人:风*** 文档编号:253226029 上传时间:2024-12-03 格式:PPT 页数:24 大小:196.03KB
返回 下载 相关 举报
汇编语言ppt课件第3章_第1页
第1页 / 共24页
汇编语言ppt课件第3章_第2页
第2页 / 共24页
汇编语言ppt课件第3章_第3页
第3页 / 共24页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三章 操作数的寻址方式,第三章 操作数的寻址方式,1,复习,(1)指令:制指挥计算机完成某一个操作的命令,(2)程序:指令的集合,(3)存储程序式计算机:针对待解决的问题,事先编制好程序,存在存储器中,改动程序执行,(4)指令基本形式,(5)操作数寻址:指定操作数或操作数存放位置的方法,复习,2,(6)基本寻址方式(7种),立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址加变址寻址方式、相对基址加变址寻址方式等。其中,后五种寻址方式是确定内存单元有效地址的五种不同的计算方法。另外,在,32,位微机系统中,为了扩大对存储单元的寻址能力,增加了一种新的寻址方式,32,位地址的寻址方式。,(6)基本寻址方式(7种),3,(7)存储空间分段存储管理思想,存储空间分段,物理地址=段起始地址+段内偏移量(,EA),段起始地址由段寄存器提供代码计算所得,,EA,由指令地址段处理所得,(8)表示形式,X,存储单元,X,(x),存储单元,x,中的内容,AX,寄存器,AX,(AX),寄存器,AX,中的内容,(9)指令形式,无操作数指令,单操作数指令,双操作数指令,(7)存储空间分段存储管理思想,4,3.1,立即寻址方式,(1)操作数直接写在指令地址段中,(2)立即数不能作第一操作数(目标操作数),(3)不涉及存储器地址,(4)例如:,MOV AH,80H ADD AX,1234H,MOV ECX,123456H,MOV B1,12H MOV W1,3456H,ADD D1,32123456H,其中:,B1,、,W1,和,D1,分别是字节、字和双字单元。,3.1 立即寻址方式(1)操作数直接写在指令地址段中,5,下图是指令“,MOV AX,4576H”,的存储形式和执行情况示意图。,下图是指令“MOV AX,4576H”的存储形式和,6,3.2,寄存器寻址方式,(1)操作数存在寄存器中,(2)指令地址段给出寄存器编号,(3)源操作数可放在寄存器中,目标操作数可放在寄存器中,两者均可以作为寄存器形式,(4)最好用注意位数一致,3.2 寄存器寻址方式,7,3.3,直接寻址方式,(1)操作数放在内存单元中,指令中给出操作数在段中的相对位置有效地址,(2)一般情况下,数据存在数据段中,首地址信息存于,DS,中,若不存在数据段时,指令要给我前缀,3.3 直接寻址方式(1)操作数放在内存单元中,指令中给,8,(3)指令形式,MOV AX,TAX ;,给出标号/符号名,(,EA=TAX),MOV AX,1234H;,直接给出相对号,(,EA=1234H),注意,:,不能写成,MOV AX,1234H,这样就成了立即数寻址,前两者数据存在数据段中,引用到,DS,MOV AX,TAX;“MOV AX,TAX”,等价,MOV AX,ES:TAX ;,数据存在附加段中,(3)指令形式,9,例,3.1,假设有指令:,MOV BX,1234H,,在执行时,,(DS)=2000H,,内存单元,21234H,的值为,5213H,。问该指令执行后,,BX,的值是什么?,解:根据直接寻址方式的寻址规则,把该指令的具体执行过程如下图所示。,例3.1 假设有指令:MOV BX,1234H,在执行,10,3.4,寄存器间接寻址方式,(1)操作数存放在存储单元中,(2)有效地址存放在存储器中(通常为变址),(3)指令给出寄存器编号(变址)操作数在存储器中,操作数的有效地址用,SI,、,DI,、,BX,和,BP,等四个寄存器之一来指定,称这种寻址方式为寄存器间接寻址方式。,该寻址方式物理地址的计算方法如下:,3.4 寄存器间接寻址方式(1)操作数存放在存储单元中,11,(4)例,假设有指令:,MOV BX,DI,,在执行时,,(DS)=1000H,,,(DI)=2345H,,存储单元,12345H,的内容,是,4354H,。问执行指令后,,BX,的值是什么?,解:根据寄存器间接寻址方式的规则,在执行本例指令时,寄存器,DI,的值不是操作数,而是操作数的地址。该操作数的物理地址应由,DS,和,DI,的值形成,即:,PA=(DS)*16+(DI)=1000H*16+2345H=12345H,。,该指令的执行效果:,把从物理地址为,12345H,开始的一个字的,值传送给,BX,。,(4)例 假设有指令:MOV BX,DI,在执行时,12,3.5,寄存器相对寻址方式,(1)操作数存放在存储器中,(2),有效地址时一个基址寄存器(,BX,BP),或变址寄存器(,SI,DI),的内容和指令中给出相对量之和,(3)在没有前缀时,默认:,若有效地址用,SI,、,DI,和,BX,等之一来指定,则其缺省的段寄存器为,DS,;,若有效地址用,BP,来指定,则其缺省的段寄存器为,SS(,即:堆栈段,),。,3.5 寄存器相对寻址方式(1)操作数存放在存储器中(3),13,(4)例 假设指令:,MOV BX,SI+100H,,在执行它,时,,(DS)=1000H,,,(SI)=2345H,,内存单元,12445H,的内容为,2715H,,问该指令执行后,,BX,的值是什么?,解:根据寄存器相对寻址方式的规则,在本指令中的源操作数的有效地址,EA,为:,EA=(SI)+100H=2345H+100H=2445H,该操作数的物理地址应由,DS,和,EA,的值形成,即:,PA=(DS)*16+EA=1000H*16+2445H=12445H,。,该指令的执行效果是:,把从物理地址为,12445H,开始的一个字,的值传送给,BX,。,(4)例 假设指令:MOV BX,SI+100H,在执,14,3.6,基址加变址寻址方式,(1)操作数存放在存储单元中,(2)有效地址是一个基址寄存器,(BX,、,BP),和一个变址,寄存器,(SI,、,DI),的内容之和。,其有效地址的计算公式如下:,3.6 基址加变址寻址方式(1)操作数存放在存储单元中,15,(3)指令地址段给出基址和变址寄存器,(4)在不使用段超越前缀的情况下,有下列规定:,若有效地址用,SI,、,DI,和,BX,等之一来指定,则其缺省的段寄存器为,DS,;,若有效地址用,BP,来指定,则其缺省的段寄存器为,SS(,即:堆栈段,),。,(3)指令地址段给出基址和变址寄存器,16,(5)例 假设指令:,MOV BX,BX+SI,,在执行时,,(DS)=1000H,,,(BX)=2100H,,,(SI)=0011H,,内存单,元,12111H,的内容为,1234H,。问指令执行后,,BX,的,值是什么?,解:根据基址加变址寻址方式的规则,在本指令的,源操作数的有效地址,EA,为:,EA=(BX)+(SI)=2100H+0011H=2111H,该操作数的物理地址应由,DS,和,EA,的值形成,即:,PA=(DS)*16+EA=1000H*16+2111H=12111H,该指令的执行效果是:,把从物理地址为,12111H,开始的一个,字的值传送给,BX,。,(5)例 假设指令:MOV BX,BX+SI,在执行时,17,3.7,相对基址加变址寻址方式,(1)操作数存在存储单元中,(2)有效地址是一个基址寄存器,(BX,、,BP),的值、一个变址寄存器,(SI,、,DI),的值和指令中的,8,位,/16,位偏移量之和。,其有效地址的,计算公式如右:,(3)在不使用段超越前缀的情况下,有下列规定:,若有效地址用,SI,、,DI,和,BX,等之一来指定,则其缺省的段寄存器为,DS,;,若有效地址用,BP,来指定,则其缺省的段寄存器为,SS(,即:堆栈段,),。,3.7 相对基址加变址寻址方式(1)操作数存在存储单元中(,18,(4)例 假设指令:,MOV AX,BX+SI+200H,,在执,行时,,(DS)=1000H,,,(BX)=2100H,,,(SI)=0010H,,,内存单元,12310H,的内容为,1234H,。问指令执行后,,AX,的值是什么?,解:根据相对基址加变址寻址方式的规则,本指令,中源操作数的有效地址,EA,为:,EA=(BX)+(SI)+200H=2100H+0010H+200H=2310H,该操作数的物理地址应由,DS,和,EA,的值形成,即:,PA=(DS)*16+EA=1000H*16+2310H=12310H,该指令的执行效果是:,把从物理地址为,12310H,开始的一个,字的值传送给,AX,。,(4)例 假设指令:MOV AX,BX+SI+2,19,(5)其他表示,相对基址加变址寻址方式与其它寻址方式之间的变形关系,源操作数,指令的变形,源操作数的寻址方式,只有一个偏移量,MOV AX,100H,直接寻址方式,只有一个寄存器,MOV AX,BX,或,MOV AX,SI,寄存器间接寻址方式,有一个寄存器和偏移量,MOV AX,BX+100H,或,MOV AX,SI+100H,寄存器相对寻址方式,有二个寄存器,MOV AX,BX+SI,基址加变址寻址方式,有二个寄存器和常数项,MOV AX,BX+SI+100H,相对基址加变址寻址方式,(5)其他表示相对基址加变址寻址方式与其它寻址方式之间的,20,3.8 32,位地址的寻址方式,(1)保留16位的寻址方式,(,EAX、EBX、ECX、EDX、ESI、EDI、EBP,和,ESP),(2)新增加:,所有32位寄存器均可作为地址偏移量的一部分(16,bit,机只能用基址或变址寄存器),用32位地址偏移量进行寻址的,有效地址计算公式:,(3)注意:谁是基址,谁是变址?,关键是谁写在前,谁在后,前基址,后变址,3.8 32位地址的寻址方式(1)保留16位的寻址方式,21,(5)例 下面列举几个,32,位地址寻址指令及其内存操作数的段寄存器。,MOV AX,123456H ;,默认段寄存器,DS,MOV EAX,EBX+EBP ;,默认段寄存器,DS,MOV EBX,EBP+EBX ;,默认段寄存器,SS,MOV EBX,EAX+100H ;,默认段寄存器,DS,MOV EDX,ES:EAX*4+200H,;,显式段寄存器,ES,MOV ESP+EDX*2,AX ;,默认段寄存器,SS,MOV EBX,GS:EAX+EDX*2+300H,;,显式段寄存器,GS,MOV AX,ESP ;,默认段寄存器,SS,(5)例 下面列举几个32位地址寻址指令及其内存操作数的,22,寄存器间接寻址的例子,:,例 已知表,TA,中存由60个数据(字),将该表数,据接到表,TB,中去,设,TB,表有足够空间,开始,TA SI,TB DI,O BX,(,BX),60,(SI)AX,(AX)(DI),(SI)+2 (SI),(DI)+2 (DI),(BX)+1 BX,结束,解题,TA,表头,SI,为取初值,TB,表头,DI,为存初值,以,BX,为计数控制器,因为是字操作,故,SI、DI,增量为2,因为(,BX),从0开始,所以其正常范围为0 59,寄存器间接寻址的例子:开始TA SITB,23,使用寄存器相对寻址的例子(同上题),开始,O SI,O DI,(,SI),120,(,TA+(SI)AX,(,AX)TB+(DI),(,SI)+2 SI,(,DI)+2 DI,结束,解题,SI、DI,初值为0,因为是字操作,地址增量是2,因为是60个元素,故(,SI),正常值范围为0 118,此法中:,初偏址为,TA+(SI),存偏址为,TB+(DI),巧妙地利用(,SI),来表示地址,增量,又作计数控制,使用寄存器相对寻址的例子(同上题)开始O,24,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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