Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pointers 未定义堆栈(程序集)的堆栈指针寄存器值_Pointers_Assembly_X86_Stack_Cpu Registers - Fatal编程技术网

Pointers 未定义堆栈(程序集)的堆栈指针寄存器值

Pointers 未定义堆栈(程序集)的堆栈指针寄存器值,pointers,assembly,x86,stack,cpu-registers,Pointers,Assembly,X86,Stack,Cpu Registers,当堆栈未在汇编程序中定义时,堆栈指针寄存器SP指向什么(它包含什么值) 我们(印刷不良)的教科书上说:“SP寄存器包含堆的最后一个字节的地址。如果已定义,则值为0,这表示段(2^16)的最后一个字节,知道SP寄存器上的操作将递减2,这就给出了-2=0FFFE(十六进制)作为地址(无符号值) 然而,我认为这一段应该说“SP寄存器包含堆的最后一个字节的地址如果它被定义,如果没有,那么值0,知道SP寄存器上的操作要递减2,这就给出了十六进制的-2=0FFFE,它被作为地址(无符号值),这表示段(2^1

当堆栈未在汇编程序中定义时,堆栈指针寄存器SP指向什么(它包含什么值)

我们(印刷不良)的教科书上说:“SP寄存器包含堆的最后一个字节的地址。如果已定义,则值为0,这表示段(2^16)的最后一个字节,知道SP寄存器上的操作将递减2,这就给出了-2=0FFFE(十六进制)作为地址(无符号值)

然而,我认为这一段应该说“SP寄存器包含堆的最后一个字节的地址如果它被定义,如果没有,那么值0,知道SP寄存器上的操作要递减2,这就给出了十六进制的-2=0FFFE,它被作为地址(无符号值),这表示段(2^16)的最后一个字节。

我对这一点和SP总的来说有一些问题:

  • 为什么他们要降低SP,为什么不让它保持在0
  • 为什么它们的减量正好是2
  • 段的最后一个字节不应该是0FFFF而不是0FFFE

通常,如果没有堆栈,堆栈指针可能包含任何内容。初始条件取决于操作系统。通常,如果没有堆栈,堆栈指针可能包含任何内容。初始条件取决于操作系统。