我的程序:
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