GNU ARM汇编


在大学的时候,汇编就是学的很烂.一是对汇编这门语言没概念,二是那些指令集很难记清楚,用的机会也少,自然学的不好.但是现在觉得相当有必要重头学习一下汇编.部分原因我在上一篇写完设备模型的总结时提到了而.最近在看一本书《ARM:Assembly Language Programming》,作者是Peter Knaggs & Stephen Welsh.作者在开头也提出学习汇编的必要性和重要性,借他们的话重新说一下:

他们首先用三个问句来引出为什么要学习汇编:

外科医生为了知道手术刀的用法而需要学习冶金吗?飞行员需要学习热力学理论来理解飞机引擎是如何工作的?报社的记者要学习电子学来理解照相机如何工作的?答案当然是“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.

开始吧,新的学习目标~~~

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9..
  • 20
  • 下一页
【内容导航】
第1页:开篇 第2页:汇编编译链接与运行
第3页:ARM处理器的基本原则 第4页:中断汇编之非嵌套中断处理
第5页:中断汇编之嵌套中断处理 第6页:s3c2440的时钟控制
第7页:s3c2440的串口控制 第8页:s3c2440的watchdog
第9页:s3c2440的PWM 第10页:s3c2440的RTC
第11页:小结 第12页:arm汇编指令的B真的那么简单吗?
第13页:GNU ARM汇编下的linker script 第14页:GNU ARM汇编下做任务调度
第15页:Linux下的printascii 第16页:bootloader与kernel之间的commandline的传递
第17页:u-boot的makefile和mkconfig解读 第18页:u-boot-采用nand_spl方式的启动方法
第19页:u-boot-nand-spl启动过程分析 第20页:总结

相关内容