Автор Тема: Помогите с асмом!  (Прочитано 1187 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DarkHero Автор темы

  • Эксперт
  • *****
  • Сообщений: 1466
  • Репутация: +50/-12
  • Давнозарегестрированный
Помогите с асмом!
« : Апреля 10, 2006, 16:50:01 »
Нужно поменять системное время в винде (в 98 и/или XP). Как это можно сделать? где об этом почитать?  искал, не нашел.
или где хотя бы винда его хранит?

Оффлайн AC220

  • Новичок
  • *
  • Сообщений: 82
  • Репутация: +0/-3
Re: Помогите с асмом!
« Ответ #1 : Апреля 10, 2006, 16:58:10 »
Хранится оно в БИОСе. На уровне Винды менять вызовом SetSystemTime(&SYSTEMTIME time)  если я правильно помню... Ну, или лезьть в БИОС (правда, не знаю как с этим на  NT-ядрах.)

Оффлайн Surch

  • Меценат
  • *****
  • Сообщений: 755
  • Репутация: +835/-84
Re: Помогите с асмом!
« Ответ #2 : Апреля 10, 2006, 16:58:47 »
Нужно поменять системное время в винде (в 98 и/или XP). Как это можно сделать? где об этом почитать?  искал, не нашел.
или где хотя бы винда его хранит?
Нужно поменять винты на хомячков.Где об этом почитать?Искал,не нашед.Или хотя бы где их хранят?
dark hero,ты что? :):):):) тебе зачем? :)

Оффлайн DarkHero Автор темы

  • Эксперт
  • *****
  • Сообщений: 1466
  • Репутация: +50/-12
  • Давнозарегестрированный
Re: Помогите с асмом!
« Ответ #3 : Апреля 10, 2006, 17:14:57 »
AC220, это функция из библиотеки time.h для C. а на асме как это сделать?
или может можно её перетранслировать? проблема в том, что у меня сейчас С не установлен, поэтому глянуть эту библиотеку я не могу.

на низком уровне для 98/95 это делается, вроде бы, прерыванием 21 (функция 2B), но что-то не работает.

Оффлайн Surch

  • Меценат
  • *****
  • Сообщений: 755
  • Репутация: +835/-84
Re: Помогите с асмом!
« Ответ #4 : Апреля 10, 2006, 17:28:01 »
Так в биосе-то что?Никак?

Оффлайн AC220

  • Новичок
  • *
  • Сообщений: 82
  • Репутация: +0/-3
Re: Помогите с асмом!
« Ответ #5 : Апреля 10, 2006, 17:43:55 »
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/setsystemtime.asp
Это не сишная библиотека, это кернел32.длл. Т.е. ТЕОРЕТИЧЕСКИ проблем с вызовом из асма быть не должгно.

Оффлайн maximilian

  • Ветеран форума
  • ******
  • Сообщений: 3937
  • Репутация: +152/-80
    • borkhes точка livejournal точка com
Re: Помогите с асмом!
« Ответ #6 : Апреля 10, 2006, 19:18:30 »
Да никаких проблем, просто сначала надо под винду научиться писать на асме. :)))))

Оффлайн DarkHero Автор темы

  • Эксперт
  • *****
  • Сообщений: 1466
  • Репутация: +50/-12
  • Давнозарегестрированный
Re: Помогите с асмом!
« Ответ #7 : Апреля 10, 2006, 19:25:58 »
Lomaster, а как через Биос?
как через кмос я знаю, но надо чтобы дата изменялась без перезагрузки.

AC220, я что-то неочень понял (да и компилятор выдает ошибку):
задаю в сегменте данных структуру:
st SYSTEMTIME <2000, 1,1,1>
а в сегменте кода вызываю функцию.
получаем:
Undefined symbol: SETSYSTEMTIME

Оффлайн DarkHero Автор темы

  • Эксперт
  • *****
  • Сообщений: 1466
  • Репутация: +50/-12
  • Давнозарегестрированный
Re: Помогите с асмом!
« Ответ #8 : Апреля 10, 2006, 19:33:10 »
maximilian,
 асм у нас идет не для винды, а для МПС, но попалось такое задание. вообще, оно подразумевало использование функций ДОС и биос (в первую очередь для 95/98. а дома стоит ХР, поэтому копаю и в его сторону), но если можно как-нибудь еще, то можно и по-другому..

да, о программировании на С++ под винду я имею представление

Оффлайн RFire

  • Эксперт
  • *****
  • Сообщений: 1548
  • Репутация: +442/-21
Re: Помогите с асмом!
« Ответ #9 : Апреля 10, 2006, 19:35:50 »
Про 21-ое прерывание в винде - это блеск.

Оффлайн DarkHero Автор темы

  • Эксперт
  • *****
  • Сообщений: 1466
  • Репутация: +50/-12
  • Давнозарегестрированный
Re: Помогите с асмом!
« Ответ #10 : Апреля 10, 2006, 19:42:16 »
а под 95/98 не потянет?

Оффлайн RFire

  • Эксперт
  • *****
  • Сообщений: 1548
  • Репутация: +442/-21
Re: Помогите с асмом!
« Ответ #11 : Апреля 10, 2006, 19:44:52 »
нет

Оффлайн RFire

  • Эксперт
  • *****
  • Сообщений: 1548
  • Репутация: +442/-21
Re: Помогите с асмом!
« Ответ #12 : Апреля 10, 2006, 19:46:26 »
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/setsystemtime.asp
Это не сишная библиотека, это кернел32.длл. Т.е. ТЕОРЕТИЧЕСКИ проблем с вызовом из асма быть не должгно.

Нужно найти inc-и для асма, где эта функция есть.
Аффтор, скачай MASM  сайта Майкрософт - он на халяву и со всем необходимым

Оффлайн AC220

  • Новичок
  • *
  • Сообщений: 82
  • Репутация: +0/-3
Re: Помогите с асмом!
« Ответ #13 : Апреля 10, 2006, 19:55:53 »
Про 21-ое прерывание в винде - это блеск.
Не, точно помню на лабах что-то в этом духе делали. Но под ХР "это вряд ли"...

Оффлайн RFire

  • Эксперт
  • *****
  • Сообщений: 1548
  • Репутация: +442/-21
Re: Помогите с асмом!
« Ответ #14 : Апреля 10, 2006, 19:58:47 »
Винда работает в защищенном режиме - поэтому напрямую к прерываниям ты обратиться не можешь.