int 15h

Тема в разделе "WASM.BEGINNERS", создана пользователем Neuron, 22 сен 2006.

  1. Neuron

    Neuron New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2006
    Сообщения:
    10
    Hi. Хочу определить размера физической памяти через int 15h (функция e820h). Пишу прогу на Sphinx C-- (v0.238)
    ? use80386
    ? include "lib/write.h--"
    void main()
    dword a;
    byte mbi[0x20];
    {
    $PUSH CS
    $POP ES
    DI = #mbi;
    $XOR ebx,ebx
    $MOV edx,534D4150h
    $MOV ecx, 20h
    $MOV eax,0000E820h
    $INT 15h
    $MOV a, EAX
    WriteDWordHex(a);
    }

    В EAX вроде как должно возвращаться 534D4150h, а возвращается все время 00008620h. В чем может быть проблема? BIOS функцию e820h поддерживает.
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Neuron
    А запускаешь из-под доса?
    $MOV ecx, 20h - просто 20 байт, но это не влияет.
     
  3. Neuron

    Neuron New Member

    Публикаций:
    0
    Регистрация:
    17 сен 2006
    Сообщения:
    10
    Да, под досом все ок. Спасиб.