![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
Altair |
![]()
Сообщение
#1
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Извините за ламерский вопрос, он как происходит выключение и перезагрузка компьютера?
Нигде не нашел описание этих процессов. И еще, при включении, процессор переходит в особый режим работы, и обнуляет все ячейки памяти, а это он автоматически делает, или можно этим управлять? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
virt |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
это далеко не ламерский вопрос.
не помню где ,но в какойто книге по системному программированию я читал что посылка опр. значения на опр. порт приведет к перезагрузке. а пока вот ,может поможет. -------------------- |
GLuk |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(Oleg_Z @ 5.07.04 5:25) Извините за ламерский вопрос, он как происходит выключение и перезагрузка компьютера? Нигде не нашел описание этих процессов. И еще, при включении, процессор переходит в особый режим работы, и обнуляет все ячейки памяти, а это он автоматически делает, или можно этим управлять? Это тебе просто интересно? Или хочешь как-то применить на практике (эти знания)? 1. Пишешь, что нигде не нашел описания этих процессов, а где ты искал?? 2. Было дело тож интересовался, осталось только это; кое что тут в DOS-кодировке, надеюсь разберешься. Описание горячего ресета, который включается опосля холодной чой-то не нашел. Код POST - •®«®¤ п ЇҐаҐ§ Јаг§Є / Power On Self Test Activities - power supply starts Clock Generator (8284) with Power Good signal on BUS - CPU reset line is pulsed resetting CPU - DS, ES, Ё SS а ўл г«о ЏаЁ е®«®¤®© Ё Ј®ап祩 ЇҐаҐ§ Јаг§ЄҐ ўлЇ®«повбп б«Ґ¤гойЁҐ и ЈЁ: - CS:IP гбв ў«Ёў овбп а ўл¬Ё FFFF:0000 ( ¤аҐб POST-Є®¤ ) - ЇҐаҐе®¤ CS:IP (ўлЇ®«ҐЁҐ POST, Power On Self test) - IF = 0 - д« ЈЁ CPU = 1, вҐбв з⥨Ґ/§ ЇЁбм/з⥨Ґ ॣЁбва®ў CPU - Їа®ўҐаЄ Є®ва®«м®© б㬬л ROM BIOS - ?ЁжЁ «Ё§ жЁп DMA (verify/init 8237 timer, begin DMA RAM refresh) - save reset flag then read/write test the first 32K of memory - Initialize the Programmable Interrupt Controller (8259) and set 8 major BIOS interrupt vectors (interrupts 10h-17h) - determine and set configuration information - initialize/test CRT controller & test video memory (unless 1234h found in reset word) - test 8259 Programmable Interrupt Controller - test Programmable Interrupt Timer (8253) - reset/enable keyboard, verify scan code (AAh), clear keyboard, check for stuck keys, setup interrupt vector lookup table - hardware interrupt vectors are set - test for expansion box, test additional RAM - read/write memory above 32K (unless 1234h found in reset word) - addresses C800:0 through F400:0 are scanned in 2Kb blocks in search of valid ROM. If found, a far call to byte 3 of the ROM is executed. - test ROM cassette BASIC (checksum test) - test for installed diskette drives & FDC recalibration & seek - test printer and RS-232 ports. store printer port addresses at 400h and RS-232 port addresses at 408h. store printer time-out values at 478h and Serial time-out values at 47Ch. - NMI interrupts are enabled - perform INT 19 (bootstrap loader), pass control to boot record or cassette BASIC if no bootable disk found - WARM BOOT procedure is now executed |
GLuk |
![]()
Сообщение
#4
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(virt @ 5.07.04 6:04) это далеко не ламерский вопрос. не помню где ,но в какойто книге по системному программированию я читал что посылка опр. значения на опр. порт приведет к перезагрузке. а пока вот ,может поможет. А что ты имел ввиду? По-моему сабж не об этом.. ![]() |
P@sh@ |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
Oleg_Z
И еще, при включении, процессор переходит в особый режим работы, и обнуляет все ячейки памяти, а это он автоматически делает, или можно этим управлять? Как это понимать? оперативная память не очищается после отключения питания ??? не верю! имхо, и при перезагрузке тоже имеет место быть кратковременное отключение питания на память и т.д. и что ты подразумеваешь под процессом выключения компа? это вроде мгновенное дело: было питание - раз, и нет его... или ты про нормальное завершение работы в винде ? ![]() |
BlackShadow |
![]()
Сообщение
#6
|
Гость ![]() |
Оперативная память - она на то и оперативеная, что была и нет. А при загрузке она не обнуляется, а проверяется. Что-то типа scandisk'а перед виндой
![]() |
Altair |
![]()
Сообщение
#7
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
При включении я так понимаю в ячейках памяти бардак вот и обнуляются.
Это я прочел в Питере Абеле "Ассемблер". -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Altair |
![]()
Сообщение
#8
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата Или хочешь как-то применить на практике (эти знания)? Просто интересно. Но если мне что-то интересно, то становится для меня важнее, чем если бы это было бы надо! Цитата 1. Пишешь, что нигде не нашел описания этих процессов, а где ты искал?? Книги: Фаронов ( ![]() Питер Абель "Ассемблер" справочник по ДОС techhelp Журден. Поисковик Рамблер. (УЖАС, несколько десятков тясяч ччылок, в основном анекдоты ![]() P.S. короче никто не знает ![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
GLuk |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
На первый вопрос я тебе по-моему ответил...
![]() А вот искать надо в гугле |
Altair |
![]()
Сообщение
#10
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Често говоря не совсем. Мне бы код не помешал для понимания. На любом языке. Хотя конечно лучше на асме.
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
GLuk |
![]()
Сообщение
#11
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 775 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата(Oleg_Z @ 9.07.04 15:36) Често говоря не совсем. Мне бы код не помешал для понимания. На любом языке. Хотя конечно лучше на асме. Помню только для гор. перезагрузки: Код push 0F000h push 0FFF0 ret Ессесно эта функция недокументирована, каждый производитель BIOS'a не обязан следовать этому неписанному правилу... ;) |
P@sh@ |
![]()
Сообщение
#12
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
Oleg_Z
При включении я так понимаю в ячейках памяти бардак вот и обнуляются. нашел у себя книгу... на винте... вот: Каждый бит памяти проверяется, может ли он быть установлен в единицу и сброшен в нуль. По окончании теста процедура POST записывает нули по всем адресам памяти. и еще: INT 19h - точка входа в процедуру начальной загрузки... Эх, помянуть что ли опять добрым словом свой старый комп ПК8000 Веста... как же там все идеально было сделано: биос проецировался на первые 16кб памяти (read-only естественно), туда же проецировалась и вся видео память - запись по адресам 0-3fff шла прямо на экран, чтение... по умолчанию из биоса, для видеопамяти была спецкоманда. Точка входа в подпрограмму инициализации (POST?) была - 0000h ! т.е. для теплого рестарта достаточно было загнать в память тройку байт - jmp 0 (C3 00 00)... щас самое интересное: холодного рестарта как такового не было! после завершения POST'а биос проверял 2 байта в ОЗУ (!) и если они были не нули (!), отправлялся на этот адрес (!). как это понимать? этим пользовались в основном для защиты игрушек от изменения и копирования - запустившись, они всего лишь проставляли в том секретном месте свой адрес... нажатие на кнопку СБРОС память не очищало(!), и если какой-нибудь хакер, знающий эту особенность компа, хотел после перезагрузки посмотреть код игры (если выйти из нее нельзя было), он обламывался - игра запускалась биосом автоматически (покруче всяких autoexec-ов и автозапусков ![]() Такой же эффект можно было наблюдать даже отключив питание, правда лишь на долю секунды, если дольше - память обнулялась... Сообщение отредактировано: P@sh@ - 12.07.2004 17:52 |
BlackShadow |
![]()
Сообщение
#13
|
Гость ![]() |
А ещё когда-то давно было INT 18h. Это была точка входа во встроенный басик (на ямаха вроде). При обломе на INT 19h биосярка не плакала с криками "вставь мне... системный диск!", а обращалась к этому чудному и безотказному
![]() |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 6:13 |