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

Linux下的ARM汇编

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 pulbieup 于 2019-7-10 11:21 编辑
3 {9 J8 j; ]8 p9 O5 A4 p$ A5 I0 o# i% h$ X+ Z: ^( r' L' ]/ o  D
第一部分 Linux下ARM汇编语法3 A0 M2 d4 l! |
尽管在Linux下使用C或C++编写程序很方便,但汇编源程序用于系统最基本的初始化,如初始化堆栈指针、设置页表、操作ARM的协处理器等。初始化完成后就可以跳转到C代码执行。需要注意的是,GNU的汇编器遵循AT&T的汇编语法,可以从GNU的站点(gnu.org)上下载有关规范。
9 j2 x) V( x8 s% S# ]; z  R( c& e1 t8 W, `- M
0 V$ h( l: H6 f; C, `# [- h7 `
一. Linux汇编行结构$ W5 k$ w5 i' @  a
任何汇编行都是如下结构:; j- K% U* J: z% k7 C( p! l
[:] [} @ comment- l0 E! q; X' i3 R' R8 [+ J
[:] [} @ 注释) v6 S: D0 `4 c. B9 z
Linux ARM 汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始。# g$ @6 N8 s; v
【例1】定义一个"add"的函数,返回两个参数的和。8 k( }; S3 R) H: u
.section .text, “x”
+ m5 y: \  h' h.global add @ give the symbol add external linkage0 C% q* ^3 \) ~  z5 d
add:* y& l" H0 [5 x1 J. v$ m. r# Z
ADD r0, r0, r1  @ add input arguments
3 Q  d* c6 e  D5 B: EMOV pc, lr @ return from subroutine- c  h/ R/ Y3 N+ s9 z# U
@ end of program
" J# r5 t# Q2 o9 f) H! B4 a8 ]  ], \' _9 Y* V1 b4 ]1 F4 ^$ Y

+ @3 L/ P9 d* \* L# G) M- ?+ @3 b二. Linux 汇编程序中的标号
9 z; Z. s$ ^% q3 w( @. T
6 ~) v& W( r* @% _% m# k- ~
6 ]& c' x$ \2 v& Y& p% x1 h
游客,如果您要查看本帖隐藏内容请回复

$ v5 j/ G+ z6 `, v  ?+ x2 w& S6 w  z* h

! X( P* L5 r5 K7 f3 a# j% d; g- Q
+ Y/ u5 Q: T4 I% V  ~/ m

5 ]+ O2 U6 W- r/ `1 U* I$ [

该用户从未签到

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-25 00:38 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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