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