机器运行及其“操作手册”设置“


  计算机系统运行的核心是 CPU 利用其自身计算单元和控制线,在内置寄存器的协助下,操作 “ 线性地址空间(对 CPU 而言) ” 的过程。X86 架构计算机系统采用 “冯.诺依曼” 结构,指令和数据在统一的地址空间以 “混合排放” 的方式存储,因此,对于 X86 架构 CPU 而言,其只需操作一根 “线性内存” 即可。这一点与哈佛架构完全不同。

20160307

  “唯一” 的 “线性内存” 既要存储指令,也要存储数据,为了更好的管理这一宝贵的资源,X86 架构 CPU 设计许多逻辑概念对 “线性内存“ 进行管理。对内存进行逻辑上 “分段” 管理,即将内存分为许多 “小段”,每个 “小段” 存储内容不同。例如,有些内存段存放代码,即 “代码段”,有些内存段存放数据,即 “数据段”,有的则作为堆栈使用。具体 “线性内存” 各个段中哪个段是代码段、哪个段是数据段、哪个是堆栈段,这个解释权归 CPU 专有,CPU 根据具体运行情况而定。各个内存段处于同一地址空间内,如何对这些用途不同的内存段进行定位(解释)呢?为此,CPU 设置了专门的寄存器来存放不同用途内存段的地址(段地址 + 偏移地址),以此来找到不同用途的内存段。例如,CS 和 IP 标定了当前执行的代码地址,DS 标定了当前使用的数据段地址,SS 和 SP 则标定了当前堆栈栈顶的地址。

  X86 架构的机器指令,即 X86 指令集,作为 CPU 的 “操作手册” ,当然要与 CPU 的特点相适应。X86 指令集中也具备设置处理各个专门寄存器的指令。通过机器语言(或汇编语言)对各个专门寄存器中数值的设定,即可访问各个不同用途内存段,进而达到控制 CPU 指令执行和数据读取的效果。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