首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么当我使用另一个程序时,中显示的CPU寄存器值不会改变(例如。( Windows计算器)

为什么当我使用另一个程序时,中显示的CPU寄存器值不会改变(例如。( Windows计算器)
EN

Stack Overflow用户
提问于 2020-07-10 20:59:01
回答 1查看 248关注 0票数 0

我正在学习组装和一些低级的计算工具,作为一个有趣的学习练习。如果VS Studio在调试>寄存器中向我展示了我所有的CPU可用寄存器,那么当我在计算机上进行计算时,在VS Studio中调试的程序之外,为什么寄存器中显示的数据不会改变?我是否正确地假设,计算机所做的任何计算或操作都需要寄存器?那么VS Studio只是在模仿我的CPU寄存器吗?如果没有,那么到底发生了什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-10 21:10:11

您只看到当前线程的寄存器。当Windows将上下文更改为另一个线程或进程,或处理中断时,将保存当前寄存器,并将被切换到的线程的寄存器还原。因此,线程中的寄存器不受运行其他程序(调试器类型程序例外)的影响。

此外,每个进程都在虚拟地址空间上。多进程程序可以在进程之间设置共享的物理内存空间,但是每个进程可能对相同的共享物理内存使用不同的虚拟地址。

某些类型的I/O控制器需要使用物理内存进行传输。虚拟存储器被锁定,然后转换成物理地址和长度的列表,对应于用于虚拟内存的4096字节页。一旦I/O完成,虚拟内存就会被解锁。

https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/using-mdls

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62842191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档