为什么DOS在加载.COM文件后将SP寄存器设置为0xFFFE?

问题描述 投票:0回答:1

在有关.COM文件https://en.wikipedia.org/wiki/COM_file的wikpedia页面上显示:

。DOS中的.COM文件将所有x86段寄存器设置为相同的值,而SP(堆栈指针)寄存器设置为0xFFFE,因此堆栈从内存段的最顶部开始,并从那里开始向下工作。] >

但是这实际上将堆栈设置为在堆栈顶部下方开始一个单词。当将值压入堆栈时,CPU会将SP递减至0xFFFC并将其存储在该值中,从而浪费了该段的最高字。 DOS不将SP设置为0的原因是什么?

在有关.COM文件的https://en.wikipedia.org/wiki/COM_file的wikpedia页面上,它读取:在DOS中的.COM文件将所有x86段寄存器设置为相同的值,而SP(堆栈指针)寄存器设置为0xFFFE ,...

assembly x86 dos
1个回答
1
投票
© www.soinside.com 2019 - 2024. All rights reserved.