① 双数据指针是一个几位的专用寄存器
16位的。
双数据指针的官方给出的信息是16位专用寄存器,由DPL和DPH组成。
双数据指针,主要功能是用来寻址外部数据存储器的16位地址寄存器,也可寻址存放在64KB程序存储器中固定数据。
② 把单片机外部RAM4800H-480FH单元内容转移到片外RAM5800H-580FH中,该如何用汇编语言编程
嘿嘿 可以采用2种方式 来实现。1 可以先将外部RAM4800H-480FH单元内容转移到单片机片内数据存储器的缓冲区; 再片内数据存储器的缓冲区内容传送给片外RAM5800H-580FH单元。 (可以使用双指针 DPRT做片外数据存储器指针 R0做片内数据存储器指针) 优点是编程实现起来比较容易。2 直接将单片机外部RAM4800H-480FH单元内容转移到片外RAM5800H-580FH中; 只能使用单指针DPRT,即DPRT既要做片外数据存储器的源操作数指针 同时也要 做片外数据存储器目的操作数的指针;要来回切换,源操作数地址和目的操作数都 需要保存。 缺点:编程实现起来比较复杂,但不占用单片机的内部数据缓冲器。 呵呵 满意 就选满意回答 具体还有不清楚的 可以找我③ 指针存储器和变址存储器的区别
指针用来指向一个地址。使用这种寻址方式的优点在于可以在程序运行过程中实现变址。 指针用于存储器间接寻址
④ AT89S52 双数据指针能同时用吗或者需要怎么设置
AT89S52支持双数据指针Dual DPTR,需要增加头文件为\keil\C51\INC\Atmel\At89s53.h,即可使用DPL1,DPH1,不过在切换指针时,需要先配置AUXR寄存器中的相关位。
⑤ 程序存储器,堆栈和外部数据存储器各使用什么指针
1、程序存储器指令地址使用程序计数器PC指针,PC中存放的是下一条将要从程序存储器中取出的指令的地址。程序计数器PC变化的轨迹决定程序的流程。PC最基本的工作方式是自动加1。在执行条件转移或无条件转移指令时,将转移的目的地址送入程序计数器,程序流向发生变化。在执行调用指令或响应中断时,将子程序的入口地址或者中断矢量地址送人PC,程序流向发生变化。
2、堆栈地址使用堆栈指针.SP。SP在80C51中存放当前的堆栈栈顶所指存储单元地址,是一个8位寄存器,对数据按照“先进后出”原则进行管理。外接数据存储器地址使用数据指针DPTR。DPTR是一个16位特殊功能寄存器,主要功能是作为片外数据存储器或I/0寻址用的地址寄存器,这时会产生RD或wR控制信号,用于单片机对外扩的数据存储器或I/0的控制。 3、数据指针DPTR也可以作为访问程序存储器时的基址寄存器,此时是寻址程序存储器中的表格、常数等单元,而不是寻址指令。