当前位置:网站首页>【问题思考总结】为什么寄存器清零是在用户态进行的?
【问题思考总结】为什么寄存器清零是在用户态进行的?
2022-07-01 05:33:00 【kev_gogo】
问题提出
在看到王道书上这个题的时候,我首先想到这个不是有很多寄存器是不透明的吗,因此不是应该用户态一定操作不了,甚至是管态都操作不了吗,基于这个思想,我进行了一定的查阅。
思考
经过查找发现,事实上如果想到了汇编的层面(但是这对我一个非科班学生没学过真的有点难唉,感慨学艺不精)就简单很多了。举一个最简单的例子:int i=0,这句代码实际上就是将一个寄存器里的值设为0,而这样的操作显然是很平常的操作,也完全用不到进入管态,因此是在用户态(目态)进行。
延伸思考
C语言细节
经过思考我又想到难道所有设置变量都是在寄存器中?可是寄存器是有限的啊,于是查找发现在C语言中用户可以自己定义寄存器变量如:register int i=0,这样的格式,而即便不这样做,编译器也可能会将变量存在寄存器中因为显然对于某些变量存在寄存器中可以极大提高系统的效率(比如经常使用的变量,在循环中的变量,基于局部性原理,这个括号内为个人猜想)。
寄存器细节
另外,为了证实寄存器可以存放变量,我又想起了程序员透明和程序员不透明这个知识点,经过查阅发现,通用寄存器是汇编程序员不透明,这也证实了之前的汇编层调用寄存器说法的真实性
参考资料
【1】http://www.cskaoyan.com/thread-7075-1-10.html
【2】https://blog.csdn.net/HumanpieceY/article/details/85917291
边栏推荐
- 轩逸保养手册
- Dynamic verification of new form items in El form; El form verifies that the dynamic form V-IF does not take effect;
- Actual combat: gateway api-2022.2.13
- Lock free concurrency of JUC (leguan lock)
- Thread process foundation of JUC
- [ffmpeg] [reprint] image mosaic: picture in picture with wheat
- 从底层结构开始学习FPGA----RAM IP的定制与测试
- QT waiting box production
- Rust hello-word
- SSM的教务管理系统(免费源码获取)
猜你喜欢

云原生存储解决方案Rook-Ceph与Rainbond结合的实践

Typeorm framework

Ssm+mysql second-hand trading website (thesis + source code access link)

2/15 (awk, awk conditions, awk processing design can perform additional tasks, and use awk array +for loop to realize advanced search)

El cascade echo failed; El cascader does not echo

Use and principle of AQS related implementation classes

Set set detailed explanation

Actual combat: basic use of Redux

Spanner 论文小结

Dynamic verification of new form items in El form; El form verifies that the dynamic form V-IF does not take effect;
随机推荐
轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷
QT waiting box production
And search: the suspects (find the number of people related to the nth person)
Dynamic verification of new form items in El form; El form verifies that the dynamic form V-IF does not take effect;
Vmware workstation network card settings and three common network modes
JDBC common interview questions
Printk debugging summary
数据治理:元数据管理实施(第四篇)
HDU - 1024 Max Sum Plus Plus(DP)
CockroachDB 分布式事务源码分析之 TxnCoordSender
What is the at instruction set often used in the development of IOT devices?
Flowable source code comment (XXXIX) task listener
Tar command
工业导电滑环的应用
LevelDB源码分析之memtable
tese_Time_2h
如何选择导电滑环材料
了解 JVM 中几个相关问题 — JVM 内存布局、类加载机制、垃圾回收
Redis database deployment and common commands
Qt编译时,出现 first defined here,原因及解决方法