SP是栈顶指针寄存器,它永远指向栈顶。你说SP+1不是比SP高吗?的确是这样啊,不过请注意两个问题:SP指的是目前数据存放在栈顶,它跟踪数据的变化,举子例子,栈就类似于装面的缸,而栈顶指针寄存器就类似于指像里面装了多少面了(注意这里的栈顶指针寄存不是指缸口)。所以SP会随着里面装的数据多少的变化而变化,它指示的是目前数据装了多少了!
第二个问题:SP←SP+1代表将栈顶指针往上移一格,相当于偏移地址变了,也举个例子,比如你找你的朋友,你记得他住2楼,结果到了楼下你给他打电话,他说他住3楼,你只有到3楼才能找到你的朋友,这里的SP就是你要找的朋友的地址,而SP+1就是你打电话问到的朋友的地址。
以栈顶指针SP所指的内容单元中的内容,作为当前操作数的地址。