欢迎来到学术参考网

浅谈MCS-51单片机的指令寻址方式

发布时间:2015-12-15 14:26

摘 要:

关键词:
  指令的操作对象大多是各类数据,而数据在寄存器、存储器中可以用多种方式存取。因此,计算机在执行指令过程中寻找操作数的方式,称为指令的寻址方式。每一种计算都具有多种寻址方式,寻址方式越多,计算机的功能就越强,灵活性就越大。寻址方式的多少及寻址功能是反映指令系统优劣的主要因素之一。
MCS-51指令系统的寻址方式有7种:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。
1.立即寻址
  操作数包含在指令字节中,操作数直接出现在指令中,并存放在程序存储器中,这种方式称为立即寻址。立即寻址指令的操作数是一个8位或16位的二进制常数,它前面以“#”号标识,例如:MOV A,#3AH; A←3AH
2.直接寻址
  在此寻址方式中,指令中直接给出操作数所在存储单元的地址,
如:MOV A,34H; A←(34H)。它与立即寻址的区别在于:直接寻址的指令中,操作数前不加任何标志;在直接寻址方式中操作数存储的空间有三种:
(1)、片内数据存储器的128个字节单元(00H~7FH)
(2)、位地址空间(有些书把这种寻址方式单独作一种寻址方式)
(3)、特殊功能寄存器, 特殊功能寄存器只能用直接寻址方式进行访问。
3.寄存器寻址
  由指令指出某一个寄存器中的内容作为操作数,这种寻址方式称为寄存器寻址。在这种寻址方式中,指令的操作码中包含了参加操作的工作寄存器R0~R7的代码(指令操作码字节的低3位指明所寻址的工作寄存器)。例如:ADD  A,Rn中的Rn,当n为0、1、2时,机器码分别为28、29、2A.
4.寄存器间接寻址
  由指令指出某一个寄存器内容作为操作数的地址。这种寻址方式称为寄存器间接寻址。访问外部RAM时,可使用R0,R1或DPTR作为地址指针,寄存器间接寻址方式的指令中,寄存器前用符号“@”作为标识。例如:MOV A,@RO(机器码E7)是指:若RO内容为66(内部RAM地址单元66H),而66H单元中内容是27H,则指令的功能是将27H这个数送到累加器A.
  寄存器间接寻址的寻址范围是:
(1)、片内RAM低128单元,这里只能使用R0,R1作为间址寄存器.其通用形式写为@Ri(i=0,1);
(2)、片外RAM64KB;使用DPTR作为间址寄存器,书写形式为@DPTR.
(3)、片外RAM低256单元.除可使用DPTR作为间址寄存器外还可以使用R0,R1作为间址寄存器.
(4)、堆栈区,堆栈操作指令(PUSH和POP)也属于寄存器间接寻址,即使用SP(堆栈指针)作为间址寄存器的间接寻址方式.
5.相对寻址
  相对寻址方式只出现在相对转移指令中,用来指定程序转移的目标地址。它以程序计数器PC的当前值为基址,加上指令中给出的8位地址偏移量(用补码表示)形成转移的目标地址,也可以是说:目的地地址=转移指令所在地地址+转移指令字节数+Rel
  在51单片l机指令系统中,有许多条相对转移指令。这些指令多数均为两字节指令,只有个别的是三字节指令。偏移量Rel是一个带符号的8位二进制补码数,所能表示数的范围是-128---+127.因此,相对转移指令的所在地址为基点,向前最大可转移(127+转移指令字节数)个单元地址,向后最大可转移(128-转移指令字节数)个单元地址。
例如指令:JC? 70H
  该指令表示若进位位c为o,则程序计数器Pc中的内容不变,不转移;若C为1,则以Pc中当前值为基地址,加上偏移量70H后所得结果作为该转移指令的目的地址。
6.位寻址
  采用位寻址的指令,其操作数是8位二进制数中的某一位,指令中给出的是位地址。如:SETB 20H;20H位←1 在位寻址方式的指令中,位地址常用下列两种方式表示:
(1)、直接使用位地址  这种表示方法主要用于内部RAM中20H-2FH(位寻址区)这16个单元中00H-7FH的128个位地址。
(2)、对于特殊功能寄存器中可进行位寻址的特殊功能寄存器,可直接使用寄存器名加位数表示,如:PSW.3.
  位寻址的范围是:
  (1)、片内RAM中的位寻址区
  片内RAM中的单元地址为20H—2FH,共16个单元128位.为位寻址区,位地址是00H~7FH。这128个位的寻址使用直接地址表示。例如指令:
  MOV C,2BH;
  该指令的功能是把位寻址区的2BH位状态送给位C。
  (2)、可位寻址的特殊功能寄存器位。
  可位寻址的特殊功能寄存器有11个,对应寻址位共83位。对这些寻址位在指令中有以下4种表示方法。
·直接使用位地址表示法。
·单元地址加位的表示方法。例如,88H单元的位5,则表示为88H.5。
·特殊功能寄存器符号加位的表示方法。例如,psw寄存器的位5,可表示为psw.5。
·位名称表示方法,特殊功能寄存器中的一些寻址位是有名称的。例如,PSW寄存器位5为F0标志位,则可使用F0表示该位。
  一个寻址位有多种表示方法,看起来似乎复杂,实际上将为程序设计带来方便。
  位寻址时,操作数是二进制数的某一位,其地址出现在指令中,例如指令:
  SETB bit ; (bit)---1
  综上所述,寻址方式与存储器结构有密切关系。一种寻址方式只适合于对一部分存储器进行操作,在使用时要加以注意。

上一篇:《flash动画制作》课程教学改革的探讨

下一篇:高职计算机专业课程教学中应用主题式学习的方