新浪博客

机器指令0101是如何转变为高低电平的(精)

2014-05-18 00:52阅读:
机器指令如何转变为高低电平(电信号)?
代码如何变为高低电平的(电信号)?
二进制代码或汇编代码如何变为电信号?
想必这几个问题是很多电子爱好者想知道的问题吧!关于这几个问题,都应该归结为本文标题。
近日在学习模电数电上网查资料的途中,看到有好多网友在问这几个问题,而回答的人却几乎没有出提问者想要的答案。其答案很简单——根本不存在这种转换。
分析如下:
拿单片机来说。从一个程序员用一种编程语言写代码->编译->链接->…,最终都要转换为二进制代码(0101……),……,然后烧写到单片机的ROM内(此时“0101已经转变为高低电平”了)。
想想看,这个过程是不是有点顺理成章,但却又耐人寻味?

其实,从一个程序员开始用键盘敲代码起,就不存在什么“0101”,或者什么“main()…”。这些数字和字母符号都是我们看到的表象。实质上,在你在键盘上依次按下“m,a,i,n,(,)”时,实质上是不断的“闭合—>断开”一个个按键,电脑所做的事情就是:把这一系列“闭合->断开”电信号传送到电脑RAM里。也就是说,一开始就是电信号了。
此后,你所做的编译,链接…,烧写入单片机等一系列操作,都只是将电脑RAM芯片里的电信号:化简,搬运(比如:将电信号从电脑RAM搬到单片机ROM)。
然后,你应该知道了吧…
看到一个帖子,终于解释了困惑。“机器语言的1010这一堆数字怎么变成高低电平的?”一个比较老的问题,但是很多人的回答非常傲慢,说什么看看《数字电路》《计算机原理》就知道了,可是很多人根本就不知道楼主在问的是什么。庆幸在最后一帖看到了想要的答案。
问题:高级语言编译成机器语言后,将这些机器语言存于存储器中,然后按顺序输出高低电平,实现用户的要求。。。我的问题是机器语言是怎么存进存储器中的,也就是说机器语言怎么变成高低电平进入存储器的。 也就是说机器语言的1010这一堆数字必须要变成高低电平才能存进存储器,从而
被cpu读取,我就是想知道机器语言的1010这一堆数字是怎么变成高低电平的。
胡乱回答 之一:1和0是人为规定,你可以用ABAB或者其它代码表示高低电平。 之二:楼主回去看看《数字电路》吧(虽然楼主一再表示看过好几遍了都没有这个问题的答案)
答案
在打孔机时代,这个问题可以这么看
你的01010代码,需要专职的程序录入员将0和1用打孔和不打孔的方法,转换为纸条上的一串孔洞。然后有孔的程序纸通过光照区,有孔无孔转换为光点和暗点,再通过光敏元件,转化为高低电平。以后机器中就再也不会出现0和1,只有高低电平了。
可以说,录入员之前是一个世界,高级语言也好,汇编语言也好,机器代码也好,都是0101的二进制数字世界;光敏传感器之后,都是高低电平的世界。录入员+光电检测完成了这种转换。
现在的计算机,和打孔机时代的区别,只不过是输入变成键盘了,按键接通和断开代替了光线的有和无,在每个键下面的识别电路以后,就完全是高低电平的时代了,010已经不存在了啊。01在哪里?在我们的头脑中,在程序纸上,在键盘表面,在显示器上,就是不在键盘以下的空间中。
ps. 几年前问过我的同学,他们也没有给出准确的解释。清楚地记得有个家伙说,计算机中的信息(101010)也是一种物质,物质自然就可以传输了。。。

我的更多文章

下载客户端阅读体验更佳

APP专享