先生们,女神们,快来看啊…… 请问下,c语言通过编译器转换成汇编语言,那电脑是怎样听懂汇编语言呢?说

先生们,女神们,快来看啊……
请问下,c语言通过编译器转换成汇编语言,那电脑是怎样听懂汇编语言呢?说白了,他是无形的,怎么能让电脑动的(比如弹出光驱之类的)

1、比如弹出光驱,学过高中物理应该知道 电生磁,实际上就是个发动机,将电能转换成机械能。
2、要弄懂这个问题,举个 ia32 windows平台上的例子,我也只能大体上说一下,具体的细节在这里是说不完的。。以c++源码
int main()
{
int a = 2;为例
}
经过编译器,会生成汇编代码:mov dword ptr ss:[esp-4], 2,汇编指令经过汇编器(即将汇编指令转换成机器码的程序)即C74424FC02000000这样的机器码, 汇编指令生成的机器码是有一定的指令格式的,你可以参考intel开发手册,第一部分就有intel指令的格式。然后链接器根据生成的二进制文件,按照pe结构,生成一个exe文件。当你双击运行这个文件的时候,windows的pe loader 程序会将exe文件内存文件映射到虚拟内存中(即windows上的页文件,也就是c盘中的pagefile文件),CPU的内部有一个震荡器(震荡器的原理很简单,平时看到的电铃就是这个原理),震荡器不断的发送脉冲,每一次当脉冲为1时,CPU就会从内存中读取指令,脉冲为1的时候,会根据内存中的地址总线,发送要取指的内存地址,这时候有一个译码器,所谓的译码器就是一种开关电路,比如有三个开关,当2个断开1个闭合时,就表示成001,也就是取第一个单元的数据,这样CPU将指令取得后,它会对指令进行译码,译码完后设置电路开关,然后将相应的数据放入到运算器中,运算器的实现,最早就是一个加法器。 然后就是指令执行,执行完了,继续取下一条指令。这就是存储程序原理 。

没事欢迎来0x30 百度贴吧,分享交流更多计算机编程知识。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-01
通过地址总线选择要操作硬件的地址,通过数据总线告诉该硬件要干什么活,然后硬件接到后就开始干活(比如弹出光驱之类的)
第2个回答  2013-02-28
汇编还不是最底层的语言,最底层的是机器码 也就是0 1 构成的 汇编以及高级语言是便于程序员使用的 早期的程序员 用纸打孔最原始
相似回答