你好!欢迎来到 !
语言
当前位置: 首页>> 技术中心>> 单片机入门>> 单片机几种不同的寻址方法

单片机几种不同的寻址方法

作者:admin 来源:不详 发布时间:2018-05-08 浏览:0
  1. 立即寻址
  例: MOV A , #10H ;将立即数 10H 送给 A 累加器,即 (A) ← 10H
  注意:立即数的前面必有 “#” 标志。
  2. 直接寻址
  例: MOV A , 36H ;将内部 RAM 中 36H 单元内的数据
  送到累加器 A 中,即 A ← (36H)
  在上面这条指令中,带下划线的操作数是所在存储单元的地址,这种寻址方式称为直接寻址。直接寻址方式中操作数所在存储器的空间有板有 3 种 :
  (1) 内部数据存储器的 128 个字节单元 ( 内部数据存储器地址 00H~7FH)
  (2) 位地址空间 .
  (3) 特殊功能寄存器 , 特殊功能寄存器只能用直接寻址方式进行访问 .
  3. 寄存器寻址 (Rn)
  例: MOV A, R3 ;将通用寄存器 R3 中的数据送给 A ,即 A ← (R3)
  在上面这条指令中,带下划线的操作数 ( 源操作数 ) 是当前工作寄存器区
  的某个寄存器,这种寻址方式称为寄存器寻址。
  比如:
  XCH A, R1 ;累加器 A 和寄存器 R1 中的数互换
  ADD A, R2 ; 累加器 A 和寄存器 R2 中的数相加
  4. 间接寻址
  例: MOV R0, #30H
  MOV A , @R0 ;以 R0 中的内容作为操作数的地址 .A ← ((R0)). 在上面的指令中,带下划线的不是 R0 ,而是以( R0 )为地址,间接找到内部 RAM 中的 30H 单元,将 (30H) 送给 A ,这种寻址方式称为寄存器间接寻址。
可用 R0、R1 和 DPTR 作间址寄存器,访问片内 RAM 或片外 64KB 的 RAM 地址空间。
  比如:
  MOV DPTR, #0CFA0H ;将十六位地址 CFA0H 赋给数据指针 DPTR
  MOVX A, @DPTR ;将片外 RAM ( CFA0H )单元内的数送给 A

5.基址加变址寻址
  例:
  MOVC A, @A+DPTR ;将地址为 (A) + (DPTR) 的 ROM  ;单元中的数送给 A
  在上面这条指令中,带下划线的操作数是以( DPTR )为基址,( A )为变址,将两者之和作为地址,找出该地址对应的 ROM 单元,再将该单元的数送给 A ,这种寻址方式称为基址加变址寻址方式。 MCS-51 单片机中还有两条变址寻址指令:
  MOVC A, @A+PC
  MOVC A, @A+DPTR

6.相对寻址
  例:
  CJNE A , #80H , BUDENG ;如 (A) ≠ 80H ,跳转到 BUDENG
  JNC DAYU ;如 (A) > 80H ,跳转到 DAYU
  ……
  BUDENG: SETB FLAG0 ;置位标志位 FLAG0
  ……
  DAYU: SETB FLAG1 ;置位标志位 FLAG1
  ……
  在上面这个程序片段中,带下划线的操作数指明了程序跳转的目的位置,这个目的位置的 PC 相对于下一条程序语句的 PC 不得超出 -128 ~ +127 字节的范围。

7.特定寄存器寻址
  例:INC A ; 累加器内容加 1.
  INC DPTR ; 数据指针 DPTR 的内容加 1.
  累加器 A 和数据指针 DPTR 这两个使用最频繁的寄存器又称为特定寄存器 ,
  故称特定寄存器寻址 .

编辑:admin 最后修改时间:2018-05-08

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright ? 2014-2023 All Rights Reserved.粤ICP备14043402号-4

Baidu
map