GNU ARM汇编--(一)开篇
他们首先用三个问句来引出为什么要学习汇编:
外科医生为了知道手术刀的用法而需要学习冶金吗?飞行员需要学习热力学理论来理解飞机引擎是如何工作的?报社的记者要学习电子学来理解照相机如何工作的?答案当然是“NO”,那么为什么要让学生学习汇编语言和计算机结构呢?
第一就是教育和培训不是一码事,大学就应该学大学里该教的内容,当然学生也得好好学.
第二是汇编语言是计算机体系结构和计算机软件的基础
第三:汇编可以帮助我们更好的理解数据类型,指针,堆栈、函数调用、递归调用以及参数传递,汇编可以更直接的访问IO和设备,帮助理解设备驱动等等.
总之汇编会告诉我们计算机系统内部正在发生什么
而按照目前我个人的体会是:
学习汇编可以让我更好的写C,学习汇编可以让我更好的理解loader,学习汇编可以让我更好的理解进程和内存管理,虚拟存储器和存储器映射等知识.总之,好处多多.目前汇编成了我的一个瓶颈,那搞定它可以让我上一个台阶.
接下来学习汇编的环境为:操作系统为ubuntu,编译器是arm-linux-gcc,平台是s3c2440(ARM920).
ARM汇编的指令集就那些,但是windows下的arm汇编和linux的arm汇编有细微区别.windows下是用ADS codewarrir等环境来开发,编译器是armasm,而linux用的是gnu arm,更个接近于AT&T风格.偏向于linux下的环境,所以就选择了GNU ARM汇编.
学习GNU ARM汇编的计划和目标:
ARM体系结构
ARM下的指令集
GNU汇编的风格
在s3c2440平台上的验证
当然最终的目的还是为了学习loader和linux.
开始吧,新的学习目标~~~
评论