您的位置:首页 > 编程语言

ARM裸机编程需要知道的汇编知识1---可编程逻辑器件

2017-09-23 11:32 561 查看
ARM裸机编程中的汇编语言知识

                               ---参考朱有鹏ARM裸机课程

1、可编程的器件

但是很多芯片都是不需要编程,比如很多开关电源的芯片。

模拟就是用模拟的电平控制的,数字电平还分为CMOS电平和TTL电平。

模拟器件 ---》   数字器件

ASIC       ---》   可编程器件

ASIC:专用的芯片,硬编码,它用硬件已经把芯片的功能已经设置好了。

             一个芯片只能完成一个任务

到了现在的智能手机的时代,直接用APP使用,灵活性越来越大,变成可编程的器件。

定制产品的趋势。

可编程器件特点:

1、CPU在固定的频率的时钟控制下节奏运行

2、CPU可以通过总线读取外部存储设备中的二进制指令集,然后解码执行

3、本质上是一串由1和0组成的数字,这就是CPU的汇编指令集

这个指令没有定义的时候,这些指令是别人先定义好的

编译器中编译程序中的流程:



2、汇编语言的本质:

机器指令的(机器码)的助记符,是一种低级的符号语言。

机器指令集是一款CPU的编程特征,是这款CPU的设计者制定者。

CPU的内部电路设计就是为了实现这些指令集的功能,机器指令集就好像CPU的API接口一样。

机器指令的实质是一串010101的数字。数字电路其实就是由这些东西控制的。

编程的框架:给我们开放的编程接口。

CPU指令集:就是CPU的API函数

基本模块都是用CPU指令集的调用。

其中实现里面的模块是用非常复杂的组合逻辑电路,比如相加和相乘。

3、编程语言的发展过程:

1、纯机器码编程

2、汇编语言编程        发明了这门语言的编译器

3、C语言编程

4、C++语言编程

5、JAVA C#等语言的编程

6、脚本语言编程

总结:

1、汇编语言就是CPU的机器指令集的助记符,是一款CPU的本质的特征

2、不同的CPU的机器指令集设计不同,因此汇编程序不能在不同的CPU间互相的移植。

3、使用汇编程序可以充分的发挥CPU的设计的特点,所以汇编编程的效率最高,因此在操作系统内核中效率及其重要的地方都需要用汇编处理。(考虑CPU之间的特点)

 
中断处理一般是用汇编来实现的。在这些关键性能的地方,要汇编写比较好。

自己的一点理解:
很多时候,我们会直接从互联网里面下载你需要的程序,为啥人家编译在自己的机器是
可以编译成功的,但是为什么我们自己编译时不能成功的?

学了这个短短的视频后,我觉得其中一个很重要的原因是;
如果你用的是人家的汇编的程序的话,那么不同芯片之间会不能用了。
而你如果用的是C语言开发的话,那么如果你和发布者用的编译器是不一样的话,
很可能编译出来的东西在你那里就不能直接用,需要进行一点处理。

编译器把C语言转换为汇编语言,以及可以在你的机器运行的可执行的程序。

所以很多人发布程序的时候,不会直接的发布BIN文件等可执行文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息