ARM是Advanced RISCMachines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的精简指令集处理器。我们可以从三个层次理解ARM:一个公司的名字;一类微处理器的通称;一种技术的名字。ARM具有以下技术特点:ARM是一种通用的32位RISC处理器。ARM是一种功耗很低的高性能处理器。ARM是一种可扩展,可移植、可集成的处理器。......
2025-09-30
1.内联汇编(inline assembly)
内联汇编使用“__asm”(C和C++使用,注意,asm前2个下画线)和“asm”(C++使用)关键字声明。在任何语句位置,都可以使用__asm或asm。内联汇编器使用汇编器说明符进行调用,后面跟用大括号或括号括起来的汇编器指令序列。以使用“__asm”为例,介绍单行和多行内联汇编。
在单行中,示例如下:
由于内联汇编在C或C++程序中,所以在用法上有其自身的一些特点。
●如果同一行中包含多条指令,则用分号“;”隔开。如果使用双引号,则必须将所有指令包含在一对双引号“""”内。
●如果一条指令不能在一行中完成,使用反斜杠“\”将其连接。
●对于多行格式,可以在内联汇编语言块中的任何位置使用C或C++注释。但当一行中包含多个指令时,不能嵌入注释(即注释不能出现在两条指令中间)。
●汇编语言中使用逗号“,”作为指令操作数的分隔符,因此使用逗号运算符的C表达式必须用圆括号括起来。如:(https://www.chuimin.cn)
●内联汇编语言中的寄存器名被编译器视为C或C++语言中的变量,所以,内联汇编中出现的寄存器名不一定和同名的物理寄存器相对应。这些寄存器名在使用前必须声明。
●内联汇编中的寄存器(CPSR和SPSR除外)在读取前必须先赋值,否则编译器将产生错误信息。
下面的例子显示了内联汇编和真正汇编的区别。
2.嵌入汇编(embedded assembly)
利用ARM编译器可将汇编代码包括到一个或多个C或C++函数定义中去。嵌入汇编函数定义由__asm或asm函数限定符标记。嵌入汇编函数语法格式如下:
在参数列表中允许使用参数名,但不能用在嵌入式汇编函数体内。例如,以下函数在函数体内使用整数i,但在汇编中无效。可以使用R0代替i(根据参数的传递规则)。
下面通过嵌入式汇编的例子,来进一步熟悉嵌入式汇编的使用。下面的例子实现了字符串的复制,注意和上一节中内联汇编中字符串复制的例子相比较,分析其中的区别。
相关文章
ARM是Advanced RISCMachines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的精简指令集处理器。我们可以从三个层次理解ARM:一个公司的名字;一类微处理器的通称;一种技术的名字。ARM具有以下技术特点:ARM是一种通用的32位RISC处理器。ARM是一种功耗很低的高性能处理器。ARM是一种可扩展,可移植、可集成的处理器。......
2025-09-30
嵌入式系统设计与开发工作中,软件工作量约占全部工作量的80%,其中测试和验证部分的工作量占软件工作量的70%。图1.6嵌入式系统设计与开发流程1.需求分析分析用户的需求:产品的功能、性能、价格、体积、功耗等。嵌入式系统(实现)编程:选择硬件、操作系统、编程语言以及开发工具,编写程序。......
2025-09-30
嵌入式系统的发展大致经历了嵌入式微控制器、嵌入式微处理器和嵌入式数字信号处理器、嵌入式片上系统和以Internet为标志的嵌入式系统等阶段。嵌入式系统的出现最初是基于单片机的,这一阶段的嵌入式系统硬件是单片机,软件停留在无操作系统阶段,采用汇编语言实现系统的功能。第四阶段是以Internet为标志的嵌入式系统。......
2025-09-30
2.开发模式嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。表1.2常用嵌入式开发工具......
2025-09-30
Thumb不是一个完整的体系结构,不能指望处理器只执行Thumb指令而不支持ARM指令集。因此,Thumb指令只需要支持通用功能,必要时可以借助完善的ARM指令集。Thumb指令集与ARM指令集的区别一般有如下几点:●转指令。Thumb数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第3个寄存器中。在Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7。......
2025-09-30
加载/存储指令用于在寄存器和存储器之间传输数据,Load指令用于将存储器中数据传输到寄存器中,Store指令用于将寄存器中的数据保存到存储器中。例如:2.STR指令STR{cond}
2025-09-30
现在高端嵌入式系统软件都在操作系统的支持下运行。嵌入式操作系统是指用于嵌入式系统的操作系统。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。从20个世纪70年代单片机的出现到今天,嵌入式操作系统经历了发展的四个阶段。这一阶段嵌入式系统的主要特点是:操作系统的实时性得到了很大改善,已经能够运行在各种不同类型的微处理器上,具有高度的模块化特点和扩展性。......
2025-09-30
数据处理指令的使用原则:●所有操作数都是32位,可以是寄存器或立即数。后缀S表示指令的操作是否影响标志位。例如:3.ADD指令ADD{cond}{S}
2025-09-30
相关推荐