在大学的时候,汇编就是学的很烂.一是对汇编这门语言没概念,二是那些指令集很难记清楚,用的机会也少,自然学的不好.但是现在觉得相当有必要重头学习一下汇编.部分原因我在上一篇写完设备模型的总结时提到了而.最近在看一本书《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.

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

arm gnu linux系统,GNU ARM汇编相关推荐

  1. OpenCV基于ARM的Linux系统的交叉编译

    OpenCV基于ARM的Linux系统的交叉编译 基于ARM的Linux系统的交叉编译 先决条件 获取OpenCV源代码 获取最新的稳定OpenCV版本 从Git存储库中获取最新的OpenCV 构建O ...

  2. linux光盘启动软件下载,KNOPPIX 8.5.0发布下载,光盘启动的GNU/Linux系统

    KNOPPIX 8.5版基于Debian testing (buster)和unstable (sid),采用Linux 4.20.6和Xorg 7.7(核心1.20.3),是一款光盘启动的GNU/L ...

  3. 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤

    最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...

  4. 目录 - 《ARM嵌入式Linux系统开发从入门到精通》 - 免费试读 - book.csdn.net

    第一部分 ARM Linux系统移植 第1章 嵌入式系统开发入门...... 2 1.1 嵌入式系统介绍..... 2 1.1.1 嵌入式系统概述..... 2 1.1.2 嵌入式系统组成..... ...

  5. ARM嵌入式linux系统学习之裸机(一)

    1.裸机学习什么? 裸机主要是学习对通过arm处理器的寄存器的操作来实现其内部资源和外部设备的控制及通信.学习裸机主要有两个目的,第一是熟悉其硬件的资源配置,学会编写bootloader:第二就是学习 ...

  6. GNU/Linux的GNU是什么意思

    GNU是一个技术组织,发起者是一个叫Richard Stallman的人,他是Might and Magic时代的一个英雄(关于他的传说,请参考Eric Ramond的<黑客发展史>). ...

  7. 交叉编译HTOP并移植到ARM嵌入式Linux系统

    原创作品,允许转载,转载时请务必以超链接形式标明文章.作者信息和本声明,否则将追究法律责任. 最近一直在完善基于Busybox做的ARM Linux的根文件系统,由于busybox是一个精简的指令集组 ...

  8. ubuntu 是基于debian gnu/linux,在 Ubuntu 或其它 GNU/Linux 系统下安装 Debian

    家有老电脑不用就折腾不止,前段时间曾折腾一台老电脑,2007年上市,只支持 i386 系统,不支持U盘启动,在 winxp 系统下装了 Ubuntu,现在突发奇想,要在 Ubuntu 上安装 Debi ...

  9. 三星T7装Linux系统,Ubuntu已成为三星ARTIK 5/7的主力GNU/Linux系统

    Canonical的设备和物联网副总裁Mike Bell表示:"通过双方的合作,Canonical将进一步巩固在物联网的长期发展承诺,并继续扩大Ubuntu系统在物联网领域的影响力和发展.我 ...

最新文章

  1. [vb+mo] visual baisc 6.0 基于mapobjects 2.4 开发的数字化校园电子地图
  2. 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)
  3. 获取手机当前显示的ViewController
  4. 列表的定义、索引、添加、删除、查找、排序
  5. HTML5/CSS3基础
  6. [错误记录] --- clickhouse报错Decimal value is too small
  7. 多表关联更新,UPDATE FROM用法
  8. python super 多重继承_解决python super()调用多重继承函数的问题
  9. pythonmapdel_地质男转行学遥感Python——遥感数据裁剪的具体实现
  10. 连接linux服务器安卓模拟器,云服务器怎么运行安卓模拟器
  11. python计算机视觉-图像处理基础章节第三章之根据仿射或单应性变换实现图像的扭曲,映射,融合
  12. FineBI 的关联视图及多表关联 自助数据集
  13. Web前端学习第四周
  14. ospfdr选举规则_OSPF的DR选举
  15. 学习数据库视频笔记4
  16. python pika 消费mq basic_get方法
  17. vim,编辑文件后最简单的消除~ 和 .un~后缀文件生成的操作 ,重点为红色字体部分
  18. 官宣!麻省理工学院官方线上课程之机器学习开启啦
  19. java基础入门-04-【集合学生管理系统】
  20. 反激式开关电源仿真 基于Matlab simulin仿真软件设计

热门文章

  1. 装了mysql不在服务彪了_[已解决] 服务器无法安装 mysql2+ 无法 db:migrate
  2. 使用 CodeMirror 打造属于自己的在线代码编辑器
  3. 最详细的Log4j使用教程 – 码农网 http://www.codeceo.com/article/log4j-usage.html
  4. ISELED---氛围灯方案的新选择
  5. js的call() ,apply() 两种方法的区别和用法,最白话文的解释,让枯燥滚粗!
  6. eureka自我保护机制配置关闭
  7. GPIO驱动分析 GPIO使用方法--S5PC110和S5PC210
  8. 畅捷通(chanjet)T6各版本
  9. 2023年天津美术学院油画(表现)考研上岸前辈备考经验
  10. [模电课程设计]基于TCP7107的数字式温度计设计