首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2012-02-23 
DOS下调用INT 21申请内存的问题。。。我的程序:subax,axmovbx,0ffhmovah,48hint21hdebug调试,AX返回0008H,BX

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

热点排行