【问题标题】:At what stage is software converted to actual hardware signals?在什么阶段将软件转换为实际的硬件信号?
【发布时间】:2012-03-17 12:43:25
【问题描述】:

程序在机器码状态后会发生什么?汇编器/编译器将高级代码或汇编代码转换为机器指令。在这个阶段,机器指令仍以软件形式存在于内存中。这段代码如何转换为物理电信号,然后由硬件处理?如果有某种接口设备,我想知道它是如何进行转换的。

【问题讨论】:

  • 从您的肌肉和手指触摸键盘上的按键开始,源代码就变成了电信号。这通过编译和执行继续。 Petzold 有一本书叫做 Code,你可能会觉得它很有趣。
  • @dwelch:谢谢。这就是我一直在寻找的,代码变成电信号的确切时刻。如果你能把它写成答案,我会接受。

标签: assembly hardware hardware-interface machine-code


【解决方案1】:

从您的肌肉和手指触摸键盘上的按键开始,源代码就变成了电信号。这通过编译和执行继续。 Petzold 有一本书叫做 Code,你可能会觉得它很有趣。

【讨论】:

    【解决方案2】:

    记忆是物理的。处理器向存储器设备查询下一条指令。响应处理器在选择内存位置地址的 32 条实际线路上设置的高电压或低电压。作为回报,该存储器旨在通过一组 32 根电线提供高电压或低电压。这些线路称为数据总线,并被路由回处理器,在处理器中对高电压或低电压状态进行采样并放置在称为指令高速缓存的较小内存中。从内存中读取的值是数学表示的物理表示,我们称之为机器码。

    从那时起,处理以数字逻辑的形式继续进行。虽然它可以用数学或符号来表示,但实际的物理表现是逻辑电路,它将输入感知为高电压或低电压,并以高电压或低电压响应电路的其他部分。通过以非常规则的时间间隔在高或低之间振荡一些信号来控制时序。

    【讨论】:

    • 哇,谢谢你的精彩解释!
    【解决方案3】:

    Dwelch 是正确的。触摸键盘(或鼠标或触摸屏)的那一刻。计算机内部的软件只不过是通过使用锁存器/触发器(晶体管电路)来存储电压。当您通过键盘输入代码(C 等高级语言或汇编程序等低级语言无关紧要)时,它会作为电信号(电压)输入。但是,您在显示器上看到的是用英语或类似文本的英语表示的电压(现在是世界上所有语言的日子)。

    关键是文本不会被转换成电信号。该软件已经采用这种形式(电压),而不是相反。

    【讨论】:

    • 我不会说软件在这里是“电压”的形式。位不一定存储为“电压”,但更常见的是磁荷,光学......
    【解决方案4】:

    没有将软件指令转换为硬件指令的时刻。甚至将高级编程语言的代码转换为低级编程语言的过程也是由底层的硬件完成的。

    这与要求计算机执行生成的机器代码没有什么不同,因为这就是计算机所做的一切:执行机器代码。创建二进制可执行文件后,计算机只需要知道它在内存中的位置即可开始执行。

    【讨论】:

      猜你喜欢
      • 2011-03-03
      • 2016-04-26
      • 2011-07-15
      • 2017-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多