Detecting Memory (x86): Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
Combuster (talk | contribs)
Put back the old code after reading RBIL on the matter.
Undo revision 18311 by Combuster (talk)
Line 31:
 
Usage:
<source lang="asm">
; Nullify the A-register.
xor ax, ax
 
; Switch to the BIOS (= request low memory size).
int 0x12
; The carry flag is set, it failed.
; AX = amount of continuous memory in KB starting from 0.
jc .Error
; Test the A-register with itself.
test ax, ax
; The zero flag is set, it failed.
jz .Error
 
; AX = amount of continuous memory in kBKB starting from 0.
</source>
 
Note: this function always works and may not modify the carry flag, so the contents of AX should be trusted and CF should be ignored.
 
Alternately, you can just use INT 0x15, EAX = 0xE820 (see below).