找回密码
 注册
关于网站域名变更的通知
查看: 295|回复: 1
打印 上一主题 下一主题

分析arm代码

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-7-11 09:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
/*设置GPB5~GPB8为输出端口*/
7 I/ M$ h- A+ j3 ?" @3 G5 Q0 K! W/ v1 R) @  t5 n  r3 d: s
; o3 S, Q8 m6 {$ c/ \
rGPBCON  &=  ~((3<<10)|(3<<12)|(3<<14)|(3<<16));' ?3 a  M$ H2 }/ s/ Q
: R) ]4 C0 U# Z5 B

6 X( E; @8 b4 w8 }+ |# L* l, \0 Q" ?rGPBCON  |=  ~((1<<10)|(1<<12)|(1<<14)|(1<<16));  ]+ Q* V' T; R9 W6 v+ L
9 h6 p, b3 p# z6 X& G# x8 \6 r

. V. Z8 v9 {' M6 Q$ o9 H6 w6 e, `上面的两条指令的含义:
6 B  v- m. W' Y: I8 |; i+ |9 y" V% e/ w* t3 ?& X4 ~* V

2 L% \6 b5 h- v7 Y! X& s* n, I5 H+ k6 @% z2 Y% U2 L

# ]6 O3 K! B* p( R
3 o% @6 B2 Z3 B: R6 [+ _

9 c+ M  A& I3 P9 j3 r! _, HrGPBDAT = rGPBDAT&(LED1_ON)&(LED2_ON)&(LED3_ON)&(LED4_ON)
* _# F6 d$ c' k  N: Q" E+ b
! ^; z9 |9 ]# E6 X, j. K- E
+ a- {  P& X- p9 W
分析:为什么不是直接把(LED1_ON)&(LED2_ON)&(LED3_ON)&(LED4_ON)的值赋给寄存器,还要与其本身"&"呢?3 o8 |1 D0 H0 t, C0 V
5 ]1 m! P9 M; ]7 h4 s
, L% y4 `- b3 {# ]8 o9 q* n
原因:因为前面已经知道要想使LED亮,只需要修改GPB5、GPB6、GPB7、GPB8,使它们输出为1.而不能修改其他的寄存器的值* X9 p2 |; w; T( ?- _& O

5 E0 g8 m+ a- a. [: D* O' z  y- X$ l
' Q( f& m- a8 G" b  l
如果直接赋值的话有可能会修改其他的寄存器的值(其他的寄存器有可能正在被使用)。
/ a! z' V+ ~1 u
/ T6 w0 f/ b/ {1 G
3 O% s  w0 z/ A; P" A

+ O5 L" R6 }$ T* G" M. b
6 W! I+ `6 o) v- [2 j! D# t( c4 J

& y$ ~0 p  B/ [: X# c7 Y3 J
2 L) ~$ g: o* s- y9 a4 W
% D& w0 d* v0 F+ m- N2 g
6 |& r, _- P, P" ^* I& X
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 22:52 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表