2

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

4

4 回答 4

8

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

于 2012-03-17T22:09:00.677 回答
6

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

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

于 2012-03-17T12:59:08.157 回答
6

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

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

于 2012-11-03T21:13:26.417 回答
3

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

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

于 2012-03-17T12:58:24.960 回答