MCS-51寻址方式

MCS-51寻址方式

立即寻址

原操作数为需要写入的数据.直观一点说,类似于赋值语句.

MOV A,#20H

其中#20H为原操作数,#用来说明该操作数是常数,也就是所谓的立即数,而不是一个地址

这里20H虽然是可位寻址区,但是该指令是将20H单元中内容送到A

直接寻址

原操作数为地址,表示将原操作数所指向的地址中的数据送到目的操作数中.

MOV A,32H

直接寻址可以访问

  1. SFR
  2. 内部RAM的低128字节
  3. 位地址

寄存器寻址

将寄存器中的数据送到目的操作数中.于直接寻址相似,就是将原操作数从具体地址变成了寄存器

MOV A,R1

寄存器间接寻址

先将所取数据的地址放到工作寄存器中,通过访问工作寄存器来间接访问数据

MOV A,@R0

比如我在R0中放了一个地址60H,然后我去@R0=60H,所以上面这条指令就等效于

MOV A,60H

寄存器间接寻址可以用的寄存器有R0,R1 | DPTR | SP.所以可以从

  1. 内部RAM低128字 \to R0 | R1
  2. 外部RAM的低128位 \to R0 | R1
  3. 外部RAM \to DPTR
  4. 堆栈 \to SP

寄存器间接寻址是访问寄存器内存储的数据所代表的地址

寄存器寻址是访问寄存器内的数据

基址加变址寻址

类似于数组的操作.其中基址寄存器中存储数组首地址,变址寄存器存放下标

MOVC A,@A+DPTR

这种寻址方式只能对ROM寻址

位寻址

对位寻址区和可位寻址的SFR进行操作

MOV C,20H

位地址可以表示如下

  1. 使用位地址
  2. 位名.如进位位Cy
  3. 位寻址区地址加位.20H中D1位:20H.1
  4. 特殊功能寄存器加位.Cy位又可表示为PSW.7
发布了161 篇原创文章 · 获赞 170 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/white_156/article/details/103747731