微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

新手必看 ARM操作指令简介合集

2016-07-27 09:11 来源:电源网综合 编辑:铃铛

ARM芯片是目前最为成功的控制半导体产品之一。很多经典芯片产品都采用了ARM作为核心,ARM的汇编程序由ARM指令、伪指令、伪操作、宏指令组成。分类如此之多,对于刚刚接触ARM的朋友来说似乎非常容易产生混淆。在本文当中,小编将为大家介绍ARM位操作与伪指令,感兴趣的朋友快来看一看吧。

ARM伪操作

GET,通常用于包含定义常量的源文件,如用EQU定义的外设地址,类似于C语言中用include好含头文件。(汇编语言中被包含的文件常以.inc结尾)GET2440addr.inc

AREA、ENTRY和END

AREA操作常用于定义一个段。通常一个ARM源程序至少需要一个代码段。

ENTRY用于指定程序的入口点。

END用于告诉汇编编译器源文件已经结束。

EXPORT和IMPORT

EXPORT伪操作用于声明外部标号,即当前标号是本源文件中定义的,在其他文件中可能会被引用。

IMPORT伪操作用于告诉编译器当前的符号不是本源文件中定义的,而是在其他源文件中定义的,在本源文件中可能引用该符号。

EQU用于定义常量。提醒,在每条ARM指令前必须有空格,但是用EQU定义常量时,必须顶格写,否则编译器会报错。

LTORG用于声明一个文字池,所谓文字池就是一个数据缓冲区。

ALIGN伪操作通过调整地址指针使当前位置满足一定的对齐方式。在ARM代码中要求地址符号是字对齐的。

MACRO和MEND伪操作用于宏定义。

MACRO表示宏定义的开始,MEND表示宏定义的结束。用MACRO和MEND定义的一段代码,称为宏体。这样,在程序中就可以通过宏指令多次调用该代码段。


MACRO

{$label}MACROName{$parameter}{$parameter}……;这里添加自己的代码

MEND

MAP和FIELD

MAP用于定义内存表的首地址,其中MAP也可以用^表示。FIELD用于定义一个内存表中的数据域,其中FIELD可以用#表示。MAP和FIELD组合类似于C语言中定义一个数组,MAP指向数组的首地址,FIELD用于分配数组中的各个元素。

#definepISR_SWI(*(unsigned*)(_ISR_STARTADDRESS+0x8))

强制转换后,可以对pISR_SWI进行赋值,调用。

_ISR_STARTADDRESSEQU0x33FFFF00

^_ISR_STARTADDRESS

HandleReset#4

HandleUndef#4

HandleSWI#4

HandlePabort#4

HandleDabort#4

ARM伪指令:ADRL;LDR;DCDSPACE

通过以上的介绍,相信大家对于ARM芯片中各类ARM汇编程序指令已经有了一定程度的了解。ARM伪操作通常用于包含定义常量的源文件,而AREA操作则常用于定义一个段,每一种汇编方式都有自己独特的应用场合,大家可以将本文进行收藏,在需要复习的时候作为参考资料。

标签: ARM ARM操作指令

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

相关阅读

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006