导航:首页 > 操作系统 > 单片机的程序指针

单片机的程序指针

发布时间:2022-11-30 11:01:33

A. 51单片机中程序指针PC和数据指针DPTR各自有什么用途电路复位后,二者的值各是多 少

程序计数器PC(program Counter)
程序计数器在物理上是独立的,它不属于特殊内部数据存储器块中。PC是一个16位的计数器,

用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。PC本身并没有地址,因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序按我们的要求去执行。

复位后为0000H(16位)

数据指针(DPTR)
数据指针为16位寄存器,编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用,即高位字节寄存器DPH和低位字节DPL。
DPTR主要是用来保存16位地址,当对64kB外部数据存储器寻址时,可作为间址寄存器使用,此时,使用如下两条指令:

MOVX A, @DPTR
MOVX @DPTR, A

在访问程序存储器时,DPTR可用来作基址寄存器,采用基址+变址寻址方式访问程序存储器,这条指令常用于读取程序存储器内的表格数据。

MOVC A, @A+@DPTR

复位后为0000H(16位)

B. 51单片机 如何利用程序指针实现跳转

方法1:
MOV
DPTR
,#LOCA
;取得JMP
@A+DPTR的地址(PC)
MOV
A,#4
;跳转步长
LOCA:
JMP
@A+DPTR
(注:JMP
@A+DPTR是一条1字节的指令,执行该条指令后PC=LOCA+1,如果想取该指令之后的PC,可以用方法2)
方法2:
MOV
DPTR
,#LOCA
;取执行JMP
@A+DPTR后的地址(PC)
MOV
A,#4
;跳转步长
JMP
@A+DPTR
LOCA:
程序行1
程序行2
……
……
……
程序行N
方法3(程序跳转表):
MOV
DPTR
,#LIST
;取程序跳转表首地址
MOV
A,R0
;取跳转偏移(跳转偏移存在R0中)
JMP
@A+DPTR
程序行1
程序行2
……
……
……
程序行N
LIST:
SJMP
FUN1
SJMP
FUN2
SJMP
FUN3
……
FUN1:
……
FUN2:
……
FUN3:
……

C. 51单片机编程大循环后边括号里可以带指针吗

可以带。
在51单片机的嵌入式C语言中,指针同样是被支持的。所以在单片机上一样可以使用指针操作,具体使用方法,与标准C语言并没有不同。
不过需要注意的是,使用指针代表着间接寻址,相对变量的直接寻址,速度要稍慢一些。而单片机运算速度较慢,大量使用指针有可能会降低执行效率,影响效果。所以除非必要,还是少用指针。

D. 在汇编语言写单片机的程序的时候,如何知道当前的PC指针是多少

当前PC指针的值,可以通过一定的方法来获得,比如如果使用LCALL指令,那么单片机执行过程是:保护现场,将当前PC压入堆栈,当程序返回时,再弹出该保护的PC,由此,我们就可以获得当前的PC,具体程序如下:
........
LCALL GETPC ;调用一个子程序以获得当前PC值
...........

GETPC:
POP ACC ;取得PC高八位
POP B ;取得PC低八位
PUSH B ;恢复SP
PUSH ACC ;恢复SP
......
RET

阅读全文

与单片机的程序指针相关的资料

热点内容
程序员面试评价 浏览:128
手表加密门禁卡 浏览:238
psf已加密 浏览:553
返利app怎么用教程 浏览:888
一个程序员写的诗火了 浏览:613
red摄影机压缩比 浏览:410
app账号怎么弄 浏览:823
hc0551单片机 浏览:755
喷淋管道支架算法 浏览:592
压缩机坏了电脑无法启动 浏览:241
不小心加密了怎么去掉 浏览:955
linux命令行连接db2 浏览:898
洪恩app怎么设置护眼模式 浏览:971
小猿口算app怎么选课时 浏览:421
手机号脱敏加密解密 浏览:169
台电加密u盘多少钱 浏览:547
控制面板文件夹怎么隐藏 浏览:846
opticspdf 浏览:593
抖店app怎么快速退保证金 浏览:972
阿里云服务器的密码在哪改 浏览:908