小编Pav*_*rak的帖子

为什么在这种情况下会生成不同的 go-assembler 代码?

生成汇编代码时注意到奇怪的事情

func foo(v uint64) (b [8]byte) {
    b[0] = byte(v)
    b[1] = byte(v >> 8)
    b[2] = byte(v >> 16)
    b[3] = byte(v >> 24)
    b[4] = byte(v >> 32)
    b[5] = byte(v >> 40)
    b[6] = byte(v >> 48)
    b[7] = byte(v >> 56)
    return b
} 
Run Code Online (Sandbox Code Playgroud)
func foo(v uint64) [8]byte {
    var b [8]byte

    b[0] = byte(v)
    b[1] = byte(v >> 8)
    b[2] = byte(v >> 16)
    b[3] = byte(v >> 24)
    b[4] = byte(v >> 32)
    b[5] …
Run Code Online (Sandbox Code Playgroud)

assembly x86-64 go

8
推荐指数
1
解决办法
150
查看次数

标签 统计

assembly ×1

go ×1

x86-64 ×1