1、ARM机器码
对elf格式的文件进行反汇编可得到相应汇编文件的机器码:
arm-linux-objdump -D -S start.elf
机器码的解析,可以参考文件ARM Architecture Reference Manual的The ARM Instruction Set章节。
2、定义类伪指令
伪指令前面加上'.'号是GNU的一个特点!!
.global:标明一个全局的符号。
.data:标明接下来的数据会存放到数据段里面去。即,这是一个数据段。
那么在数据段当中能够定义什么样的数据呢?
.ascii:定义一个字符串类型的数据
.byte:定义一个字节类型的数据
.word:定义一个字的数据。
以上在定义数据的时候一定要有一个标号!!如下:
数据段的起始位置:0x30010084
equ伪指令类似于C语言中的宏定义
align主要用来控制对齐:
没有使用align的情况:
使用arm-linux-readelf -a start.elf
使用align的情况:
3、操作类伪指令
ldr伪指令与前面的实际的存储器访问指令同名;
对于mov指令而言,它能够使用的立即数不能够超过二进制的8位。因为它超出了这个长度所以报错了。
为什么?这个跟mov指令的机器码相关!
那么大于8位的数,用ldr,如
ldr r0,=0x1fff 不过ldr也可以用于小于8位的数。
执行一个反汇编:
nop指令是一个空操作:
关键字:ARM 伪指令 机器码
引用地址:
Part3_lesson3---ARM伪指令学习
推荐阅读最新更新时间:2024-11-12 14:41
牙膏厂想要改变工艺制程的命名
今天的主流桌面和移动处理器使用 16 纳米和 14 纳米工艺制造,而使用 10 纳米工艺制造的高通 ARM 处理器也将在下个月随三星 Galaxy S8 和 S8+ 上市正式提供给消费者。对于这种基于线宽的工艺制程命名法,过去几年一直滞留在 14 纳米制程的 芯片 巨人对此颇有不满。下面就随嵌入式小编一起来了解一下相关内容吧。 牙膏厂想要改变工艺制程的命名 它宣称自己的工艺比竞争对手的相同制程工艺更先进,采用线宽命名对它不公平。英特尔想要根据每平方毫米上的晶体管数量来描述制程。 根据这一衡量标准,它的 22 纳米工艺能实现每平方毫米 1530 万晶体管(或 15.3MTr/mm 2),14 纳米工艺
[嵌入式]
厚安创新基金启动,瞄准下一代技术革命
由ARM与厚朴投资共同管理的厚安创新基金 ( HOPU-ARM Innovation Fund )日前正式启动。该基金的投资者包括中国主权财富基金、中国政府机构下设基金、深圳市政府全资公司以及国际知名投资机构。 结合 ARM 的全球 产业生态系统 和厚朴投资丰富的投资经验,厚安创新基金 致力于 投资 来自ARM中国及全球生态系统中极具 潜力的技术公司,覆盖一系列创业、创新投资项目,加速以物联网、智能硬件、云计算、大数据、 人工智能 等为代表的关键性创新应用的 诞生 。 ARM一直以来与中国共同成长,并积极 推动中国创新和产业升级, 过去十年来中国合作伙伴基于ARM芯片的中国芯出货量成长一百多倍,协同两百多个国内 合作伙
[物联网]
ARM学习笔记(一)"S3C2440A时钟初始化"
S3C2440A时钟初始化: 1.根据OM 判定系统时钟来源(Fin) 2.设置CLKCON 默认即可,如有功耗要求,可参考手册设置,关闭部分时钟. 3.设置CLKSLOW 默认即可,不用SLOW模式. 4.LOCKTIME设定(略),默认设置 5.设置锁相环 MPLLCON UPLLCON MDIV= MP(U)LLCON PDIV= MP(U)LLCON SDIV= MP(U)LLCON 约定:m=MDIV+8 ; p=PDIV+2; s=SDIV 系统时钟FCLK=Fmpll=(2*m*Fin)/(p*2^s) 【与S3C2410不同】 USB时钟UCLK=Fupl
[单片机]
基于LPC2131 ARM单片机16路开关量输入信号采集系统的设计
在大型工业控制系统中,各级设备的启动、停止,都对整个系统的运行状况有着一定的影响,对这些装置开关量信号的采集、动作时序的记录也显得尤为重要。所以,有必要设计一种开关量信号采集卡,来对这些信号进行采集,以对设备运行状态、生产事故的检测和分析、查询提供依据。 本文介绍的16通道开关信号采集卡采用飞利浦LPC2131 ARM单片机为核心,以0.5ms的采样周期,可对16路开关量输入信号进行采集,对开关量的跳变波形及发生时间进行实时测量,并将数据上传至上位机历史数据库,其分辨率为1ms。同时,可通过与上位机软件的配合对历史数据进行全方位查询,以分析系统运行情况。 测量卡件留有UART通讯接口,与控制器联网,将采集的数据输送到控制器
[单片机]
arm中ldr与mov的区别
关键字:ldr,立即数前面的等号,mov ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。想把数据从内存中某处读取到寄存器中,只能使用ldr。比如: ldr r0, 0x12345678 就是把0x12345678这个地址中的值存放到r0中。 而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。 x86中没有ldr这种指令,因为x86的mov指令可以将数据从内存中移动到寄存器中。 另外还有一个就是ldr伪指令,虽然ldr伪指令和ARM的ldr指令很像,但是作用不太一样。ldr伪指令可以在立即数
[单片机]
Arm 发布集成式 SIM 身份认证
Arm 推出新技术,为蜂窝物联网提供 SIM 级身份认证,在可控成本下,数十亿设备将从中受益 Arm® Kigen™ 系列将 SIM 功能集成到物联网系统级芯片 (SoC) 设计中,并为 OEM、MNO 和物联网平台提供灵活的远程配置服务器解决方案 SIM 技术的发展获得业界的广泛支持 (2月28日-北京讯),Arm 预计,到 2035 年将有 1 万亿台联网设备,而这些设备都将需要一个安全的身份认证,从而使利益相关者能够建立信任——例如,使服务提供商信任设备,对设备进行认证,提供增值服务以及在需要时发布安全更新。 一直以来,SIM 卡都在为手机和其他联网设备提供着一个稳定、可信且经过检验的身份安全认证机制。然而,传统 S
[手机便携]
ARM--GPIO端口
s3c2440共有130个GPIO端口,分为9组,GPA ~ GPJ,通过寄存器控制。 控制s3c2440的GPIO端口的寄存器有3类,分别是GPxCON、GPxDAT、GPxUP (x=A ~ J): GPxCON:GPIO控制寄存器,可以设置选定GPIO口的输入输出方式和功能。GPA组的23个端口比较特殊,只能是输出方式。GPACON的每一位对应一个引脚,当某位为0时,对应引脚为输出端口,否则为复用功能。 GPB ~ GPJ端口的GPxCON寄存器使用方法一致,每两位控制一个引脚,00时为输入I/O口,01时为输出I/O口,10时为复用功能,11保留。 GPxDAT:此引脚用于读写引脚的状态,即端口数据。当引脚配置
[单片机]
2014年ARM架构芯片移动设备性能将与PC媲美
北京时间9月9日,在英特尔公司年度大会召开的前夕,目前在移动芯片领域处于霸主地位、同时也是英特尔在移动领域要面对的最大竞争对手ARM的高管在接受CNET采访时向外界展示了更加PC化的未来移动设备发展趋势。 目前ARM构架的芯片在全球包括智能手机和平板电脑的移动设备领域可以说是拥有绝对的霸主地位。包括三星、苹果、英伟达、高通还是联发科,几乎所有芯片厂商在产品的研发上使用的都是来自于ARM的授权技术。而这些主流的芯片厂商的产品几乎涵盖了三星Galaxy系列、谷歌Nexus系列、iPhone及HTC等市面上主流的智能手机。另一方面虽然英特尔公司在桌面处理器领域拥有绝对的优势,但是在移动领域的表现却一直都是差强人意。而现在AR
[嵌入式]