找回密码
 注册
关于网站域名变更的通知
查看: 327|回复: 5
打印 上一主题 下一主题

Linux下的ARM汇编

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-7-10 11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 pulbieup 于 2019-7-10 11:21 编辑 3 p. S! k: O) }' L/ x
' s- S; Q7 t5 B; E
第一部分 Linux下ARM汇编语法
5 G3 Y+ I: W; C7 w0 ~尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(gnu.org)上下载有关规范。
% {: Q5 g+ l/ _" a7 ?2 y0 A7 [2 w7 f; b7 z* o2 s0 e

7 J4 W' E* I  D2 _5 y" c# C1 x  g一. Linux汇编行结构3 x4 h# g& z% y# A6 j7 K4 ?
任何汇编行都是如下结构:
- c  L+ n6 ^: P; s: p[:] [} @ comment
  T1 Q" P- M& p0 k" X; E! {[:] [} @ 注释7 N( a) u: e2 e  j$ e. K% ]
Linux ARM 汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始。0 V" V5 A8 A$ n3 e; w& h: N9 J
【例1】定义一个"add"的函数,返回两个参数的和。9 w! x9 A8 m2 z" }* `
.section .text, “x”( s- }4 u- O7 T, `+ a
.global add @ give the symbol add external linkage5 I, T7 u! e' b1 P+ G- X6 i+ \
add:5 J, H" R. {  o+ m: n( A  E& M0 T
ADD r0, r0, r1  @ add input arguments
( K/ H: V- A7 jMOV pc, lr @ return from subroutine; K* P, w8 O; W5 O, I/ c
@ end of program5 E! P, u4 O, }

2 M( `" T6 W$ i1 U" b

8 V6 v# `  M; O. y, e6 X3 L二. Linux 汇编程序中的标号) N/ e; f8 A. K: b0 Y2 n- x

( T  @+ W* Z0 N% Z

! |/ I, p* T5 i( z* n' e0 ^
游客,如果您要查看本帖隐藏内容请回复
0 G0 u: X: \9 {- M& @2 j; l

/ n8 ~% C4 P. V; c; ]
  y8 F1 s2 ?) t- \6 b+ ?6 h

4 o' p8 r( P4 ?; p* e% T$ W& f
: ?( H2 D) V& G. F

该用户从未签到

2#
发表于 2019-7-10 17:23 | 只看该作者
Linux下的ARM汇编

该用户从未签到

4#
发表于 2019-7-11 17:59 | 只看该作者
刚好需要Linux方面的,谢谢分享

该用户从未签到

6#
发表于 2019-7-16 19:00 | 只看该作者
Linux下的ARM汇编
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 22:12 , Processed in 0.171875 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表