pc+3 是指什么意思,是加3个字节?谁能结合背景知识透彻分析下,谢谢

wykqhyjs 广东省电信规划设计院有限公司 研究人员  2012-06-28 12:40:37
如题
...全文
152 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongzhipeng5699 2012-06-28
pc应该是一个指针吧
pc+3指向的是pc往后移动3个元素的位子,移动的大小根据指针的类型不同
比如 char* pc,那么pc+3那么就是加3个char的大小,也就是3个字节
int* pc 那么pc+3 那么移动的就是3个int,也就是12个字节。
回复
_Minzey 2012-06-28
pc 是什么? 如果是指针, 比如 int* pc; 那 pc + 3就是指 pc的地址加上 sizeof(int)*3
回复
烟袅许伊 2012-06-28
。。。PC是什么,你说清楚。。。PC类型不一样这个也是不一样的。。
回复
dx364797629 2012-06-28
[Quote=引用楼主 的回复:]
如题
[/Quote]
在arm汇编中,pc+3是跳到下面第三条指令开始执行,
回复
赵4老师 2012-06-28
[Quote=引用 7 楼 的回复:]
是下三条指令的地址
[/Quote]
应该是下三个字节偏移开始的指令码的首地址
回复
左眼看到鬼 2012-06-28
pc现在的地址所在的指令向下执行三步,的指令的地址
回复
luoyingbinfeng 2012-06-28
为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定下一条取指指令的地址。程序计数器(PC )正是起到这种作用,所以通常又称之为‘指令计数器’。CPU总是按照PC的指向对指令序列进行取指、译码和执行,也就是说,最终是PC 决定了程序运行流向。故而,程序计数器(PC )属于特别功能寄存器范畴,不能自由地用于存储其他运算数据。
在程序开始执行前,将程序指令序列的起始地址,即程序的第一条指令所在的内存单元地址送入PC,CPU 按照 PC的指示从内存读取第一条指令(取指)。当执行指令时,CPU自动地修改PC 的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数(指令字节数),使 PC总是指向下一条将要取指的指令地址。由于大多数指令都是按顺序来执行的,所以修改PC 的过程通常只是简单的对PC 加“指令字节数”。
当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的目标地址。处理器总是按照PC 指向取指、译码、执行,以此实现了程序转移。
回复
luoyingbinfeng 2012-06-28
在程序开始执行前,将程序指令序列的起始地址,即程序的第一条指令所在的内存单元地址送入PC,CPU 按照 PC的指示从内存读取第一条指令(取指)。当执行指令时,CPU自动地修改PC 的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数(指令字节数),使 PC总是指向下一条将要取指的指令地址。由于大多数指令都是按顺序来执行的,所以修改PC 的过程通常只是简单的对PC 加“指令字节数”。
当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的目标地址。处理器总是按照PC 指向取指、译码、执行,以此实现了程序转移。
为了保证程序能够连续地执行下去,CPU必须具有某些手段来确定下一条取指指令的地址。程序计数器(PC )正是起到这种作用,所以通常又称之为‘指令计数器’。CPU总是按照PC的指向对指令序列进行取指、译码和执行,也就是说,最终是PC 决定了程序运行流向。故而,程序计数器(PC )属于特别功能寄存器范畴,不能自由地用于存储其他运算数据。
回复
scream7 2012-06-28
是下三条指令的地址
回复
mLee79 2012-06-28
你不是知道了么, 基本上就是 PC += 3 ...
回复
mLee79 2012-06-28
[Quote=引用 4 楼 的回复:]

我说的是程序状态计数器PC
[/Quote]

+++
回复
wykqhyjs 2012-06-28
我说的是程序状态计数器PC
回复
发动态
发帖子
C语言
创建于2007-09-28

6.2w+

社区成员

C语言相关问题讨论
申请成为版主
社区公告
暂无公告