arm gnu linux系统,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.
开始吧,新的学习目标~~~
arm gnu linux系统,GNU ARM汇编相关推荐
- OpenCV基于ARM的Linux系统的交叉编译
OpenCV基于ARM的Linux系统的交叉编译 基于ARM的Linux系统的交叉编译 先决条件 获取OpenCV源代码 获取最新的稳定OpenCV版本 从Git存储库中获取最新的OpenCV 构建O ...
- 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 ...
- 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤
最近在学习系统移植的相关知识,在学习和调试过程中,发现了很多问题,也解决了很多问题,但总是对于我们的开发结果有一种莫名其妙的感觉,纠其原因,主要对于我们的开发环境没有一个深刻的认识,有时候几个简单的命 ...
- 目录 - 《ARM嵌入式Linux系统开发从入门到精通》 - 免费试读 - book.csdn.net
第一部分 ARM Linux系统移植 第1章 嵌入式系统开发入门...... 2 1.1 嵌入式系统介绍..... 2 1.1.1 嵌入式系统概述..... 2 1.1.2 嵌入式系统组成..... ...
- ARM嵌入式linux系统学习之裸机(一)
1.裸机学习什么? 裸机主要是学习对通过arm处理器的寄存器的操作来实现其内部资源和外部设备的控制及通信.学习裸机主要有两个目的,第一是熟悉其硬件的资源配置,学会编写bootloader:第二就是学习 ...
- GNU/Linux的GNU是什么意思
GNU是一个技术组织,发起者是一个叫Richard Stallman的人,他是Might and Magic时代的一个英雄(关于他的传说,请参考Eric Ramond的<黑客发展史>). ...
- 交叉编译HTOP并移植到ARM嵌入式Linux系统
原创作品,允许转载,转载时请务必以超链接形式标明文章.作者信息和本声明,否则将追究法律责任. 最近一直在完善基于Busybox做的ARM Linux的根文件系统,由于busybox是一个精简的指令集组 ...
- ubuntu 是基于debian gnu/linux,在 Ubuntu 或其它 GNU/Linux 系统下安装 Debian
家有老电脑不用就折腾不止,前段时间曾折腾一台老电脑,2007年上市,只支持 i386 系统,不支持U盘启动,在 winxp 系统下装了 Ubuntu,现在突发奇想,要在 Ubuntu 上安装 Debi ...
- 三星T7装Linux系统,Ubuntu已成为三星ARTIK 5/7的主力GNU/Linux系统
Canonical的设备和物联网副总裁Mike Bell表示:"通过双方的合作,Canonical将进一步巩固在物联网的长期发展承诺,并继续扩大Ubuntu系统在物联网领域的影响力和发展.我 ...
最新文章
- [vb+mo] visual baisc 6.0 基于mapobjects 2.4 开发的数字化校园电子地图
- 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)
- 获取手机当前显示的ViewController
- 列表的定义、索引、添加、删除、查找、排序
- HTML5/CSS3基础
- [错误记录] --- clickhouse报错Decimal value is too small
- 多表关联更新,UPDATE FROM用法
- python super 多重继承_解决python super()调用多重继承函数的问题
- pythonmapdel_地质男转行学遥感Python——遥感数据裁剪的具体实现
- 连接linux服务器安卓模拟器,云服务器怎么运行安卓模拟器
- python计算机视觉-图像处理基础章节第三章之根据仿射或单应性变换实现图像的扭曲,映射,融合
- FineBI 的关联视图及多表关联 自助数据集
- Web前端学习第四周
- ospfdr选举规则_OSPF的DR选举
- 学习数据库视频笔记4
- python pika 消费mq basic_get方法
- vim,编辑文件后最简单的消除~ 和 .un~后缀文件生成的操作 ,重点为红色字体部分
- 官宣!麻省理工学院官方线上课程之机器学习开启啦
- java基础入门-04-【集合学生管理系统】
- 反激式开关电源仿真 基于Matlab simulin仿真软件设计
热门文章
- 装了mysql不在服务彪了_[已解决] 服务器无法安装 mysql2+ 无法 db:migrate
- 使用 CodeMirror 打造属于自己的在线代码编辑器
- 最详细的Log4j使用教程 – 码农网 http://www.codeceo.com/article/log4j-usage.html
- ISELED---氛围灯方案的新选择
- js的call() ,apply() 两种方法的区别和用法,最白话文的解释,让枯燥滚粗!
- eureka自我保护机制配置关闭
- GPIO驱动分析 GPIO使用方法--S5PC110和S5PC210
- 畅捷通(chanjet)T6各版本
- 2023年天津美术学院油画(表现)考研上岸前辈备考经验
- [模电课程设计]基于TCP7107的数字式温度计设计