linux下arm汇编的常用指令解析
1. ldr 和 str :
(1) ldr 作为指令,叫做寄存器加载指令。将内存中的值加载到寄存器中。
(2) ldr 作为伪指令,实现一个32位常数或地址值加载到寄存器中。后面加载的常量或地址值标号前面必须有一个 “=” ,编译器会将伪指令替换成指令实现。
(3) str 将寄存器中的值保存到内存单元中。
2. .long 伪操作,给数值分配内存单元。
start:
virable:
.long start
如上,表示将start表示的值存到virable所代表的内存中。
virable:
.long 0x66666666
如上,表示将0x66666666存入virable所在的内存单元中。
3. adr 和 adrl:
伪指令,将一个地址加载到寄存器中。adr 小范围地址读取指令,将基于pc相对偏移的地址值读取到寄存器中。
adrl 中等范围地址读取指令。
4. b 和 bl:
伪指令,实现基于pc值的相对跳转,b 用于不返回的跳转。bl 一般用于子程序跳转,即最后通过 mov pc,lr 返回程序被调用点处。
linux下arm汇编的常用指令解析的更多相关文章
- linux下arm汇编注释符
注意使用 @ 符 # 是整行注释符 @ 是行内注释符 以为 @ 是行内注释符,害我调试了半天.
- linux下history命令显示历史指令记录的使用方法
Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中.默认保存1000条,你也可以更改这个值 ...
- linux下维护服务器之常用命令
linux下维护服务器之常用命令! 第1套如下: 正则表达式: 1.如何不要文件中的空白行和注释语句: [root@localhost ~]# grep -v '^$' 文件名 |grep -v '^ ...
- linux下arm平台Qt编译环境搭建与解析
一.概述: 我们知道QTcreator.这仅仅是个IDE,他包含了一个编译器--qmake.这两者的关系与codeblocks和g++的关系一样,首先要明确这些. 而我们在linu ...
- 2017-7-18-每日博客-关于Linux下的history的常用命令.doc
History history命令可以用来显示曾执行过的命令.执行过的命令默认存储在HOME目录中的.bash_history文件中,可以通过查看该文件来获取执行命令的历史记录.需要注意的是.bash ...
- ARM 汇编 内存访问指令
一. 单个寄存器操作读写内存 内存访问指令格式:<opcode><cond> Rd, [Rn] Rn 中保存的是一个内存的地址值 1. 内存写指令 [ str,strb,st ...
- linux下tar命令的常用实例
语法:tar [主选项+辅选项] 文件或者目录 使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用. 主选项:c 创建新的档案文件.如果用户想备份一个目录或是一些 ...
- (原创)Linux下的floating point exception错误解析
很多人也许都碰到过这样的错误:linux下程序刚一运行就报错:Floating point exception. 其实这个问题很容易排查,绝大多数情况情况都是逻辑的问题,如:c = a/b;或 c = ...
- Linux下的ELF可执行文件的格式解析 (转)
LInux命令只是和Kernel一起被编译进操作系统的存在于FS的ELF格式二进制文件,或者权限足够的脚本,或者一个软链 ELF(Executable and Linking Format)是一种对象 ...
随机推荐
- 并发编程:GIL,线程池,进程池,阻塞,非阻塞,同步,异步
一 GIL(global interpreter lock) GIL中文叫全局解释器锁,我们执行一个文件会产生一个进程,那么我们知道进程不是真正的执行单位,而是资源单位,所以进程中放有解释器(cpy ...
- day6作业(元组,字典,集合)
默写: 1.元组 字典 集合 列表 各自的特点 2.字典添加 删除 修改 循环 必做: 1.餐厅提供了五种不同的菜,使用元组来存储他们,并循环打印出所有菜名,要求用户输入新加的菜名,加入到菜单中,并重 ...
- jquery 弹框,确定、取消
function del(id, url) { var bool = confirm("确定删除?") if (bool) { //点击确定后操作 var Urls = " ...
- django连接mysql数据库以及建表操作
django连接mysql数据库需要在project同名的目录下面的__init__.py里面加入下面的东西 import pymysql pymysql.install_as_MySQLdb() 找 ...
- PyQt5 qt desinger
https://jaist.dl.sourceforge.net/project/eric-ide/eric6/stable/18.08/eric6-18.08.zip pip --timeout 3 ...
- WebForm(Application,ViewState,Repeater的Command操作)
一.AppliCation: 1.存储在服务器端,占用服务器内存 2.生命周期:永久 3.所有人都可访问的共有对象,一般用作服务器缓存 4.赋值:Application["key" ...
- 35. Oracle监听器启动出错:本地计算机上的OracleOraDb11g_home1TNSListener服务启动后又停止了解决方案
一.原因分析 你安装oracle的时候是连网的,那么listener.ora文件里的HOST=网络给你分配的IP地址,而在你断网的时候就会出现这样的情况. 三.解决办法 方法一:监听器 通过liste ...
- MYeclipse 和 flex 环境配置
1安卓JDK 运行 jdk-6u27-windows-i586 安装于 d:/programe/java,注意JRE和JDK安装在一起 测试是否安装成功,运行,CMD,javac 回车.或者java ...
- Asp.Net前台调用后台变量
1.Asp.Net中几种相似的标记符号: < %=...%>< %#... %>< % %>< %@ %>解释及用法 答: < %#... %&g ...
- leetcode140
class Solution(object): def wordBreak(self, s, wordDict): """ :type s: str :type word ...