如何从简单的OS中运行程序加载器?

时间:2013-04-06 14:08:00

标签: assembly theory bytecode opcode

编程简单操作系统的加载程序,如DOS,从软盘或硬盘驱动器读取程序代码,并将其字节代码移动到RAM中。

问题1 :字节码准确移动的位置?到堆,堆栈或RAM的其他区域?

让我们看看这个asm代码:mov eax, 5。 “5”是一个值,也被移动到RAM中。

问题2 :如何将值移入eax?是否存在mov-opcode?

1 个答案:

答案 0 :(得分:1)

  

问题1:字节代码的移动位置是什么?到堆,堆栈或RAM的其他区域?

确切位置通常取决于:

  • 操作系统
  • 安装的内存量
  • 程序
  • 记忆分配的历史

程序很少在其他程序中运行或者彼此共享堆栈和堆,并且它们通常都有自己的程序。

DOS只是找到一个空闲的内存块,程序可以将其装入并加载到那里,可能会将块切成两半。 AFAIR,有一种方法可以选择更低或更高的地址,但这几乎就是它。居民计划和司机显然会影响到位置。

  

问题2:如何将价值转移到eax?是否存在mov-opcode?

这一定是一个单独的问题。是的,在i80386 + CPU上有mov eax, 5的指令。