想必现在大家对于单片机寻址方式详解这方面的内容都很感兴趣,那么今天吉女士也是在网络上收集了一些关于跟电师傅学单片机9单片机四种寻址方式图文新解相关的信息分享给大家,希望能够解答大家的问题。
单片机80C51提供了七种寻址方式,前面已经讲了三种,现将余下的四种介绍如下:
寄存器间接寻址示意图
通过“1”号箱间接找信的地址“2”号箱,找到“2”号箱才能拿到放在里面的信。
通过寄存器“R0”间接找到操作数的地址3AH,找到地址3AH才能找到放在里面操作数65H。
3AH只是个地址,65H才是操作数哦!
例如:
注意:
单片机寄存器间接寻址只能用以下3种寄存器:R0,R1,DPTR。其它的不具备间接寻址功能。
变址寻址示意图
例 如:
单片机查表指令:查找关键数据
注意:
MOV指令中加了1个“C”:说明只能到程序存储器中去取数,不能到数据存储器里取数。
相对寻址示意图
单片机相对寻址和前面5种寻址方式不同,前面5种寻址方式都是找操作数。
相对寻址不是找操作数,不需要是个具体的数据。
是以PC的内容作为基础地址,加上指令中给定的偏移量作为转移地址,它只适用于双字节转移指令。称为单片机相对寻址方式。
例如:
SJMP 03H;
SJMP:跳转,转移。
单片机PC指针下正在指向2003H,本来是一步一步的往下执行。如果想直接跳到2006H处去取指令,就要加上差值03H。
当前PC值与目的PC值的相对差(相对偏移量),现在程序运行的当前地址和将要执行指令的地址之前的差值:
2006H-2003H=03H
将要执行指令的地址:
PC 03H=2003H 03H=2006H
单片机位寻址地址表
位寻址示意图
在单片机位寻址区内,单片机CPU不仅具有字节寻址能力,而且还可以对16个单元中每一位(一共有128个位)进行寻址。称为位寻址。
例如:
SETB 3DH;将单片机位寻址区的27H单元的D5位:3DH置1。