欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

ARM base instruction -- movz

最编程 2024-10-14 17:26:01
...


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