设为首页 加入收藏

TOP

ARM汇编语言(Assembly Language)
2016-12-12 08:15:32 】 浏览:275
Tags:ARM 汇编语言 Assembly Language

ARM汇编语言(Assembly Language)是ARM CPU所能接受的最底层唯一语言(所有的高级语言最终都要转换成汇编语言然后汇编成processor instruction codes)。ARM汇编的核心是ARM指令集。理解ARM汇编有助于理解底层processor内部的工作原理,有助于对高级语言的优化。由于ARM汇编小、快的特点,经常被用在processor的初始化配置中(常见于bootloader、kernel的初始化代码)。


不同于其他高级语言,汇编语言没有一个标准的语法格式,不同的assembler有着不同的语法,不同的processor有着不同的指令(instruction code)格式。机器所能执行的是raw instruction code,汇编语言使用人类易懂的mnemonics来代替instruction code,然后通过assembler汇编成二进制的raw instruction code。以下主要针对ARM处理器指令格式及GNU Assembler进行讲解。


ARM汇编源文件是由每行一条语句顺序组成的文本文件。语句格式如下:


label: instruction @comment


每条语句由标签(label)、指令(instruction)、注释(comment)三项组成且每一项都是可选的:


{cond}{flags} Rd, Rn, Operand2


常见寻址方式:


Thumb指令集具有高密度的优势,其在硬件层最终也被映射到ARM指令集,所以效率也相当。


由于当前绝大多数的ARM核都同时支持ARM和Thumb两种指令集,ARM开发了Unified Assembler Language (UAL)同时支持这两个指令集。


这个与上述算术指令的差异在于限定了操作数的取值范围,当出现溢出,CPSR的Q会置位,但这个Q位在后续的计算中不会被清除,也就是说如果是一系列运算,Q置位只能说明其中之一发生了溢出,但具体是哪个不清楚。


ARM使用的是Load/Store架构,数据必需从存储器搬到寄存器中才能使用。


Compare instructions are instructions that do not return any results, but set condition codes.


堆栈是内存最末端的一块区域,它的底也就是内存的最末端。堆栈主要存放函数调用需要传递数据。
PUSH and POP


1. Professional-Embedded-ARM-Development
2. Professional Assembly Language


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Bootloader设计 下一篇内存管理单元MMU(memory managem..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目