当前位置: 代码迷 >> 汇编语言 >> DOS下调用INT 21申请内存的有关问题。
  详细解决方案

DOS下调用INT 21申请内存的有关问题。

热度:5872   发布时间:2013-02-26 00:00:00.0
DOS下调用INT 21申请内存的问题。。。
我的程序:
                sub                 ax,   ax
                mov                 bx,   0ffh
                mov                 ah,   48h
                int                 21h

debug调试,AX返回0008H,BX返回0007H。
为什么申请失败?

------解决方案--------------------------------------------------------
AX=08: 内存不足. 这是由于 debug(dos) 在加载程序后, 会根据一般程序的要求将所有可用的内存块分配给这个程序. 所以, 如果在程序中要进行内存分配操作的话, 必须首先由程序自己根据自己的需要, 释放多余的内存. 然后, 系统才能有可被分配的空闲可用内存供接下来的内存分配申请使用.
------解决方案--------------------------------------------------------
bx, 0ffh 当BX = 0FFh
int 21 实际返回的是可用内存的最大数目: BX:0007

7*64K = 448K
  相关解决方案