Странности

Странный эффект. Наберите в блокноте bugoga и сохраните в 1.exe потом запустите. Демосцена отдыхает — демка в 6 байт это сильно. =) Вообще мне казалось что в начале файла должно стоять mz что бы ОСь не ругалась.

UPD: Так работает не тока bugoga Но и bugoga2. A так все что начинается с bugoga. Иследуюя дальше получаем, что подобное поведение наблюдается с любым фаилом начинающимся на bug, а также на bu. Фаил с текстом bu не работает надо bu + еще что-нибудь.

‘b’ выглядит как инструкция:
bound ax,word ptr [bx+si]

которая означает проверку границ массива, где первый операнд — индекс массива, второй нижняя и верхняя граница массива (последовательно в памяти). Эмулятор доса (или дос) загружает эту хрень как com файл и исполняет. Далее зависит от мусора в регистрах. Если ax не попадает в границы, вызывается прерывание int5, которое обычно вешается на нажатие PrintScreen, экран распечатывается и процедура обработки прерывания возвращает управление опять на bound. Итог: эмулятор доса висит в вечном цикле, позиция курсора видимо меняется в обработчике int5.

  1. 23 марта 2007 в 15:30 | #1

    Гм… открыл notepad.exe, набрал bugoga, сохранил на рабочий стол как 1.exe, закрыл notepad, запустил 1.exe, Наблюдаю окошко с чёрным экраном. Я наивный? :)

  2. Анонимно
    10 апреля 2007 в 18:08 | #3

    Нужно файл 1.ехе два раза запускать. Во втором окне бегает курсор. :-)

  1. Пока что нет уведомлений.