美文网首页嵌入式
Cortex-M0使用汇编进行数据访问时,需要注意的几点

Cortex-M0使用汇编进行数据访问时,需要注意的几点

作者: 梦凡尘 | 来源:发表于2019-05-15 16:35 被阅读0次

1、对不同的数据宽度选择正确的指令,不同的指令用于不同的数据宽度。

   Cortex-M0处理器支持多个存储器访问指令,并且支持各种宽度的数据传输和寻址

方式。可以使用的数据宽度可以包括字(4字节)、半字(2字节)和字节,另外对

有符号和无符号数,还有不同的指令。

                                不同数据宽度的存储器访问指令

2、确保访问为对齐的,非对齐访问会触发错误异常,使用错误数据宽度的

指令操作数据时就会引发这一情况。

例如: LDR <Rt>,[PC, #immed8]; 字读

  这条指令展开为: Rt = 存储器[字对齐(PC + 4) + 零展开(#immed8 << 2)]

  Rt为低寄存器(也就是32位寄存器的低16位),目的地址需要为字对齐的,

这也就是加4的原因。

3、多种寻址方式可供选择,并使得汇编代码简化。例如,当设置/访问一个外设

时,你可以将一个寄存器设置为外设的基址地址,然后使用立即数偏移寻址方式

访问每个寄存器。这样,你就不必在访问每一个寄存器时都去设置寄存器的地址。

   例如:将单个存储器数据读到寄存器中,可以使用 寄存器寻址方式

             LDR<Rt>,[<Rn>,<Rm>]          //Rt = 存储器[Rn + Rm]                                       

             也可以使用立即数偏移寻址方式

            LDR<Rt>,[<Rn>, #immed5]          //Rt = 存储器[Rn + 零展开(#immed5 << 2)];   

           LDR的传输大小是字,即4个字节,所以,LDR使用时立即数偏移值需要左移2位,

          即低4字节进行对齐。

相关文章

  • Cortex-M0使用汇编进行数据访问时,需要注意的几点

    1、对不同的数据宽度选择正确的指令,不同的指令用于不同的数据宽度。 Cortex-M0处理器支持多个存储器访问指...

  • spring boot在工具类注入bean的三种方法

    1. 需求/目的 比如,在进行使用HandlerInterceptorAdapter拦截器时,需要访问数据库来判断...

  • layui分页控件

    小白在首次使用layui传参数进行分页时需要注意以下几点: 1、ajax请求的url写法:接口?page='+pa...

  • iOS 8.1.2~8.4平刷工具

    1,工具:Cydia Impactor使用 Cydia Impactor 时需要注意以下几点:1、使用时需要全程联...

  • JS/JQ获取iframe内的元素

    首先实现父级通过iframe访问子级DOM元素有以下几点需要特别注意的1,需要在服务器的情况下访问,可以使用本地服...

  • Java main()方法

    main() 方法定义的语法如下所示。 其中,使用 main() 方法时应该注意如下几点: 访问控制权限是公有的(...

  • iOS 使用ip进行粗略定位

    当用户拒绝app使用定位信息时,就需要使用ip进行粗略的定位,具体的代码如下: 需要注意的事项 返回的数据不是JS...

  • 2021-03-20

    [toc] 局部变量在声明时必须初始化或者赋值 main方法 使用 main() 方法时应该注意如下几点: 访问控...

  • 搬迁然之协同网站

    搬迁然之协同的操作 复制网站和数据到自己的服务器,即可注意一下几点: 设置网站的访问目录为www 如果需要修改数据...

  • 异步请求数据的集中方法实现(1)——接口回调

      Android对于访问请求数据,经常需要异步访问访问网络,请求数据。对于请求的数据需要传递给数据使用的地方。所...

网友评论

    本文标题:Cortex-M0使用汇编进行数据访问时,需要注意的几点

    本文链接:https://www.haomeiwen.com/subject/ngxrxttx.html