单片机基础:对单片机指令系统中七种寻址方式的理解 | 您所在的位置:网站首页 › 单片机有几种中断类型 › 单片机基础:对单片机指令系统中七种寻址方式的理解 |
七种寻址方式
1.立即寻址2.直接寻址3.寄存器寻址4.寄存器间接寻址4.1记录一下调试程序过程中遇到的一个错误
5.基址加变址寻址6.相对寻址7.位寻址
1.立即寻址
立即寻址就是不寻址,直接把被操作的数据(立即数)写在指令当中。在指令代码中,需要在立即数前面加上 #,表示立即寻址。 例如:把数据40H传送到累加器ACC中。 指令 直接寻址就是将被操作的数据在存储器中的地址写在指令代码当中。也就是将操作数的地址写在指令当中。 例如:地址40H中的数据为5BH,将40H中的数据传入累加器ACC中。 指令: 寄存器寻址就是将操作数(被操作的数据)存放在寄存器中。能够实现寄存器寻址的寄存器有A、B、DPTR、R0 ~ R7。 例如: 与寄存器寻址相似,在寄存器寻址时,寄存器中存放的是操作数,而寄存机间接寻址时,寄存器中存放的是操作数的地址。只用R0、R1、DPTR可以实现寄存器间接寻址 例如:
基址寄存器只能是PC和DPTR,变址寄存器为累加器A。这种寻址方式是将PC或DPTR中得值与A中的值相加,得到的结果是操作数的地址。注意:是操作数的地址,不是操作数本身。 例如:MOVC A, @A+DPTR 这条指令是把A和DPTR中的值相加,得到操作数的地址,存到A中,然后A在根据地址去找到操作数。 MOVC A,@A+PC 同理,这条只是将DPTR换为PC。 相对寻址就是PC指针当前指向的值,与设置的JC偏移量相加得到的值作为目标地址,其中偏移量是自己设定的。 JC 80H 假如这条指令存放在1005H,取出操作码后PC指向1006H,取出偏移量后PC指向1007H,那么目标地址就是1007H + 80H,但是偏移量是有符号数,80H是-128的补码,因此最后的目标地址是0F87H。 7.位寻址单片机中21个特殊功能寄存器,其中有11个是可位寻址的(ACC、B、IP、IE、PSW、SCON、TCON、P0 ~ P3) 一共有四种表示形式,以PSW为例 直接使用位地址位名称单元地址加位特殊功能寄存器名称加位MOV C, 0D2H MOV C, OV MOV C, 0D0H.2 MOV C, PSW.2 |
CopyRight 2018-2019 实验室设备网 版权所有 |