linux net 伪指令码,1.2.2. ldr pWTCON

伪指令,就是“伪”的指令,是针对“真”的指令而言的。

真的指令就是那些常见的指令,比如上面说的arm的ldr,bic,msr等等指令,是arm体系架构中真正存在的指令,你在arm汇编指令集中找得到对应的含义。

而伪指令是写出来给汇编程序看的,汇编程序能看的伪指令具体表示的是啥意思,然后将其翻译成真正的指令或者进行相应的处理。

伪指令ldr语法和含义:

另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数前加上=,以表示把一个地址写到某寄存器中,比如:

ldr r0, =0x12345678

这样,就把0x12345678这个地址写到r0中了。所以,ldr伪指令和mov是比较相似的。

只不过mov指令后面的立即数是有限制的,这个立即数,能够必须由一个8位的二进制数,即属于0x00-0xFF内的某个值,经过偶数次右移后得到,这样才是合法数据,而ldr伪指令没有这个限制。

那为何ldr伪指令的操作数没有限制呢,那是因为其是伪指令,写出来的伪指令,最终会被编译器解释成为真正的,合法的指令的,一般都是对应的mov指令。

这样的话,写汇编程序的时候,使用MOV指令是比较麻烦的,因为有些简单的数据比较容易看出来,有些数据即不容易看出来是否是合法数据。所以,对此,ldr伪指令的出现,就是为了解决这个问题的,你只管放心用ldr伪指令,不用关心操作数,而写出的ldr伪指令,编译器会帮你翻译成对应的真正的汇编指令的。

而关于编译器是如何将这些ldr伪指令翻译成为真正的汇编指令的,我的理解是,其自动会去算出来对应的操作数,是否是合法的mov 的操作数,如果是,就将该ldr伪指令翻译成mov指令,否则就用别的方式处理,我所观察到的,其中一种方式就是,单独申请一个4字节的空间用于存放操作数,然后用ldr指令实现。

在uboot中,最后make完毕之后,会生产u-boot,

通过:arm-linux-objdump –d u-boot > dump_u-boot.txt

就可以把对应的汇编代码输出到该txt文件了,其中就能找到伪指令:ldr r0, =0x53000000

所对应的,真正的汇编代码:33d00068:e3a00453 movr0, #1392508928; 0x53000000

所以被翻译成了mov指令。

