×
单片机 > 单片机程序设计 > 详情

ARMv8指令学习(2)

发布时间:2020-06-04 发布时间:
|
1. UXTB ---- Unsigned extend byte

    UXTB ,   等同于 UBFM ,,#0,#7

    即:Wd = ZeroExtend(Wn<7:0>)

            从Wn中取出一个byte,赋给Wd,并把Wd的高3 bytes,用0填充。

2. UXTH ---- Unsigned extend halfword

    UXTB ,   等同于 UBFM ,,#0,#15

    即:Wd = ZeroExtend(Wn<15:0>)

            从Wn中取出2个byte,赋给Wd,并把Wd的高2 bytes,用0填充。

3. Bitfield move指令
    (1) BFM : Bitfield move

         BFM Wd,Wn,#r,#s

         if (s>=r )

              Wd<0> = Wn

         else

              Wd<32+s-r,32-r> = Wn<0>

         同时:保持Wd中的其它bit不变
    (2)SBFM: Signed bitfield move        

        SBFM Wd,Wn,#r,#s

         if (s>=r )

              Wd<0> = Wn

         else

              Wd<32+s-r,32-r> = Wn<0>

         并扩展相应的符号位.


    (3)UBFM: Unsigned bitfield move

         UBFM Wd,Wn,#r,#s

         if (s>=r )

              Wd<0> = Wn

         else

              Wd<32+s-r,32-r> = Wn<0>

         同时:设置Wd中的其它bit位为0

4. Bitfield insert and extract指令
    (1) BFI : Bitfield insert

          BFI Wd, Wn, #lsb, #width

         等同于

          BFM Wd, Wn, #((32-lsb)&31) , #(width-1)

        即:

          width bits in Wd , starting at lsb , are replaced by width bits from Wn, starting at bit[0].

         Other bits in Rd are unchanged

         BFI指令,不会更改PSTATE中的flags

           
    (2) BFXIL : Bitfield extract and insert low

        BFXIL Wd, Wn, #lsb, #width  
        等同于
       BFM Wd,Wn,#lsb,#(lsb+width-1)


    (3) SBFIZ : Signed bitfield insert in zero
    (4) SBFX : Signed bitfield extract
    (5) UBFIZ : Unsigned bitfield insert in zero
    (6) UBFX : Unsigned bitfield extract



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
可升级和可配置的PSoC62系列MCU平台架构