当前位置:首页 > 经验 >

字指令与位指令的区别(怎么区分字节操作指令和16位指令)

来源:原点资讯(m.360kss.com)时间:2022-11-18 01:11:12作者:YD166手机阅读>>

学习嵌入式开发,那当然会涉及到ARM状态和THUMB状态,很多初学者对这两个状态一直不是很理解,都是一直处于迷茫中,今天我就用实际的例子来教给你,对于arm状态和thumb状态的学习。

我们首先先来清楚一下:ARM处理器的工作状态分为3种,一是:ARM状态,二是:Thumb状态及Thumb-2状态,三是:调试状态

对于arm状态和Thumb状态我们可以用一个简单的比喻来先了解一下:我们可以把ARM核比作一个高中学校,那种包含普通高中和职业高中的。普通高中就相当于ARM状态,职业高中就相当于Thumb状态,这样还不能理解的话:可以认为 泡泡卡丁车 中普通模式和加速模式,,卡丁车加速要等到集气管加满,然后“ctrl”一下,就切换到了加速模式,气放完了就又回来了,不管加速模式还是普通模式都是在跑,只是速度不一样而已。

字指令与位指令的区别,怎么区分字节操作指令和16位指令(1)

点击获取1V1嵌入式学习规划,现在还送100G精选学习资料。

字指令与位指令的区别,怎么区分字节操作指令和16位指令(2)

而ARM状态和Thumb状态也是可以直接通过某些指令直接切换,都是在运行程序,只不过指令长度不一样而已。这个概念对初学者相当重要,因为当ARM Thumb是什么还没弄清楚,怎么能理解两种状态呢?通过上面的例子,我想大家都大概了解了ARM状态和Thumb状态的一些关系了吧,那么这样就可以深入了解ARM状态是什么,Thumb状态是什么了。

另外:ARM的M系列主要用Thumb指令,ARM9和A系列主要用ARM指令

S3C2440.S启动代码中根本就没用Thumb指令。

ARM状态此时处理器执行32位的字对齐的ARM指令,Thumb状态此时处理器执行16位的,半字对齐的THUMB指令。 切换程序:从ARM到Thumb: LDR R0,=lable 1 BX R0 从ARM到Thumb: LDR R0,=lable BX R0

1,ARM状态

arm处理器工作于32位指令的状态,所有指令均为32位

2,thumb状态

arm执行16位指令的状态,即16位状态

3,接下来就是arm与thumb间的切换了,他们到底是如何切换的,这些是你需要掌握的

(1)由thumb状态切换到ARM状态

寄存器最低位设置为0

BX指令:R0[0]=0,则执行BX

R0指令将进入arm状态

当处理器进行异常处理时,则从异常向量地址开始执行,将自动进入ARM状态。

(2)由arm状态切换到thumb

状态将寄存器的最低位设置为1

BX指令:R0[0]=1,则执行BX

R0指令将进入thumb状态

注意:ARM处理器复位后开始执行代码时总是只处于ARM状态;

Cortex-M3只有Thumb-2状态和调试状态;

由于Thumb-2具有16位/32位指令功能,因此有了thumb-2就无需Thumb了。

另外,具有Thumb-2技术的ARM处理器也无需再ARM状态和Thumb-2状态间进行切换了,因为thumb-2具有32位指令功能。

上面这些你都明白了吗,其实总的来说,arm状态和Thumb状态的他们最根本的区别就是指令的位数不同而已,就像arm状态是32位的,thumb是16位的,你只要把他们之间的这些东西都掌握好,那对你学习arm状态和thumb状态是很容易的,快快学起来吧!

栏目热文

逻辑符号怎么来的(逻辑符号查看图解)

逻辑符号怎么来的(逻辑符号查看图解)

概念化的认知中,符号的使用主要是刻画概念间的关系。从现状来说,这种刻画是由逻辑、数学的应用带来的。从历史的角度,逻辑与数...

2022-11-18 00:38:12查看全文 >>

指令字长和存储字有什么区别(指令字长和机器字长的关系)

指令字长和存储字有什么区别(指令字长和机器字长的关系)

重点考点梳理1第一章计算机基础知识01计算机的起源和发展(1)手工计算阶段:结绳和刻木(远古)--算筹(春秋)--算盘(...

2022-11-18 00:37:04查看全文 >>

编程指令什么意思(数控编程指令大全)

编程指令什么意思(数控编程指令大全)

1G04暂停指令G04 X(U)_/P_ 是指刀具暂停时间(进给停止,主轴不停止),地址P或X后的数值是暂停时间。X后面...

2022-11-18 00:40:34查看全文 >>

逻辑学字符(逻辑学所有的符号)

逻辑学字符(逻辑学所有的符号)

语言是人类表达交流和思维的重要工具。语言反映人的思想,人使用语言沟通、表达、创作。人类日常使用的语言被称为自然语言,自然...

2022-11-18 00:57:46查看全文 >>

字块传送指令的含义(字块传送指令怎么用)

字块传送指令的含义(字块传送指令怎么用)

在上个世纪 60 年代末,诞生了一种新型的控制设备——可编程序控制器(英文名称Programmable Logic Co...

2022-11-18 00:52:21查看全文 >>

编程数字符号的意思(编程里的数字代表什么)

编程数字符号的意思(编程里的数字代表什么)

符号表可以为存储器地址或常量指定的符号名称,在进行程序编写前必须要做的工作,为各地址和变量命名,就像一个班级里每个人都有...

2022-11-18 00:58:45查看全文 >>

控制字是数据还是命令(控制字与状态字的区别)

控制字是数据还是命令(控制字与状态字的区别)

“EtherCAT是分布式高性能I/O系统的理想选择,那国内有没有一款经过市场验证的EtherCAT远程I/O模块呢?今...

2022-11-18 00:22:44查看全文 >>

逻辑符号是啥(逻辑符号大全及含义)

逻辑符号是啥(逻辑符号大全及含义)

一、集合符号1、集合与元素之间符号 “∈” 表示“属于”;符号 “∉” 表示 “不属于”,符号 “P(x)” 表示“元素...

2022-11-18 00:23:40查看全文 >>

编程符号什么意思(编程符号的含义及用法)

编程符号什么意思(编程符号的含义及用法)

导读在深度学习中,我们经常会学习和使用到各种框架,如Facebook的pytorch、Google的TensorFlow...

2022-11-18 01:03:22查看全文 >>

位逻辑指令是什么意思(位逻辑指令有什么意义)

位逻辑指令是什么意思(位逻辑指令有什么意义)

西门子S7-1500 PLC与博途应用(基础篇)授课老师:课时内容课时介绍第0课.课程宣传片详细讲述开始本课程的由来,本...

2022-11-18 00:22:43查看全文 >>

文档排行