ARM——GNU伪指令
目录
ldr伪指令
数据定义伪指令
汇编系统预定义的段名
杂项伪操作
GNU ARM汇编特殊字符
Linux ARM汇编程序中的标号
全局标号
寄存器一般作用
ldr伪指令
- 语法格式:LDR Rn,=expr
- 作用:装一个32位常数和一个地址到寄存器
- 优点:能解决有效数的问题
- 例如:
ldr r0,=0x12345678 把一个地址装到r0
数据定义伪指令
- .word: 定义4字节数据
- 例如:
.word 0x12345678
- .byte: 单字节定义
- 定义位置:在.end之前,一般在最开始或stop后
注:相当于C语言中的变量定义
汇编系统预定义的段名
- .text 用于定义一个指令段
- .data 用于定义数据段,初始化全局变量
- .bss 未初始化的全局变量
- 注:.bss段应该在.text之前
- .rodata 只读数据
- .end 文件结束
杂项伪操作
- .align 指令可通过添加填充字节的方式,使当前位置满足一定的对齐方式
- 例如:
.align 4声明后边的对齐方式位4字节对齐
- .equ 把一个符号定义成某个值
注:相当于 #define
- 例如:
.equ symbo,0x12345678
- .weak 如果这个符号没有定义,编译就会忽略,不报错
GNU ARM汇编特殊字符
- @ —— 代码行中的注释
- # —— 整行注释
- #或$ —— 直接操作数前缀
- ;—— 语句分离符号
Linux ARM汇编程序中的标号
- 任何以冒号结尾的标识符都被认为是一个标号。
- 标号只能有 A~Z a~z 0~9 . _等符号组成
- 当标号为0~9的数字时,使用方法:
- F —— 指示编译器向前搜索
- B —— 指示编译器向后搜索
- 说明:程序的方向代码行号减小的方向,就近原则
- 局部标号代表它所在的地址,可以当做变量或者函数使用
全局标号
- .global 全局标号定义
- 例如
global _start
注:_start汇编程序的缺省入口是_start标号,用户也可以在连接脚本文件中用ENTRY标志指明其它入口点。
寄存器一般作用
- R0~R3 接收参数返回值
- R4~R11 接收局部变量
- R12 (IP,备份R13)
- R13 (Stack Pointer,SP,栈指针)
- R14 (the Link Register,LR,链路寄存器,备份PC)
- R15 (PC)
- CPSR (当前程序状态寄存器)
- SPSR
ARM——GNU伪指令相关推荐
- ARM汇编伪指令 .word
ARM汇编伪指令 .word 经常碰到那些以"."打头的一些令人头疼的伪指令, 至于.globl _start .balign .align .data .text等等就算了,最 ...
- ARM官方汇编与ARM GNU汇编中的伪操作
以下内容源于网络资源的学习与整理,如有侵权请告知删除. 参考博客 (1)嵌入式Linux ARM汇编 (2)GNU ARM 汇编基础 - wanli1024 - 博客园 (3)GNU ARM 汇编简介 ...
- ARM汇编与ARM GNU汇编 区别
一.想学汇编,at&t汇编与ARM汇编的区别? 问:想学汇编语言,因为现在用的是linux系统(ubuntu 11.04),so 有一本<汇编语言程序设计>马朝晖译,可惜淘宝.当当 ...
- c语言中 伪指令,ARM汇编伪指令介绍(1)
ARM汇编伪指令介绍 在ARM汇编语言程序里,有一些特殊的助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,这些特殊指令助记符被称为伪指令,他们所完成的操作称为伪操作.伪指令在源程序中的作 ...
- ARM汇编:伪指令DATA和EQU的区别
ARM汇编:伪指令DATA和EQU的区别 1.EQU 指令 定义:用于将一个数值或寄存器名赋给一个指定的符号名. 格式: 符号名 EQU 表达式 符号名 EQU 寄存器名 注意:表达式必须是一个简单再 ...
- ARM汇编伪指令介绍(全集)
在ARM处理器汇编语言程序设计里,有一些特殊的指令助记符.这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊的指令助记符为伪指令,它们所完成的操作称为伪操作. 伪指令在源程序中的作用 ...
- 交叉编译器的命名规则及详细解释(arm/gnu/none/linux/eabi/eabihf/gcc/g++)
在linux系统下搞嵌入式开发,交叉编译器那肯定是必备工具.用的场合多了,就会见到各种各样的编译工具,比如: arm-linux-gcc arm-linux-gnueabi-gcc arm-none- ...
- 最全ARM汇编伪指令
在ARM处理器汇编语言程序设计里,有一些特殊的指令助记符.这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊的指令助记符为伪指令,它们所完成的操作称为伪操作. 伪指令在源程序中的作用 ...
- 【转】ARM汇编伪指令介绍
转自:http://patton.spaces.eepw.com.cn/articles/article/item/32951 在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的 ...
最新文章
- Spring微服务视频免费发放
- itchat爬取朋友圈签名制作词云
- 20、Power Query-数据合并、拆分
- spark的源码编译
- 【远程沟通】“云答辩”“云招聘”双管齐下,解救“最难毕业生”
- 大数据预测实战-随机森林预测实战(一)-数据预处理
- java string == 比较,Java 基础 之 String 的比较
- EC++学习笔记(四) 设计与声明
- Linux四剑客详解——grep
- 三星note5 android9,【极光ROM】-【三星NOTE9 N960X-845】-【V16.0 Android-Q-TD5】
- 【免费分享淘宝视频教程】pyhton大数据人工智能神经网络爬虫零基础视频教程从入门到精通-百度云
- python 图片转换为ico图标
- Android蓝牙自动配对Demo,亲测好使!!!
- 逍遥安卓模拟器卡android,逍遥模拟器不流畅解决方法 逍遥安卓模拟器怎么设置不卡...
- ansys经典界面分析工字钢_工字钢_ANSYS实例分析72道(含结果)
- 简单阅读golang的net/http包和Negroni的源码
- 桥墩水流绕流阻力问题计算
- mysql 跨服务器复制_mysql数据库跨服务器间复制与迁移
- Python 将.py转换为.exe详解
- 博主称抖音屏蔽很多关键词致谐音梗大流行
热门文章
- 百度空间部分表单查询
- Android最好用的底部导航栏
- 强力载荷能力,沃飞长空工业型无人机适配各行各业
- 沃飞长空发力低空智慧出行,这是城市交通的未来吗?
- wifi pineapple | WiFiPineapple plus 基本使用教程
- 爬虫模拟POST请求https (爬中国银行汇率----中文)
- Android总结随笔
- Failed to convert value of type ‘java.lang.String‘ to required type ‘java.util.Date‘;
- 微信公众号 纯文字自动回复 换行失效了
- blog同步更新通知