Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Assembler > Сколько памяти |
Автор: Maaniv 22.09.01, 21:43 |
Кто знает как определить объем памяти, если ее более 64 метров ??? |
Автор: NKritsky 24.09.01, 10:16 |
Руками. Проверяй первый байт каждого мегабайта на запись/чтение. PS Лучше делать это на CLI, чтобы никто не вклинился, и ты никому не подгадил. |
Автор: Maaniv 26.09.01, 21:18 |
Сначало так и делал, но на пнях третьих прога не пашет (либо в мамках дело, либо в самих камнях) - выдает нарушение общей защиты (с глюкавыми последствиями) или реБутится. Скорее всего объем можно определить с помощью BIOS (чтение устройств...), но если есть другой способ - хотелось бы его узнать. |
Автор: Organic 30.09.01, 06:29 |
а через реестр не пробовал? HKEY_LOCAL_MACHINE\HARDWARE\RESOURCEMAP\System Resources\Physical Memory\.Translated только вот как его раскодировать, я не знаю... там двоичный массив. там же где-то можно найти частоту и модель проца (в ...\HARDWARE\...) и еще кое чего интересного. все проги, кстати, широко используют этот метод... |
Автор: Jin X 16.10.01, 19:30 |
mov ax,0E801h int 15h jc OnlyBelow64 ; Если здесь произойдет прыжок, то будет 66496 КБайт, данная фукнция не поддерживается shl edx,16 shr edx,10 and ecx,0FFFFh add edx,ecx jmp Add1024 OnlyBelow64: xor edx,edx cli mov al,17h out 70h,al in al,71h xchg dx,ax mov al,18h out 70h,al in al,71h sti mov dh,al Add1024: add edx,1024 На выходе EDX = Количество килобайт памяти |