- 主题:问个小白问题, 软件是如何让硬件执行,行动的
好的,谢谢!
【 在 stub 的大作中提到: 】
: 编码 隐匿在计算机软硬件背后的语言
: 发自「今日水木 on Redmi Note 8 Pro」
--
FROM 223.104.3.*
最开始的地方是硬件写死的,每次开机读磁盘的特定区域到内存,cpu操作这块内存:执行指令,读写数据,指挥从硬盘载入更多数据到内存。有些数据又被当做指令执行。逐渐扩散成一个能处理异常的操作系统。键盘鼠标光盘定时之类的都是异常,处理这些异常也会形成新的数据。其中有些又被转化成新的指令(比如敲了一段代码,敲键盘的异常被处理成内存中的代码,显示在编辑器里,编译后运行就又变成了指令),…… 指令,数据,异常不断相互作用就跑起来了。
--
FROM 114.241.87.*
你得先搞明白形式语言与自动机。
比如我设置一个最简单的状态机,它有两个状态 0 和 1,并且接受一个字符串输入。
它的逻辑是:如果当前状态为0,输入为 "+",那么将状态改为1。
这个自动机叫确定有限状态自动机(DFA)
以此延伸,还有非确定有限状态自动机(NFA)、带空转移的非确定有限状态自动机(NFA-ε)、下推自动机(PDA)、图灵机等。
现代计算机就是与图灵机等价的,它有非常非常多个状态(比如64位机器可以有2^64个状态)以及一套状态之间迁移的规则(指令集等)。那么根据当前的内存和寄存器的状态,计算机就可以自动运行起来
【 在 sunwyb 的大作中提到: 】
: 本小白有个疑问,软件究竟是怎么驱动硬件执行程序的
: 正常的解释知道,软件编程语言-编译-汇编到计算机硬件懂的语言,0,1去执行
: 我的疑问是 最终软件是怎么驱动硬件去执行呢?如何驱动硬件的高低电平的变换,从而完成计算
: ...................
--
FROM 123.58.117.*
从另一个方向回答
这好比问红绿灯这个软件怎么指挥司机这个硬件的。
红绿灯没有那么大的魔力
其实是司机这个硬件根据交通规则规则识别了红绿灯的意义。
【 在 sunwyb 的大作中提到: 】
: 本小白有个疑问,软件究竟是怎么驱动硬件执行程序的
: 正常的解释知道,软件编程语言-编译-汇编到计算机硬件懂的语言,0,1去执行
: 我的疑问是 最终软件是怎么驱动硬件去执行呢?如何驱动硬件的高低电平的变换,从而完成计算
: ....................
- 来自「最水木 for iPhone12,8」
--
FROM 172.58.35.*