uxtw:无符号扩展,将操作数扩展到无符号64bit;
402060: 78605b00 ldrh w0, [x24, w0, uxtw #1] // w0 = [x24+w0<<1] = [0x419a10+0x20<<1] = [0x419a10+0x40] = [0x419a50]
这条指令是将 w0 扩展到无符号64bit,然后 w0 逻辑左移1bit,再和x24相加,最后将相加结果存至x24
单步调试一下:
(gdb) x/x $x24
0x419a10: 0xf4
(gdb) p/x $w0
$14 = 0x20
(gdb) x/10x $w0+$x24
0x419a30: 0xfff9fff9 0x00a600a9 0x009100a3 0xfff9fff9
0x419a40: 0x008efff9 0xfff9fff9 0xfff9fff9 0xfff9fff9
0x419a50: 0xfff9008b 0xfff90002
执行以上指令后,w0的值变为:
(gdb) p/x $w0
$15 = 0x8b