1、DPTR:数据指针寄存器,是一个16位的寄存器,用于指向数据存储区中的某个地址,一般用于程序与外设之间的数据传输。
2、R0:寄存器0,是一个8位的寄存器,可以用于存储数据或地址。
3、R1:寄存器1,也是一个8位的寄存器,用途和R0类似,可以用于存储数据或地址。
汇编语言中有一个寄存器间接寻址,其实就是指针功能的具体体现。比如:clrram:
mov r0,#30h将指针首地址赋值给R0
mov r2,#16 ;共处理16个地址的值
clr a累加器清0
loop:
mov @r0,aR0地址的内容清0
inc r0;地址(指针)加1
djnz r2,loop;是否处理完16个数据?
ret
这段程序将地址30H~3FH的内容清0,用的就是指针方式。
c语言中的指针和汇编语言中的寄存器间接寻址差不多。c语言中变量的指针就是该变量的地址。如指针变量p的地址为2000H,则*p所访问的是地址2000H的存储单元,x=*p,实现把地址2000H的存储单元的内容送给变量x。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)