arm指令有多少,ARM汇编语言由哪些指令组成它们之间的区别是什么
来源:整理 编辑:亚灵电子网 2023-09-18 22:42:14
1,ARM汇编语言由哪些指令组成它们之间的区别是什么
机器指令能被处理器直接执行,而汇编指令、伪指令和宏指令不能。机器指令包括ARM指令集和Thumb指令集 。伪指令是在源程序汇编期间,由汇编编译器处理。其作用是为汇编程序完成准备工作。宏指令在程序中用于调用宏,宏是一段独立的程序代码;在程序汇编时,对宏调用进行展开,用宏体代替宏指令。arm处理器有9种寻址方式:1、寄存器寻址,2、立即寻址,3、寄存器器移位寻址,4、寄存器间接寻址,5、基址寻址,6、多寄存器寻址,7、堆栈寻址,8、块拷贝寻址,9、相对寻址。arm指令集:arm指令基本格式如下:{}{s} ,{,} 其中<>的内容是必须的,{}的内容是可选的。opcode指令助记符。
2,ARM异常处理的7个指令都是什么
异常处理的指令?ARM总共有7种模式:用户模式,一般中断,快速中断,数据异常,系统模式,未定义模式,管理员模式。我想你问的是这7种模式的访问指令吗?这7种模式的访问都在bootloader中有相应的中断函数。arm7、arm9内核都支持有arm指令集和thumb指令集,目前的arm-cortex m3内核是thumb-2指令集。对arm内核而言相同的指令集是一样的,但是每个型号的arm内核支持的指令集中的指令条数不一样,虽然是相同指令集,arm9支持的指令可能比arm7多,你说的st 三星什么的是具体的芯片了,是半导体公司买了arm ip核开发的具有他们公司特色的外设,内核支持的指令集是arm公司定的而不是他们定的,所以只要是同系列的内核,指令是一样的
3,懂ARM7的来ARM指令集和THUMB指令集分别在什么情况使用它
ARM指令集是32位的,THUMB是16位的。他们可以动态切换。你可以认为ARM是80386,而THUMB是8086。
对于32位和16位CPU的差别,他们之间也同样存在,有人统计数据:
-----------------------------------------------------------------------------
在一般的情况下, Thumb 指令与ARM 指令的时间效率和空间效率关系为:
— Thumb 代码所需的存储空间约为ARM 代码的60%~70%
— Thumb 代码使用的指令数比ARM 代码多约30%~40%
— 若使用32 位的存储器,ARM 代码比Thumb 代码快约40%
— 若使用16 位的存储器,Thumb 代码比ARM 代码快约40%~50%
— 与ARM 代码相比较,使用Thumb 代码,存储器的功耗会降低约30% 
4,关于ARM 的一些问题
1. 体系结构,有七种工作模式分别为?,其中有?种异常模式。答案:(1)用户模式(USR)(2)快速中断模式(FIQ)(3)外部中断模式(IRQ)(4)管理模式(SVC)(5)数据访问中断模式(ABT)(6)系统模式(SYS)(未定义指令中止模式)(UDN)有5种异常模式2. arm处理器支持两种指令集分别为?分别为?位?位指令集.答案:arm指令集和Thumb指令集 分别为:32位,16位3. 嵌入式体系结构寻址方式答案:1.立即寻址2.寄存器寻址3.寄存器偏移寻址4.寄存器间接寻址5.基址变址寻址6.多寄存器寻址7.相对寻址8.堆栈寻址9.块复制寻址4. ARM伪操作和宏指令分为?种?答案:伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令以及其他伪指令。宏指令这个意思就是执行完主函数后进行死循环,你贴的程序太短了 前后文不知道 arm指令中是没有reset的,你看看是不是个标号什么的。发一个关于reset的代码上来吧,要不实在不理解
5,ARM指令的一般编码格式如下
你这个是ARM7 CPU的指令码格式,早期的ARM架构,是ARMV4T,而且只是其数据处理类指令的指令编码格式(4位编码,配合这其余位,如I位,Rn,Rm,第二操作数等编码位,可以编码出很多条数据处理指令。)。所以说,并不是25-27位没有使用。在其它类型的指令中就有使用25-27,如图2. 图1 ARM7 CPU数据处理指令的编码格式。 图2 ARM7 CPU的单字节传输(LAD,STR)指令编码格式具体请自己查找官方手册,在arm官网可以找到对应资料。ARM 体系结构参考手册ARMv7-A和ARMv7-R版:DDI0406C_C_arm_architecture_reference_manual.pdf 的A5章节,193页起都是讲这个的。[27:20]是指令代码部分,除指令编码外,还包括后缀编码和指令特征位.可以编码256中不同类型的指令码,实际上ARM没有这么多,它是精简指令集。
6,简单的ARM指令程序分析
功能:一个数如果大于0则变成负值,如果已经为负值,则不变。
AREA Example, CODE,READONLY
ENTRY
MAIN
MOV R3,#0 //R3 里面放个0
MOV R0,#1000 //R0 里面放1000,这个1000是当做地址用的。
MOV R4,#2000 //R2 里面放2000, 这个2000是当做地址用的。
LDR R1,[R0] //将地址1000存放的数放到R1里面。
CMP R1,#0 //R1 和 0作比较。
BLLT INVERSE //如果R1里面的数据大于0,则跳转到 INVERSE。小于0则继续执行下一条。
MOV R3,R1 //为小于0的分支,将R1放到R3里面。
STR R3,[R4] //将R3的值放到2000地址指向的空间。
BL ENDPLACE //程序结束。
INVERSE //大于0的分支。
SUB R3,R3,R1 // 0 减去R1,得到一个-R1,并存到R3里面。
STR R3,[R4] //将R3的值,放到地址2000指向的空间。
ENDPLACE BLENDPLACE //程序结束。
END
7,ARM的汇编语言
直接拿现成的代码来用就行了。最新的 ARM Cortex 系列处理器,除了编写一些特殊的程序,如 RTOS 等等之外,已经完全可以不用汇编语言了,现在很多人在写 ARM Cortex 程序,其实大部分都不懂 ARM 汇编的,可以不用研究它,必须使用汇编作为辅助,但好在这些必须使用汇编的部分,指令数量要比 x86 少很多,但 ARM 随着版本的进步,也在指令集中增加了比较多的复杂指令,比如类似 DSP 的,要说比 x86 简单,那是肯定的,但比起大多数 8 位处理器那是复杂了不是一星半点啊。一般来说,由于 ARM 是 RISC 模式的,如果不是有特殊应用,学一种 CPU 就要包括其汇编语言,逻辑基本固定了,就 ARM 来说,有几个架构版本确实不能纯粹使用 C 语言完成所有工作,还有 SIMD 的等等ARM 当然有自己的指令集,与 x86 相比arm处理器有9种寻址方式:1、寄存器寻址,2、立即寻址,3、寄存器器移位寻址,4、寄存器间接寻址,5、基址寻址,6、多寄存器寻址,7、堆栈寻址,8、块拷贝寻址,9、相对寻址。arm指令集:arm指令基本格式如下:{}{s} ,{,} 其中<>的内容是必须的,{}的内容是可选的。opcode指令助记符。所有汇编的难易程度都差不多,上电后的启动代码大部分是用汇编写的,感觉ARM汇编容易理解点。ARM的bootloader使用C语言写的。不过1. ARM和X86是不同的架构。个人对ARM熟悉点,ARM有自己专属的汇编语言,用C写的也有。2. ARM汇编大概了解一下就好了
文章TAG:
arm指令有多少arm 指令 多少
相关文章推荐
- BA6208是什么芯片,BA6247是什么芯片?
- 松下npm贴片机多少钱,买松下贴片机多少钱
- A9智能电视处理器能跑多少分,A9频率14怎么442系统和422系统安兔兔跑分一样
- 03db是多少,30wt等于多少
- 占空比多少有意义,占空比控制有什么优点
- 电路正负极颠倒危害,锂电池正负极接反
- 电路图中网孔,电路中网格的概念
- 电路板的硬件调试,简述硬件电路的设计流程
- 安桥818音箱设置多少,安桥818音频输入如何设置
- mos管电压等级,关于mos管的导通电压
- 正负极交换芯片,芯片的正负极
- 消除反电动势电压,反电动势消除电路
- 57AY161是什么芯片,A5657N是什么芯片?
- 安全芯片应用原理,什么是安全芯片?
- hx48电路图,xh-m401电路图