2014-10-04 271 views
0

任何人都可以帮助我了解此代码如何影响寄存器ctl0中的值(不考虑保留位)。这里是代码操作控制寄存器

rdctl r6,ctl0 
andi r6, r6, 0x0006 
wrctl ctl0, r6 
+2

什么你难道不明白这个代码?这非常简单。 – duskwuff 2014-10-04 21:50:45

+0

我不明白这个问题。答案是:ctl0中的值是r6和0x0006的值? – CLearner 2014-10-04 21:58:02

+0

你认为这是礼仪吗? – CLearner 2014-10-04 22:40:44

回答

0

等效的C伪代码将是:

r6 = ctl0;   // rdctl r6, ctl0 
r6 = r6 & 0x0006; // andi r6, r6, 0x0006 
ctl0 = r6;   // wrctl ctl0, r6 

所以,换句话说,

ctl0 = ctl0 & 0x0006; 
+0

任何人都可以告诉我如何撤销此操作?如何获得ctlo的原始价值? – CLearner 2014-10-06 00:22:56