· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Определение "железа" компа

Посл.отвђт Сообщенiе


Дата: Июн 2, 2003 00:15:24

Привет!
Нужно определить какой у компа процессор,
сколько памяти, ещё чего нить...
Всё в досовском варианте без winapi да +
ещё памяти 256 mb - значит и 256 мб прога
и должна узнать, а не 64 кб бедненьких...
Есть ли уже готовые сорцы на асме где
(или у кого-нибудь) такого?
Помогите пожалуйста.
Заранее благодарен.


Дата: Июн 2, 2003 11:34:30

DZень добрый! :)
Насколько я помню, древние процы 8086 - 8088 отличаются размером буфера комманд, так же у разных камней разный набор флагов, по разному выполняется комманда push sp, у старых отсутствует куча комманд. Советую посмотреть книжку Пирогова - там это более или менее подробно рассматривается.


Дата: Июн 2, 2003 15:48:47

У 8086 в регистре флагов биты с 12 по 15 всегда установленны (186 отличается наличием девайсов, которые обычно на материнской плате размещаются. Это скорее микроконтроллер. Про него ничего не знаю). У 286 эти биты всегда сброшены. У 386 бит 15 сброшен, а биты 12-14 хранят последнее загруженное значение. У 486 в отличии от 386 можно управлять флагом AC(бит 18). Если возможно изменять бит 21 регистра флагов, то процессор поддерживает команду CPUID. Дальше нужно использовать ее. Начиная с 286 процессора, появилось исключение неверного кода операции (int 6). То есть, как замечено в предыдущем сообщении, можно проверять, какие комманды есть а каких нет (8086 от нерерных кодов вроде уходил на перезагрузку).
Для определения объема памяти есть несколько методов:
1. спросить у БИОСа.
2. перейти в защищенный режим и самому посчитать.
3. спросить у самих микросхем(Если у кого есть инфа как это сделать скиньте мне на мыло: blackmirror@mail.ru)


Дата: Июн 3, 2003 17:26:43

Пункт 3 легко реализовать опросом PCI
устройств через порты 0CF8 b 0CFC.


Дата: Июн 3, 2003 18:03:24

misyachniy, не могли бы вы сообщить полное название стандарта, где это описанно?


Дата: Июн 4, 2003 10:35:01

Ага... Неплохо бы...
Где можно об этом подробно почитать?


Дата: Июн 4, 2003 11:52:49

прочитать можно а спецификации на PCI например здесь:http://www.skunksworks.net/doc/rea/index.htm

Идеология следующая:
Для чтения или записи конфигурации PCI
Нужно указать к какой шине идет обращение,
шина 0 это стандартные PCI слоты,
шина 1 это AGP слот.

Указать устройство и конкретную часть(dev,func), например в южном мосту их много.
А также номер региcтра к которому обращатся.
Регистр 0 это регистр хранящий код производителя и код устройства.
Код производителя FFFF говорит о том что устройство(плата) отсутствует.
Регистр 8 класс устройства(видео, сетевая итд)

Все обращения двойными словами.

Вот макрос для чтения одного регистра.

ConfRead macro bus,dev,func,reg
mov eax,80000000h or
bus shl 16) or
(dev and 1Fh) shl 11) or
((func and 07h) shl 8) or
(reg and 0FCh)

mov dx,0CF8h
out dx,eax
mov dx,0CFCh
in eax,dx
endm

если кто подскажет, как выложить текст чтобы "HTML не сожрал", то выложу текст программы считывающей Vendor ID и Device ID видеокарточки.

А то <pre> </pre> не действует.


Дата: Июн 4, 2003 11:53:21

прочитать можно а спецификации на PCI например здесь:http://www.skunksworks.net/doc/rea/index.htm

Идеология следующая:
Для чтения или записи конфигурации PCI
Нужно указать к какой шине идет обращение,
шина 0 это стандартные PCI слоты,
шина 1 это AGP слот.

Указать устройство и конкретную часть(dev,func), например в южном мосту их много.
А также номер региcтра к которому обращатся.
Регистр 0 это регистр хранящий код производителя и код устройства.
Код производителя FFFF говорит о том что устройство(плата) отсутствует.
Регистр 8 класс устройства(видео, сетевая итд)

Все обращения двойными словами.

Вот макрос для чтения одного регистра.

ConfRead macro bus,dev,func,reg
mov eax,80000000h or
bus shl 16) or
(dev and 1Fh) shl 11) or
((func and 07h) shl 8) or
(reg and 0FCh)

mov dx,0CF8h
out dx,eax
mov dx,0CFCh
in eax,dx
endm

если кто подскажет, как выложить текст чтобы "HTML не сожрал", то выложу текст программы считывающей Vendor ID и Device ID видеокарточки.

А то <pre> </pre> не действует.


Дата: Июн 4, 2003 12:55:09

Спасибо.


Дата: Июн 4, 2003 19:22:44

Советую купить книгу Кулакова "Программирование на аппаратном уровне". Синенькая такая.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.094