一个实用的内存测试程序

Author: 西南师大 沈仲军 Date: 1993-07-09

        设计思想:BIOS中断为我们提供了充分利用IBM-PC系统各种资源的手段,利用BIOS的12号中断(INT12T)取得基本内存,再减去现占用的内存,即得到剩余内存。调用INT12H,无入口参数,出口参数为AX,AX的内容为全部存贮容量(以KB为单位)。
        程序用宏汇编语言编写,取名为TESTMEMO.ASM,程序编译链接运行步骤如下:
        C>MASM  TESTMEMO;
        C>LINK  TESTMEMO;
        C>EXE2BIN  TESTMEMO.EXETE  STMEMO.COM
        C>TESTMEMO
        源程序清单如下:
        code  segment
        assume  cs:code,ds:code
        org  100h
        memory  proc  far begin:
        int12h
        mov  dx,40h
        mul  dx
        mov  dx,cs
        sub  ax,dx
        push  ax
        mov  dx,10h
        mul  dx
        mov  bx,offset  mess+22
        mov  cx,6
        mov  si,0Ah
        loopl:divsi
        or  dl,30h
        mov [bx],dl
        dec  bx
        xor  dx,dx
        loop  loopl
        xor  ax,ax
        mov  es,ax
        mov  dx,offset  mess
        mov  ah,9
        int  21h
        pop  ax
        cmp  ax,es:[300h]
        je  stepl
        mov  es:[300h],ax
        mov  al,1
        jmp  short  step2
        stepl:
        mov  al,0
        step2:
        mov  ah,4ch
        int  21h
        mess  db'available  memory
        000000  bytes  free',0Dh,
        0Ah
        db'$'
        memory  endp
        code  ends
        end  begin