而经过我的尝试,故意将0x53000000改为0x53000010,对应的生产的汇编代码为:33d00068:e59f0408 ldrr0, [pc, #1032]; 33d00478

......

33d00478:53000010 .word0x53000010

其中可以看到,由于0x53000010不是有效的mov的操作数,没法找到合适的0x00-0Xff去通过偶数次循环右移而得到,所以只能换成此处这种方式,即在另外申请一个word的空间用于存放这个值:33d00478:53000010 .word0x53000010

然后通过计算出相对当前PC的偏移,得到的地址,用ldr指令去除该地址中的值,即0x53000010,送给r0,比起mov指令,要复杂的多,也多消耗了一个word的空间。

对应地,其他的方式,个人理解,好像也可以通过MVN指令来实现,具体细节,有待进一步探索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下一个10年,可能改变世界的5项重大发现!真正革命性的进步

来源:博科园在过去的十年里,科学上出现了一些真正革命性的进步,从发现希格斯玻色子到使用CRISPR进行科幻风格的基因编辑。但是,还有哪些更大的突破还在后面呢?《Live Science》采访了所在领域的几位专家,他…

idea整合jboos_在 idea 中 启动 jboss 后, 没有运行部署(通过idea部署)的ssm项目,打开后项目404...

在 idea 中 启动 jboss 后, 没有运行部署(通过idea部署)的ssm项目,打开后项目404,暂时的解决办法每次启动 jboss 都需要是手动登录到 9999 管理端,添加部署 Create an unmanaged deployment,这样很麻烦,每次…

arm linux漏洞,GitHub - armjirawat/linux-kernel-exploits: linux-kernel-exploits Linux平台提权漏洞集合...

CVE-2017-1000367  [Sudo](Sudo 1.8.6p7 - 1.8.20)CVE-2017-1000112  [a memory corruption due to UFO to non-UFO path switch]CVE-2017-16939  [UAF in Netlink socket subsystem – XFRM](Linux kernel before 4.13.11)CVE-2017-7494  [Samba Remote execution](Sa…

shell脚本参数中有空格

shell脚本参数中有空格 在shell脚本中如果有空格的处理如下: sh test.sh "hello word" echo $1 得到的是hello,而不是hello word. 正确的写法如下: vi test.sh #!/bin/bash source /etc/profile echo "$1" echo "$2…

python科学计算三剑客_机器学习三剑客之Numpy

NumpyNumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!Numpy简单创建数组import numpy as np# 创建简单的列表…

“不确定性问题”(Nondeterministic Problem,NP)与哥德尔不完全定理“

来源:柳渝科学网博客1931年哥德尔证明:任何无矛盾的公理体系,只要包含初等算术的陈述,则必定存在一个不可判定命题,用这组公理不能判定其真假。虽然哥德尔不完全定理只是针对包含数论的公理体系而言的,由于…

SecureCRT使用本地公钥 SSH 免密码登录Linux

其原理与Linux系统之间的SSH通道原理是一样的 下文中如果创建公钥的格式是:标准公钥和VanDyke私钥格式,需要用ssh-keygen -i -f 转换。如果是OpenSSH密钥格式可直接修改文件名 1 、打开会话选项,在 分类 中选择 SSH2,在右边的 身…

linux la 的使用方法,Linux简介及常用命令使用4--linux高级命令与技巧(示例代码)

top几个磁盘fdisk -l磁盘空间 df -lhdf -al查看进程:ps -ef“grep java杀死进程:kill -9 进程号more中过滤more xxx |grep www.makaidong.com安装linux后配置ipVim /etc/sysconfig/network-scripts/ifcfg-eth5IPADDR192.168.42.142NETMASK255.255.255.0G…

深度学习不能取代计算机视觉技术背后的真正原因

来源:电子发烧友深度学习只是一种计算机视觉工具,而不是包治百病的良药,不要因为流行就一味地使用它。传统的计算机视觉技术仍然可以大显身手,了解它们可以为你省去很多的时间和烦恼;并且掌握传统计算机视觉确实可以让…

java 切换主线程_Java线程状态及切换、关闭线程的正确姿势分享

前言在讲线程之前有必要讨论一下进程的定义:进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。进程实体由程序段, 数据段 PCB(进程控制块)组成。线程又是什么?线程可以看做轻量级进程&#xff0c…

win10控制面板快捷键_你没玩过的全新版本Win10,这些操作你知多少?

不知不觉,Windows 10与我们相伴已经整整四个年头了,从最开始的组团抗拒到现在的默默接受,个中滋味相信谁心里都有个数。近日微软开始推送“Win10更新五月版”,那么Win10中到底都有哪些“骚”操作?一起来看看吧。1、夜间…

1.编写登录接口

需求:.编写登录接口输入用户名密码认证成功后显示欢迎信息输错三次后锁定 # Author rendeleiwhile True: list1 [] list2 [] count int(3) f open("login.txt",‘w’) for line in f: hostname str(line.split(\t)…

Linux redis故障,linux – Redis Stall故障排除

我们在服务器上运行了几个redis实例.还有多个Web层服务器连接到那些同时遇到停顿的实例.我们当时正在进行数据包捕获,确定在TX和RX流量中存在停顿,如下面的wireshark IO图:redis调用有一个相关的峰值,但我怀疑这是一个影响,而不是由于时滞造成的原因:使用…

吴恩达邀请9位AI大牛畅想2020:李开复看好医疗教育,LeCun强调自监督学习

来源:凹非寺2020,AI的研究会有哪些突破?2020,AI的应用又会有什么变化?吴恩达DeepLearning.ai旗下的THE BATCH刊物,分享了包括Yann LeCun、李开复、周志华、还有他们的老板吴恩达在内的10位AI大佬的新年寄语…

ivx中字体显示_iVX云服务费用优化 · 上篇

本文全文字数: 3308预计阅读时间: 10 分钟本文篇幅较长,建议亲亲能够完成阅读,将会学到不少干货哦~❤️本文目录一虚拟机->我们为何关闭了之前的虚拟机服务?->是否有新的虚拟机计划?二流量优化-&…

R pdf大小_限时免费获取 Mac上PDF压缩工具《Enolsoft PDF Compressor》

文章末尾有获取方式,按照以下步骤就能得到。我们不破解软件,所有优秀软件均来源于网络你的pdf文件太大使用不方便吗?赶紧来试试专业PDF压缩工具Enolsoft PDF Compressor破解版吧!可以快速的压缩PDF文件的大小,支持批量…

未来十年有望改变世界的五大发现

来源:科技日报 浮云一别后,流水十年间!21世纪第二个十年已悄然离开。过去十年,不少革命性突破和发现给人类生活和认知带来重大变革:希格斯玻色子填补了“标准模型”最后一块拼图,深化了人类对物质本质的理解…

fceux模拟器linux,FCEUX模拟器

FCEUX模拟器是一款游戏模拟器,可以用于FC/NES模拟器的游戏模拟,在模拟器中玩家可以游玩到那些经典的FC游戏,也就是我们所说的那些红白机游戏,比如经典的魂斗罗、超级马里奥等等,让你回到过去,回温这些经典的…

sql server select和set赋值的区别

--SQL Server中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT --当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法 (1)SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值 select p…

ddos应急处理_写给十九大安保应急的兄弟们 来看看DDOS攻击应急预案

阅读:4,205十一国庆以及紧接着的十九大即将到来,各位十九大安保应急的兄弟们都已经奔赴各自的一线,万事俱备只欠东风,大家的神经都紧绷着,紧急有序执行DDOS应急预案。“养兵千日用兵一时”,我们在平时把该做的准备都做…