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汇编的常用指令解析
推荐阅读最新更新时间:2024-11-12 17:57
基于MCP2515的Linux CAN总线驱动程序设计
1.前言 CAN(Controller Area Network)总线,即控制器局域网总线,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性、及独特的设计和适宜的价格而广 泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,并已被公认为几种最有前途的现场总线之一。CAN总线规范已经被国际标准化组织制 订为国际标准ISO11898,并得到了众多半导体器件厂商的支持。 本文使用华清远见FS2416平台。FS2416使用Socket网络设备驱动和字符设备驱动两种方式向Linux内核提供MCP2515的驱动,本文详细介绍了使用Socket方式设计的基于MCP2515的Linux CAN
[单片机]
解决Windows下Arm下Linux下Qt4程序的中文乱码问题
############################################################################### #操作系统:Win7垃圾版 #QT: 4.8.1 #操作系统:Winxp垃圾版 #QT: 4.8.1 #开发板:友善之臂Tiny6410 V1.2 #QT: 4.6.1 #QTE-arm: 4.7.0 #Write By Kinglate 20130806 ############################################################################### 也许这个世界上没有人会像我一样遇到一个问题了,
[单片机]
Linux 下PL2302 USB转串口的使用
现在市面上的USB转串口线非常便宜,而且现在大部分机器都没有串口.因此在嵌入式LINUX下开发使用USB转串口的线相当普遍.而我测试最稳定是 PL2303芯片,即一般是黑色不透明那种.在WINDOWS XP下使用比较稳定.学生一般问我,我都推荐这种,反而是市面上那种绿色透明的转换线,相当不稳定. 以下是推荐的串口转USB线,采用PL2303芯片 Y-105 Usb转串口线 Usb转Com USB 转 Rs232 9.5元 以下是不推荐的HL340芯片,在LINUX下尽量不要使用. a 五钻 USB转RS232(COM) USB转串口数据线 HL-340芯片 串口线 6.5元 关于PL230
[单片机]
Linux - 你看不到,却已一统天下
当那个芬兰的大学生因为学习需要写下那个Minix的克隆系统——Linux时,恐怕他自己也想不到会在计算机世界中掀起一场革命。 十几年后,Linux的触及生活中的方方面面,甚至令人怀疑,Linux是不是会一统江湖,成为操作系统的盟主?至少现在看来,趋势已经很明显了。 首先来看目下最热最潮最流行的云计算技术,云计算的背后是虚拟化和网格技术,而虚拟化和网格技术基本是Linux的天下,目前虚拟化的三大家:Vmware,Xen,Hyper-V中,市场占有率最大的Vmware和Xen都是基于Linux的,Hyper-V的后展后劲还有待观察,估计在Microsoft的免费的市场策略下不会太差。现在中国仅有的二个公有云中心:宁波和佛山云计算中心
[模拟电子]
Linux系统下烧录单片机(转)
有些人说Linux下怎么开发单片机程序? 我们学得都是在Windows下的开发工具和烧录工具。其实这只是中国的情况,中国大都是用Windows系统的。所以我们也只接触到Windows下的开发工具。在国外,许多大牛是不用Windows的。那么,他们如果要做单片机怎么办?肯定没问题的,Linux也有许多的单片机和嵌入式的开发工具。下面,我以51系列单片机为例,介绍一下怎么使用Linux系统玩单片机。 首先,说一下我的硬件和软件情况。 硬件: 一台笔记本、 一个51单片机开发板(这个在网上有很多卖,也就150左右的价格)。单片机芯片有两块 :一块是Atmel的AT89S52, 另一块是STC的STC89C52RC 。USB转串口线一
[单片机]
arm汇编学习(六)跳转到thumb状态
通常函数返回使用 pop {r7,pc}或bx lr等方式(bx,b类似jmp为跳转指令,但bx可以指定跳转区域究竟为thumb还是arm指令。 thumb指令指令的时候,直接填写该地址却总是产生SIGSYS信号(非法指令执行)。 原因就是该函数为thumb指令,因此跳转时必须要把指令地址的最低位设置为1(bx 通过这一位来区分指令集),所以函数地址就加了一。 thumb指令集与arm指令集切换 mov R0,#5 ;Argument to function is in R0 add R1,PC,#1 ;Load address of SUB_BRANCH, Set for THUMB by adding 1 BX
[单片机]
linux-2.6.32在mini2440开发板上移植 SD卡驱动移植
编者:这个驱动还是比较复杂的,先移植着,以后在分析吧。 SD卡驱动移植 1 在内核中注册SD 设备驱动 Linux-2.6.32.2 已经自带了S3C2440 芯片的SD 卡驱动,我们只需在初始化代码中加入SD 平台设备结构就可以,打开arch/arm/mach-s3c2440/mach-mini2440.c,在nand flash 平台结构后面添加如下红色代码: ;在mini2440.c 的顶部添加SD 卡设备结构所需的头文件 #include linux/mmc/host.h #include plat/mci.h static struct platform_device mini2440_device_eth = { .n
[单片机]
基于嵌入式Linux系统的导航软件设计思路
1 引言 随着汽车等各种车辆交通工具的普及,车辆导航设备的需求也变得日益旺盛。作为车载设备。不仅要有可靠的性能,而且需要具有便携、低功耗和低价格等特点。而采用基于ARM微处理器的嵌入式系统与GPS模块相配合的GPS导航终端机的设计方案,可以很好的满足这一系统需求。为此,本文介绍了一种利用ARM9开发板和GPS模块实现GPS导航功能的终端机的软硬件结构和设计方法。 2 GPS导航系统结构 本文所介绍的GPS全球定位导航系统按功能可分为嵌入式主控模块、GPS模块、显示模块、扩展模块及供电模块等五大部分。 嵌入式主控模块基于S3C2440处理器,主要负责对GPS导航模块数据的响应、处理和控制。在硬件上,主控
[汽车电子]