自学内容网 自学内容网

ARM base instruction -- movz


Move wide with zero moves an optionally-shifted 16-bit immediate value to a register.

用零移动宽值将可选移位的16位即时值移动到寄存器。即把立即数移动寄存器前先把寄存器清零。


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

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


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


/* msg.s */

        .data
msg:
        .ascii "hello asm!\n"
len = . - msg

        .text
        .global _start

_start:
        movz x8, #64
        movz x0, #0
        ldr x1, =msg
        ldr x2, =len
        #movz x2, #13
        svc #0


# aarch64-linux-gcc msg.s -o msg -nostdlib  


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

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