历史上的今天
返回首页

历史上的今天

今天是:2025年01月29日(星期三)

2020年01月29日 | ARM汇编指令集1

2020-01-29 来源:eefocus

(汇编)指令是CPU机器指令的助记符,经过编译过会得到一串0011组成的机器码,可以由CPU读取执行。


(汇编)伪指令本质不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码。

 

两种不同风格的ARM指令

--ARM官方的ARM汇编风格:指令一般用大写,Windows中的IDE开发环境(如ADS、MDK)常用。如:LDR  R0,[R1]

--GNU风格的ARM汇编:指令一般用小写字母、Linux中常用。如:ldr  r0,[r1]

 

ARM 汇编的特点1:LDR/STR架构

 --ARM采用RISC架构,CPU本身不能直接读取内存,而需要先将内存中内容载入CPU中通用寄存器中才能被CPU处理。

  --ldr(load register)指令将内存内容加载入通用寄存器。

  --str(store register) 指令将寄存器内容存入内存空间中。

  --ldr/str组合用来实现ARM CPU和内存数据交换。

 ARM汇编特点2: 8种寻址方式

  --寄存器寻址                  mov   r1,r2

  --立即寻址                     mov   r0,#0xFF00

  --寄存器移位寻址             mov   r0,r1,lsl#3

  --寄存器间接寻址             ldr     r1,[2]       ;r2里的数据为内存地址里的数据赋值给r1(有点像C语言的指针)

  --基址变址寻址                ldr     r1,[r2,#4] ;  r2里的数据为内存地址加4的地址里的数据赋值给r1(有点像C语言的指针)

  --多寄存器寻址                ldmia  r1!,{r2-r7,r12};r1里的数据作为起始内存地址依次往后将r2,r3,r4,r5,r6,r7,r12里的数据依次赋值到内存里(类似于数组)

  --堆栈寻址                     stmfd  sp!,{r2-r7,lr};sp里的数据作为起始内存地址依次往后将r2,r3,r4,r5,r6,r7,lr里的数据依次赋值到内存里(栈的操作)

  --相对寻址                     beq     flag;直接跳转到flag为标号的地方

ARM汇编特点3:指令后缀

--同一指令经常附带不同的后缀,变成不同的指令。

  经常使用的后缀有:

                               B(byte)功能不变,操作长度变为8位

                               H(half word)功能不变,长度变为16位

                               S(signed )功能不变,操作数变为有符号     如:ldr ldrb  ldrh ldrb ldrh


推荐阅读

史海拾趣

富芯森美(FUXINSEMI)公司的发展小趣事

随着新能源汽车产业的快速发展,富芯森美敏锐地捕捉到了这一市场机遇。公司投入大量资源研发车规级功率半导体器件,产品设计遵循APQP标准,制造管理符合IATF 16949要求,质量检验则严格遵循AEC-Q101标准。这些举措使得富芯森美的车规级产品能够满足汽车行业的严苛要求,成功打入新能源汽车供应链体系,为公司带来了新的增长点。

Digital View公司的发展小趣事

为了进一步提升品牌影响力和市场竞争力,Digital View公司开始实施国际化战略。公司积极参加国际展览和论坛,与全球同行建立合作关系,引进先进技术和管理经验。同时,公司还在海外设立研发中心和生产基地,以便更好地服务全球客户。通过国际化战略的实施,Digital View的品牌知名度和市场份额均得到了显著提升。

E-Mark Inc公司的发展小趣事

在电子汽车行业初期,XYZ公司主要生产简单的车载电子设备。为了进入欧洲市场,公司决定对其产品进行E-Mark认证。经过严格的测试和审核,XYZ公司的产品质量和安全性能得到了欧洲市场的认可。随着欧洲市场的开拓,XYZ公司逐渐扩大了生产规模,提升了技术水平,最终成为了汽车电子行业的领导者。

Crowd Supply公司的发展小趣事

Crowd Supply的创立源于几位麻省理工大学的毕业生对于硬件创新的热情与追求。他们意识到,许多优秀的硬件项目因缺乏资金和市场渠道而无法实现商业化。于是,他们决定创建一个平台,专门服务于这些创新项目,帮助它们从原型设计走向市场。这就是Crowd Supply的初心,也是其使命所在——将原创、有用、受人尊敬的硬件带入生活。

泰科天润(GPT)公司的发展小趣事

随着Crowd Supply在美国的成功运营,公司开始考虑全球扩张。他们首先在欧洲和亚洲设立了办事处和仓库,以便更好地服务这些地区的项目和支持者。同时,Crowd Supply也积极寻求与当地的合作伙伴建立关系,共同推广硬件创新。这些合作不仅为平台带来了更多的项目资源,也提升了其在全球范围内的影响力。

EIC [EIC discrete Semiconductors]公司的发展小趣事

EIC公司一直秉持着环保责任和社会责任感。公司在生产过程中积极采用环保材料和工艺,减少废弃物排放和能源消耗。同时,EIC还积极参与社会公益活动,为社会做出了积极贡献。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实的基础。

问答坊 | AI 解惑

如何学好ARM

大家好,我是新手我对ARM非常感兴趣,但是不知道如何学,从哪里开始,请各位老师指点!!!…

查看全部问答>

估计是MM的最爱——光控小子夜灯

夜灯相信大家也见过不少,虽然样式繁多,我们今天带来的这款相信您绝对没见过,将灯设计成一个双手抱住插座的小人,让他趴在墙上,令原本平淡无奇的夜灯顿时添加了一份动感。 这款灯为夜间提供一个微弱的照明,当房间光线变暗的时候,小夜灯会自动 ...…

查看全部问答>

用PICKIT2烧写pic24fj256Gb106出错

初次烧写,没有经验。烧写报错: Programming failed at Program Memory address0x000000 编程没有问题,就是烧写的时候出现错误。偿试多次,仍是这样。 有烧写经验指点一下,是什么问题导致!…

查看全部问答>

本来有wince平台下的智能输入法,包括拼音、笔画、数字、及字母输入法。

本人有wince平台下的智能输入法,包括拼音、笔画、数字、及字母输入法。有源代码,有意者请联系t9ime_wince@163.com,非诚勿扰!…

查看全部问答>

c8051f020的串口问题

在使用c8051f020的串口往pc串口发送数据时,始终不成功,望高手指点一下: 串口调试器设置:8-N-1;Baud=38400; void Port_Init(void) {         XBR0 = 0x04;//UART0EN=1         XBR1 = 0x00; &n ...…

查看全部问答>

EVC上编译好的程序在PDA上显示不了图片,达人帮忙,紧急,老板要杀人了!!!

在EVC模拟器下可以执行的程序,用来显示图片的 在release后,放到PDA上运行,程序没问题,但是图片显示不出来了 在EVC上,图片是用viewer下载到根目录,是不是在PDA上要做其他的操作?release是不是没有包含所有资源文件? 求救,紧急,老板 ...…

查看全部问答>

期待您的帮助~在CE下如何获取主板 HD CPU的序列号呢~

小弟使用VS2005的VB开发CE5下的程序 现在想读取主板上的一些信息用来加密~主板序列号 硬盘序列号 CPU序列号什么的都可以~但可惜的是CE下不像XP有WMI可以很方便的调用~想知道各位大侠是怎么解决这方面的问题的~…

查看全部问答>

LED芯片技术发展趋势

目前的外延技术可以使得InGaN有源层在常温和普通注入电流条件下的内量子效率达到90-95%,但当温度升高时,内量子效率会有较大的下降,因此要提高发光效率必须控制结温和提高出光效率。基于这点,技术发展趋势如下: 1)衬底剥离技术(Lift-off) ...…

查看全部问答>

时序分析 关于skew 求人解答!

1、关于setup/hold time 1)假设存在positive clock skew为10ns,问最高电路频率 2)能容忍的最大positive clock skew 3)能容忍的最大negative clock skew positive clock skew:DFF2的clock比DFF1的来的晚 negative clock skew:DFF2的cloc ...…

查看全部问答>

关于FSMC使用的小结(很多是坛子里的经验)欢迎拍砖

在这里吧FSMC 涉及到的用法做一个分类总结,虽然官方的文档很好,但是还是用朴素的话做分类说明,方便大家使用,同时如果小弟有理解不对的地方,希望大家及时指正,又缺少的部分大家发帖补充完善下吧。 首先明确一个问题 FSMC 有两种控制器 ...…

查看全部问答>