资源描述:
《第2章寻址方式与汇编语言程序的组织 2.2 寻址方式ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第2章寻址方式与汇编语言程序的组织2.1汇编语言(在前言中介绍了)2.1.1机器语言2.1.2汇编语言2.2寻址方式2.2寻址方式2.2.1数据寻址方式(8种)2.2.2程序寻址方式(4种)(第2章寻址方式与汇编语言程序的组织)章节简介:指令指令操作数CPU的8中基本数据寻址寄存器操作数(寄存器寻址)立即数(立即寻址)直接内存操作数(直接寻址)寄存器间接寻址寄存器相对寻址基址变址寻址相对基址变址比例变址寻址指令机器指令是被CPU设别和执行。指令是用二进制进行编码的。指令操作数[标签:]操作符操作数1,操作数2操作数为指令的处理提供数据源。操作数项可以是操作数本身,操作数地址或者I/O端口地址。
2、一条指令可以有一个,两个或者无操作数。用“,”分隔多个操作数(指令操作数)当有两个操作数的时候:第二个操作数是源操作数,与立即数或者地址相关联(寄存器,内存或者I/O端口的地址),源数据在操作中不会被更改。第一个操作数是目标操作数,放在寄存器中,内存中,或者I/O端口中。(指令操作数)[标签:]操作符操作数1,操作数2做什么怎么做目标源运算后可能改变运算后不改变必须被存放在立即数或寄存器,内存,IO中存放数据的地址(寄存器/内存/IO)(指令操作数)例子:MOVAX,BX;(AX)(BX)ADDAX,BX;(AX)(AX)+(BX)CPU的8种基本数据寻址什么是寻址方式?它是寻找指令中操作数,
3、或寻找存放操作数的地址的方式。(8种基本数据寻址)寄存器操作数(寄存器寻址)立即数(立即寻址)直接内存操作数(直接寻址)寄存器间接寻址寄存器相对寻址基址变址寻址相对基址变址寻址比例变址寻址寄存器操作数(寄存器寻址)操作数在CPU的寄存器中。寄存器可以充当第一或第二操作数,也可以两个都是。(寄存器寻址)由于在寄存器之间处理数据不用访问存储器,所以是最快的操作类型。源寄存器的大小需要与目标寄存器的大小统一。(寄存器寻址)例子:Word1DW?;定义一个字…MOVDX,WORD1;寄存器作为第一操作数MOVWORD1,CX;作为第二操作数MOVDX,BX;作为两个操作数立即操作数(立即寻址)第二操作
4、数是立即数或存放操作数的地址(第一操作数不能是立即数,可以是寄存器、内存单元、I/O端口的地址)例子:MOVAX,25MOVcount,AX(立即寻址)立即操作数必须与目标操作数大小相一致(不能超过),两个同为字节,字或者双字。例子:ADDCX,48H;正确,汇编器把立即数扩到2个字节,0048H(立即寻址)比访问内存中的数据段中的数字常量,并且用MOV操作,这种处理方式快。例子:COUNTDW0235H…ADDBX,25;把25加到BX,更快MOVAX,COUNT;把COUNT移动到AX,慢(立即寻址)例子:MOVAX,1234H;(AX)=1234H直接存储器寻址(直接寻址)使用指令中操作
5、数的偏移地址(EA,有效地址)直接指向内存中的操作数的位置。(直接寻址)例子:MOVAX,[1200H];EA=1200H假设(DS)=2000H因此PA=(DS)×10H+EA=20000H+1200H=21200H结果:(AX)=(21200H)=5030H(直接寻址)一个操作数与内存单元有关,而其他操作数与寄存器有关。(运行2个操作数直接访问存储器的指令只有MOVS和CMPS)。DS是访问存储器中数据的默认段寄存器。(直接寻址)例子:WORD1DW0;定义一个字…MOVCX,ES:[2100];PA=(ES)*10H+2100HMOVBX,WORD1;标志地址MOV[WORD1],AXM
6、OV[2100],AX;目标Note:MOVBX,[WORD1]与下面效果一样MOVBX,WORD1间接存储器寻址(寄存器间接寻址)间接寻址:指令中的操作数位置,放着操作数的偏移地址,操作数存储在该地址指明的内存单元中。(寄存器间接寻址)寄存器间接寻址:操作数的EA(有效地址)/偏移地址在BX,BP,DI和SI寄存器中.操作数在内存中。(寄存器间接寻址)使用的寄存器是BP,BX,DI和SI,写在方括号内。例子1:MOVAX,[SI];SI的内容是偏移地址,把偏移地址所指向的内存中的内容,放到AX中去。(寄存器间接寻址)默认:BP(EBP)与SS是关联在一起,处理堆栈中的数据SS:BPBX,DI
7、和SI与DS关联,处理数据段中的数据:DS:BX,DS:DI,DS:SI(寄存器间接寻址)实模式下:PA=10H*(DS)+(BX)OrPA=10H*(DS)+(SI)OrPA=10H*(DS)+(DI)OrPA=10H*(SS)+(BP)(寄存器间接寻址)例子2:MOVAX,[BX]内存If(DS)=2000H,(BX)=1000H,21002SoPA=2000H*10H+1000H=21000