资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,3.3 指令系统的寻址方式,寻址方式,就是在指令中说明操作数所在地址的方法。,共,7种,寻址方式。,1寄存器寻址方式,操作数在寄存器中,MOV A,Rn ;(Rn)A,n=07,表示把寄存器Rn的内容传送给累加器A,寻址范围包括:,(1)4组通用工作寄存区共32个工作寄存器。,(2)部分特殊功能寄存器,例如A、B 以及数据指针寄存器DPTR等。,3.3 指令系统的寻址方式,1,MOV A,R2执行示意图,MOV A,R2执行示意图,2,2直接寻址方式,操作数直接以单元地址的形式给出:,MOV A,40H,寻址范围:,(1)内部RAM的128个单元,(2)特殊功能寄存器。除了以单元地址的形式外,还,可用寄存器符号,的形式给出。例如:,MOV A,80H 与 MOV A,P0是等价的,。,直接寻址方式是访问特殊功能寄存器的唯一寻址方式,七种寻址方式课件,3,例 MOVA,3AH;把3AH单元的内容送A。,MOV A,3AH执行示意图,七种寻址方式课件,4,3.寄存器间接寻址方式,寄存器中存放的是操作数的地址,在寄存器的名称前面加,前缀标志“”,访问内部RAM或外部数据存储器的低256个字节时,,只能采用R0或R1作为间址寄存器,。例如,:,MOV A,Ri,;i=0或1,其中Ri中的内容为40H,把内部RAM中40H单元的内容送到A。,寻址范围:,(1)访问内部RAM低128个单元,其通用形式为Ri,(2)对片外数据存储器的64K字节的间接寻址,例如:,MOVX A,DPTR,3.寄存器间接寻址方式,5,(3)片外数据存储器的低256字节,例如:,MOVX A,Ri,(4)堆栈区,堆栈操作指令PUSH(压栈)和POP(出栈)使用堆栈指针(SP)作间址寄存器,例,MOV R0,#50H,MOV A,R0,MOV A,R0执行示意图,(3)片外数据存储器的低256字节,6,4立即寻址方式,操作数在指令中直接给出,需在操作数前面加前缀标志“#”。例如:,MOVA,#3AH,;立即数3AH送累加器A,MOV A,#3AH执行示意图,4立即寻址方式,7,5基址寄存器加变址寄存器间址寻址方式,本寻址方式是以DPTR或PC作基址寄存器,以累加器A作为变址寄存器。,说明:,(1)本寻址方式是专门针对程序存储器的寻址方式,寻址范围可达到64KB。,(2),本寻址方式的指令只有3条:,MOVC A,A+DPTR,MOVC A,A+PC,JMP A+DPTR,5基址寄存器加变址寄存器间址寻址方式,8,例 现假设,MOVC A,,A,DPTR,指令存放在70H单元,ACC中原存放值为E0H,DPTR中值为2000H,则ADPTR形成的地址为20E0H。20E0H单元中内容为47H,则执行该指令后,ACC中原E0H被47H代替。该指令执行过程示于图。,MOVC A,,A,DPTR,执行示意图,例 现假设MOVC A,ADPTR指令存放在70H单,9,6位寻址方式,MCS-51有位处理功能,可以对数据位进行操作,例如:,MOV C,40H,是把位40H的值送到进位位C。,寻址范围包括:,(1)内部RAM中的位寻址区。位有两种表示方法,例如,40H;另一种是单元地址加上位,例如,(28H).0,指的是28H单元中的最低位。它们是等价的。,(2)特殊功能寄存器中的可寻址位,可寻址位在指令中有如下4种的表示方法:,a.直接使用位地址,。例如PSW.5的位地址为0D5H。,6位寻址方式,10,b.位名称的表示,方法。例如:PSW.5是F0标志位,可使用F0表示该位。,c.单元地址加位数,的表示方法。例如:(0D0H).5。,d.特殊功能寄存器符号加位数,的表示方法。例如:PSW.5。,例,SETB 3DH,;将片内RAM位地址3DH即27H 单元的第5位置“1”。,b.位名称的表示方法。例如:PSW.5是F0标志位,可使用F,11,7相对寻址方式,在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把PC的当前值加上偏移量就构成了程序转移的目的地址:,目的地址=转移指令所在的地址+转移指令的字节数+rel,偏移量rel是一带符号的8位二进制数补码数,。,范围是:128,+127,向地址增加方向最大可转移(127+转移指令字节)个单元地址,向地址减少方向最大可转移(128-转移指令字节)个单元地址。,7种寻址方式及寻址空间,见表3-1(P43)。,7相对寻址方式,12,例,JC 03H,;若进位C0,则程序顺序执行,即 不跳转,PC PC+2;若进位C1,则以PC 中的当前内容为基地址,加上偏移量03H 后所得到的结果为该转移指令的目的地址。,例 JC 03H;若进位C0,则程序顺序执行,即,13,指令,寄存器,译码,地址,译码,程序计数器,地址寄存器,累加器A,运算器,存,储,器,内部数据总线,外部地址总线AB,数据缓冲器,外部数据总线DB,寄存器区,外部控制总线CB,内部控制信号,时钟及清零,单片机的工作过程,取指过程,例:,MOV A,#09H,74H,09H,;把09H送到累加器A中,执行过程,PC=,0000H,0001H,0000H,0002H,0 1 1 1 0 1 0 0,0 0 0 0 1 0 0 1,(PC),(PC),0001H,0002H,0000H,外部控制总线CB,取指过程,(PC),执行过程,你知道PC的作用吗?,返回,地址程序计数器地址寄存器累加器A运算器外部地址总线AB数据缓,14,
展开阅读全文