回复 15楼 zhulei1978
这是设置堆栈的指令,意义是将栈底设置为0FFFFH,并初始化栈顶。此时堆栈底的位置是0000H:FFFFH,将SP置BP(0FFFFH)其实就是初始化堆栈,此时堆栈顶的位置和堆栈底一致,没有数据被保存在堆栈中。(INTEL架构中堆栈向低地址扩展)。
堆栈其实和普通内存没有大区别(区别是数据的读取和写入方式),你可以将一块普通的内存区域变成堆栈,或反过来。
设置堆栈的原因是我们可以用比MOV访问普通内存更优化的PUSH和POP指令,这两条指令比MOV更小,并且比MOV快,在读写暂时数据(例如函数的参数)时更有优势。缺点是要按照堆栈顺序进行读写(这也是为何它们比MOV快的原因)。
[此贴子已经被作者于2016-5-3 03:21编辑过]