Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];

Вниз

mov eax,   Найти похожие ветки 

 
Xia   (2002-10-29 16:39) [0]

раньше в winxp проходило сл.:

var
BD:dword;
.....
asm
mov eax,[$FFFF5] {- error}
mov bd,eax
end;

сейчас error компилятора.систему и дельфи не менял.что не так?


 
Наезжалкин   (2002-10-29 16:44) [1]

[ ] зачем?


 
Digitman   (2002-10-29 16:46) [2]

Какая {- error} ? Конкретно ?


 
Xia   (2002-10-29 19:03) [3]

2Digitman
Invalid combination of opcode and operands
А exe"шник пишет ошибку доступа- что там acsess v...
2Наезжалкин
информацию о бивасе знать хочу..
вообщето прогу к компу надо привязать...- кто-нить может подсказать.


 
Digitman   (2002-10-30 08:26) [4]

>Xia

Если ты даже скомпилировать не можешь, откуда "exe"шник"-то взялся ?)

А насчет AV - правильно "пишет". Адресное пространство BIOS недоступно для обращения через вирт.адр.пространство пользовательского процесса в Win32


 
soware   (2002-10-30 09:30) [5]

А под администратором не пробовал логиниться в XP ?


 
Tano   (2002-10-31 03:53) [6]

Пока не выделишь себе в программе эту память - EXEшник будет писать Access violation, даже если компилятор пропустит. Вообще не знаю, как такую конструкцию пропускал компил - у меня такое вроде не работало. Используй вместо этого
mov ebx,$fff???????
mov eax,[ebx] //или mov eax,QWORD PTR ebx


 
Tano   (2002-10-31 03:56) [7]

sorry, не QWORD, а DWORD
и еще - попробуй отключить в опциях компилятора Range Check (можно диективой {$R-})


 
Digitman   (2002-10-31 08:32) [8]


> Пока не выделишь себе в программе эту память


Любопытно, как же ты это себе мыслишь ?)


 
Странник   (2002-10-31 11:40) [9]

> Digitman © (31.10.02 08:32)
а в BIOS есть недокументированная функция
DWORD* AllocateBIOSMemoryPointer(adr:WORD););
которая мапит ROM в адресное пространство вызывающего потока.
так что все путем...


 
Странник   (2002-10-31 11:46) [10]

забыл добавить, доступна только если RAS/CAS=2 и установлено Shadow BIOS Memory на нужный сегмент.


 
Digitman   (2002-10-31 12:15) [11]


> а в BIOS есть недокументированная функция
> DWORD* AllocateBIOSMemoryPointer(adr:WORD););
> которая мапит ROM в адресное пространство вызывающего потока.
> так что все путем...


У потока нет АП. Оно есть у процесса.

Ну и ? Какое отношение ф-ции BIOS (пусть даже и недокументированные) имеет к модели виртуальнй памяти, используемой конкретно в Win32 ? А если работает ОС, отличающаяся от Win32 ? И там нет вообще понятия "процесс" ?

Если же таки речь все же идет не от ф-ции BIOS, а о недок.вызове Win32-ядра, то где, в каком модуле ядра реализована эта ф-ция ?


 
Странник   (2002-10-31 14:11) [12]

ну, уважаемый Digitman и Вы попались...
присмотритесь повнимательней :))
DWORD* AllocateBIOSMemoryPointer(adr:WORD) ;);
ведь правильно будет так:
threadvar ponter* AllocateBIOSMemoryPointer(volatile unsigned pointer BIOSadr); ;^)))


 
Digitman   (2002-10-31 14:29) [13]

>Странник

Ты это к чему вообще ?

Я, кажется, задал вполне конкретные вопросы :

1. Каким образом исп.код BIOS"а может чего-то там на что-то "мапить", если ему ничего не известно о местоположении GDT/LDT ?

2. Где ты нашел такую декларацию ?

Теперь еще и 3-й вопрос к тебе :
При чем здесь threadvar ? Какое это имеет отношение к сабжу, когда речь идет конкретно о селекторах сегментов, каковые находятся исключительно в ведении protected mode ОС , а не BIOS ?




 
Странник   (2002-10-31 14:56) [14]

да ПРИКАЛЫВАЮСЬ Я, неужели не понятно.
ессно, под NT только из нулевого кольца можно напрямую добраться до нижних адресов, а тем более к BIOS.
BIOS не использует ни GDT ни LDT, оно ему на фиг не нужно, а тем более виртуальные адресные пространства каких-то там процессов.

Зри в корень © Козьма Прутков
жуткую смесь паскаля и С и веселого настроения ты принял за чистую монету. :((
Нельзя быть постоянно таким серьезным, да еще в "Потрепаться". ;)))


 
Digitman   (2002-10-31 15:08) [15]

>Странник

Вот в "Потрепаться", сударь, и уместен треп. А здесь - "Система". Малясь промахнулся ты)

Ну а насчет "мапить" ФАП BIOS - оно вполне реализуемо. Только BIOS - как ни крути - здесь ни при чем)


 
han_malign   (2002-10-31 16:39) [16]

Я просто сделал поиск в Google по ключу FFFF5 Delphi

Title: Read from BIOS
From: n_pelov
Date: 03/29/2001 01:05PM PST
Answer Grade: A Points: 5
Hi!
I want to read 8 bytes from address $F000:$FFF5 in BIOS. When I make it with pascal for DOS I have no problems, but if I try it in delphi ot Borland pascal for windows (16 bit) it dosn"t work. Do any one can tell me how to do it?
...............................................................
Accepted Answer from Hamlet 03/29/2001 05:43PM PST
Okay, I"ve checked this out a bit more and you can ignore most of my previous comments!

For Win95/98 you can do this...
BIOSDate := string(pchar(ptr($FFFF5)));

For WinNT you should read from the registry...
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\SystemBiosDate


 
Digitman   (2002-10-31 17:21) [17]

>han_malign

>>For Win95/98 you can do this...
>> BIOSDate := string(pchar(ptr($FFFF5)));

Те же ..., но вид сбоку)
Не будет это работать.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.009 c
14-37287
Дмитрий К.К.
2002-12-25 09:31
2003.01.13
В чем успех форума


3-36916
Vick
2002-12-17 11:59
2003.01.13
TDBGridEh


14-37320
Shadow
2002-12-23 13:31
2003.01.13
Интересно, а кто нибкдь помнит что из себя


3-36941
stoper
2002-12-17 21:31
2003.01.13
DBGrid


3-36927
PrettyFly
2002-12-17 15:49
2003.01.13
Работа механизма транзакций в InterBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский