ARM微处理器的工作状态 正常程序执行过程中,每执行一条指令,PC值产变化。

ARM微处理器的工作状态 正常程序执行过程中,每执行一条指令,PC值产变化。,第1张

这跟CPU的位宽和代山塌码指令集有关。比如说你的CPU是带唯拿32位的,采用ARM格式执行的代码,那么每执行一条指令,PC指针递增4个字节。但是,如果你是按照thumb格式编译执行的代码,每执行一条指令后蠢搭,PC指针递增2个字节。

shuzu: .int 2,3,5,3,-1,-2,-4,-7,-8,-133

shiyan:

ldr r0, = shuzu

mov r4, # 10

mov r3, # 0

qushuju:

ldr r1, [r0], # 4

ldr r2, = 0x80000000

ceshi:

tst r1, r2

it ne

addne r3, # 1

lsrs r2, # 1

bne ceshi

subs r4, # 1

bne qushuju

panduanqishu:

tst r3, # 1

ite ne

movne r0, # 1 @ 奇数R0=1

moveq r0, # 0 @ 其他R0= 0

tiaochu:

b tiaochu

ARM指令集是32位的,THUMB是16位的。他们可以动升禅态切换。你可以认为ARM是80386,而THUMB是8086。对于32位和16位CPU的差别,他们之间也同凳笑差样存在,有人统计数据:-----------------------------------------------------------------------------在一般的情况下, Thumb 指令与ARM 指令的时间效率和空间效率关系为: — Thumb 代码所需的存储空间约为ARM 代码的60%~70% — Thumb 代码使用的指令数比ARM 代码多枣皮约30%~40% — 若使用32 位的存储器,ARM 代码比Thumb 代码快约40% — 若使用16 位的存储器,Thumb 代码比ARM 代码快约40%~50% — 与ARM 代码相比较,使用Thumb 代码,存储器的功耗会降低约30%


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12409545.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存