百科问答小站 logo
百科问答小站 font logo



CS:IP寄存器多任务模式下是怎么设置的? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

假设题主使用的是单核CPU,那么CS:IP肯定只有一个。

被调试程序并不是“持续”运行的,对于单步调试来说,被调试程序执行了一条指令,就会停下来,把当前程序的所有寄存器(包括CS:IP)都保存到一个特定的位置上,之后调试器会从这个位置上读取被调试程序的CS:IP,并显示给你。

调试模式下,你停下来的只是被调试程序,而不是CPU本身。

多任务模式下,CPU时间被拆分成若干个时间片(过去的情况下一般是16ms),把时间片分给各个程序(进程/线程)执行,看上去好像是流畅的执行,实际上CPU是在不停的切换任务。

多核也是一样的。




  

相关话题

  为什么保护模式只能向更高特权级代码段转移控制? 
  计算机系本科生有必要学习汇编语言吗? 
  8086/8088寄存器BX,书上写是基址寄存器,这个基址指的是什么,程序里用BX一般都是放偏移地址? 
  有哪个高手可以解读“世界黑客编程大赛第一名的作品(97年Mekka ’97 4K Intro)”? 
  x86 win32下的汇编指令集可认为是 cpu提供的指令集 + win32提供的指令集 吗? 
  为什么8086CPU不支持将数据直接送入段寄存器的操作? 
  汇编转换到机器码的时候,寄存器占几个字节? 
  对于这一条add指令,ALU是不是会被使用2次来分别计算有效地址和数据?而且是在1个阶段内还是2个阶段 
  linux内核切换成分页模式后,ljmp $__BOOT_CS,$1f 这行代码有什么意思? 
  为什么在汇编语言中需大量使用跳转指令,而在C语言中却尽量避免使用goto语句呢? 

前一个讨论
386处理器的64TB的虚拟寻址空间,对我们的使用,有什么现实意义吗?
下一个讨论
程序在地址空间中的位置是何时,以及如何决定的?





© 2025-01-09 - tinynew.org. All Rights Reserved.
© 2025-01-09 - tinynew.org. 保留所有权利