【发布时间】:2010-12-03 20:11:51
【问题描述】:
我了解如何将代码编译为程序集,并且该程序集是 1:1 用二进制代码替换。有人可以帮我理解二进制是如何连接到硬件的吗?二进制文件是如何物理读取和运行的? if 语句在硬件中是如何工作的?
来自google searches,我想我的问题标题应该是“二进制数据如何放在总线上”,但我不确定。
谢谢。
【问题讨论】:
-
有涵盖该主题的完整课程。当我在我的 EE 研究中学习微处理器时,我们设计了一个 8 位处理器,但要完成 14 周的笔记。因此,如果您真的想了解,最好的选择是参加 EE 课程,这意味着您必须首先掌握逻辑设计,因为其中大量使用了多路复用器。而现在,使用流水线,它变得更加复杂。要了解您需要参加计算机体系结构课程。
-
这个主题的一个小方面的答案——“二进制数据是如何放在总线上的”——可以在 Ulrich Drepper 的论文中找到:people.redhat.com/drepper/cpumemory.pdf
-
“二进制代码”是一个比您要问的更广泛的话题;相反,请尝试搜索“机器语言”。将程序集编译成机器代码不一定是 1:1 的过程,即使没有优化。
-
虽然 CS 课程主要使用 Patterson 和 Hennessy 的计算机组织和设计,但我强烈建议您学习计算系统元素。所有的答案都在里面!
标签: assembly binary runtime operating-system