读书人

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

发布时间: 2012-02-23 22:01:35 作者: rapoo

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

读书人网 >汇编语言

热点推荐