的功能主要转储的汇编代码:指令的参数顺序
0x0000000100000de6 <main+0>: push %rbp
0x0000000100000de7 <main+1>: mov %rsp,%rbp
0x0000000100000dea <main+4>: sub $0x30,%rsp
0x0000000100000dee <main+8>: mov %edi,-0x14(%rbp)
我学到mov %rsp,%rbp
意味着move the value of rsp to rbp
但我在英特尔架构知道,这将意味着move the value of rbp to rsp
据英特尔手册(英特尔架构软件开发人员手册。Volume 3-104 MOV指令),mov a, b
应该是move b to a
Next sub
指令是一样的。我知道sub a,b
意味着a = a-b
。但是这里sub $0x30, %rsp
意味着rsp = rsp - 0x30
我怎么了?
'''无处不在,无意义的内存语法和一条不可能的指令。所有指向AT&T语法。 – harold