ARM体系结构(一)

第一节 可编程器件的编程原理
电子器件的发展方向
1、模拟器件(模拟电频控制)->数字器件(数字电频控制)
2、ASIC(专用芯片,早期的,一个芯片只能完成一个任务)->可编程器件(也就是CPU,芯片,有一定的运算控制能力,功能后期可以制定,比较灵活)

可编程器件的特点
1、CPU在固定频率的时钟控制下有节奏的运行。(读取、解码、执行)
2、CPU可以通过总线读取外部存储设备中的二进制指令集(就是编译好的程序),然后解码执行。
3、这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的,是CPU的设计者(ARM公司)定义的,本质上是一串由1和0组成的数字。这就是CPU的汇编指令集。

整个编程及运行过程
1、程序员用汇编指令编程->经汇编器汇编成二进制可执行程序->二进制文件被CPU读取进去->CPU内部电路对二进制文件解码->解码通过则CPU执行指令、完成指令动作。
2、如果程序员用C语言等高级语言编程,则编译器先将C语言程序编译为汇编程序,再进行上面的后续部分。

从源代码到CPU执行过程
读入CPU解码之前,由于Elf中有不用的、冗余的东西,直接烧录不合适,先要用Objcopy工具将其转换成Bin格式可以烧录的文件,然后烧录到Flash中。解码就是CPU理解命令是要做什么,然后执行,然后再进行读取、解码、执行,形成一个循环。

第二节 指令集对CPU的意义
汇编语言与C等高级语言的差异
汇编难写,C好写
汇编无可移植性,C语言有一定可移植性(写好的程序,源代码不做任何修改,可以在其他地方能用),Java等高级语言移植性更强。
汇编语言效率最高,C语言次之,Java等高级语言效率更低。汇编不适合完成大型复杂的项目,更高级语言更适合完成更大、更复杂的项目。

汇编语言的本质
1、汇编的实质就是机器指令(就是机器码,汇编指令)的助记符(帮助记忆的符号),是一种低级符号语言。(eg.用RSL符号,代替10101010101这些数字,是用RLS来编程,汇编器的工作就是把RSL翻译成10101010101这样的机器码)(例如人的名字和其身份证号)
2、机器指令集是一款CPU的编程特征,是这款CPU的设计者制定的。CPU的内部电路设计就是为了实现这些指令集的功能。机器指令集就好像CPU的API接口一样。CPU要完成什么样的功能,就调用什么样的指令。

编程语言的发展过程
1、纯机器码编程
2、汇编语言编程(发明一种语言的关键就是发明汇编器或编译器)(不同的CPU,机器码不同,因此可移植性很差,例如ARM的CPU和Intel的CPU差别很大)
3、C语言编程
4、C++语言编程(效率低于C语言,但C++可以写庞大的程序)
5、Java C#语言编程
6、脚本语言编程

总结
1、汇编语言就是CPU的机器指令集的助记符,是一款CPU的本质特征。
2、不同CPU的机器指令集设计不同,因此汇编语言不能在不同的CPU间互相移植。
3、使用汇编编程可以充分发挥CPU的设计特点,所以汇编编程效率最高,因此在操作系统内核中效率极其重要处(例如中断处理)都需要用汇编处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值