在什么阶段软件转换为实际的硬件信号?

时间:2012-03-17 12:43:25

标签: assembly hardware hardware-interface machine-code

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

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

软件指令无法转换为硬件指令。即使是将高级编程语言中的代码转换为低级编程语言的过程也是由下面的硬件完成的。

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

答案 3 :(得分:2)

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

重点是文本没有转换成电信号。该软件已经采用这种形式(电压),而不是相反。