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

单片机的程序指针

发布时间: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

阅读全文

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

热点内容
桌面怎么老是蹦出新建文件夹 浏览:705
阿里云端服务器怎么下载 浏览:92
开发app哪里最好用 浏览:526
安卓大屏导航怎么装频谱软件 浏览:753
魔百盒如何删除自带app 浏览:287
入住酒店哪个app首次优惠大 浏览:6
铸铁压缩和扭转的断口破坏形式 浏览:234
单片机外文资料 浏览:117
myeclipsejava文件乱码 浏览:750
魔兽世界安苏服务器为什么叫贵族 浏览:747
程序员做火锅视频 浏览:288
ug数控车编程教程 浏览:693
斗地主压缩包 浏览:219
程序员走秀 浏览:942
阿里云服务器非五天无理由退款 浏览:192
pdf转jpg工具的注册码 浏览:712
pdf保存打印 浏览:517
csgo社区服务器怎么显示技术升级 浏览:432
程序员快餐模式教学 浏览:362
单片机pc接口 浏览:804