Detecting Memory (x86): Difference between revisions

Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content deleted Content added
Undo revision 18311 by Combuster (talk)
int 0x12, clear CF
Line 32: Line 32:
Usage:
Usage:
<source lang="asm">
<source lang="asm">
; Clear carry flag
; Switch to the BIOS (= request low memory size).
clc

; Switch to the BIOS (= request low memory size)
int 0x12
int 0x12

; The carry flag is set if it failed
jc .Error


; AX = amount of continuous memory in KB starting from 0.
; AX = amount of continuous memory in KB starting from 0.
</source>
</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.
Note: this function is supposed to be always present, and may not modify the carry flag. If an emulator doesn't support it, the carry flag will be set, indicating error.


Alternately, you can just use INT 0x15, EAX = 0xE820 (see below).
Alternately, you can just use INT 0x15, EAX = 0xE820 (see below).