编程简单操作系统的加载程序,如DOS,从软盘或硬盘驱动器读取程序代码,并将其字节代码移动到RAM中。
问题1 :字节码准确移动的位置?到堆,堆栈或RAM的其他区域?
让我们看看这个asm代码:mov eax, 5
。 “5”是一个值,也被移动到RAM中。
问题2 :如何将值移入eax
?是否存在mov-opcode? p>
答案 0 :(得分:1)
问题1:字节代码的移动位置是什么?到堆,堆栈或RAM的其他区域?
确切位置通常取决于:
程序很少在其他程序中运行或者彼此共享堆栈和堆,并且它们通常都有自己的程序。
DOS只是找到一个空闲的内存块,程序可以将其装入并加载到那里,可能会将块切成两半。 AFAIR,有一种方法可以选择更低或更高的地址,但这几乎就是它。居民计划和司机显然会影响到位置。
问题2:如何将价值转移到eax?是否存在mov-opcode? p>
这一定是一个单独的问题。是的,在i80386 + CPU上有mov eax, 5
的指令。