自学内容网 自学内容网

ARM base instruction -- movk

Move wide with keep moves an optionally-shifted 16-bit immediate value into a register, keeping other bits unchanged.

用keep进行宽移将一个可选择移位的16位立即值移动到寄存器中,保持其他位不变。


32-bit variant
    MOVK <Wd>, #<imm>{, LSL #<shift>}

64-bit variant
    MOVK <Xd>, #<imm>{, LSL #<shift>}


Operation
 bits(datasize) result; 
  
 result = X[d]; 
 result<pos+15:pos> = imm16; 
 X[d] = result; 


  4007f8: d28000c0  mov     x0, #0x6            // #6   x0=6
  4007fc: f2a00200  movk    x0, #0x10, lsl #16  // x0 = 0x10<<16 ==> x0 = 0x100006
  400800: f90013a0  str     x0, [x29, #32]     
    unsigned long d = 0x100006;


原文地址:https://blog.csdn.net/xiaozhiwise/article/details/142665745

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!