微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 第1章 从机器码到开发语言(X86汇编教程)

第1章 从机器码到开发语言(X86汇编教程)

时间:12-01 来源:互联网 点击:
学习东西不动手实践是很难记好的,所以,前几章不用看得太懂,随便看看即可.动手实践的时候偶尔翻一翻会逐渐掌握.记住:我不是说前面的知识不重要,而是说前面的知识很难记,不要求你看过就记住,要以后通过一次次使用来记住.

汇编语言可能是所有开发语言中见效最慢的了,一般学汇编都是学习很久才

会开始教怎么开发第一个程序,前边一堆都是讲电脑原理,因为汇编是最底层的.所以

需要一堆电脑原理知识才能学习.所以我不会在一开始就教开发.另外学习汇编最好是

放下你以前对电脑的一些看法...
电脑是一台计算机,显示在屏幕上的东西全都是通过数学计算得来的.
CPU(中央处理器),是电脑的计算单元,电脑的计算工作都通过CPU来完成.如

同人类的大脑,CPU直接或间接连接着电脑的所有硬件,CPU从内存里读取机器码,并解

析机器码的意思,对电脑的一切进行支配.
那么什么是机器码呢?那是一些2进制指令的集合.类似于这样:
101110000001000010001001
这就是2进制指令,人们叫它:比特(bit)
CPU通过1秒钟解析无数比特,对电脑进行支配.
是不是觉得有些头晕?这些数据有一个单位,叫做字节(byte).一个字节又8个

比特组成.当然字节之上还有很多单位,那些咱们暂且不谈.下面我们把那组数据分成

字节单位的:
10111000 00010000 10001001
这样,看起来顺眼多了是吧?但是这样仍然还是很麻烦,一个好的程序,往往有

几千字节,这要是代码出了错误,程序员修改的时候一堆1和0把眼睛都闪瞎了,还怎么

来修改?
于是,程序员们编写了一个程序,世界上第一个汇编编译器,它有什么作用呢?

它呢,能把一句英文写的指令转换成几个字节组成的机器码.这样:
MOV [0000],1234
也就是说,人们用英文字母代替了那一堆1和0组成的数字.那之后以行作为单

位的指令就开始出现了,在这之前,指令都是一个字节一个字节排列在内存里的,用眼

睛去看就是一堆数字,完全不知道哪个字节是一条指令的开头哪个又是结尾.
后来人们发现.可以用一行代码代替几十行汇编代码,能够使开发更加轻松.

于是程序员开发了一个程序,能够把一行代码转换成几十行汇编代码再转换成机器码.
于是出现了高级语言.与汇编相比,高级语言执行效率会低一点,同样功能的代码执行

起来比汇编慢了一大截,但是开发起来更加轻松了.同样的事情在汇编中需要几十行代

码才能完成,用高级语言则几行代码搞定(虽然执行起来速度比汇编的代码慢).
不管什么开发语言,想要让电脑能够识别就必须要转换成2进制的机器码字节

.高级语言一行代码能做很多次没错,但是转换成机器码以后,一行高级语言转出来的

机器码都是几十上百字节的.而汇编语言转出来的机器码往往只有几个字节而已.所以

高级语言与汇编,一个是在开发的时候快,适合编写一些不需要高速计算的程序,一个

是在用的时候快,适合编写一些常用的东西,比如一个程序,一秒钟会被调用几万次,那

这个程序最好是汇编写的,不然会很卡.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top