请问一下汇编代码里面出现的 8(R0) 和 16(R0) 是什么意思?

来源:4-3 数组,字符串,切片底层是一样的吗?(二)

弦歌ty

2022-05-16

示例代码里面将 s := []int{1, 2, 3} 编译成以下汇编,但是其中的 8(R0) 和 16(R0) 没理解是什么意思?(我的编译平台不同,老师的是 AX,我这里显示的是 R0)

0x001c 00028 MOVD    $type.[3]int(SB), R0
0x0024 00036 PCDATA  $1, ZR
0x0024 00036 CALL    runtime.newobject(SB)
0x0028 00040 MOVD    $1, R1
0x002c 00044 MOVD    R1, (R0)
0x0030 00048 MOVD    $2, R2
0x0034 00052 MOVD    R2, 8(R0)
0x0038 00056 MOVD    $3, R2
0x003c 00060 MOVD    R2, 16(R0)
写回答

1回答

Moody

2022-05-16

这个好像是arm平台指令,看起来好像是取8位,和取9+16位的意思,不过汇编不用太纠结,知道大概原理就可以了。

1
1
弦歌ty
好的,谢谢老师
2022-05-16
共1条回复

深入Go底层原理,重写Redis中间件实战

深入Go语言原理+Go重写Redis

474 学习 · 172 问题

查看课程