Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
RusFAQ.ru: программирование на языке Assembler
Информационный Канал Subscribe.Ru |
RusFAQ.ru: программирование на языке Assembler
Выпуск № 523
от 15.04.2003, 09:00
Администратор: Имя: Калашников О.А. URL: Информационный ресурс ICQ: 68951340 Россия, Москва |
О рассылке: Задано вопросов: 2984 Отправлено ответов: 8801 Активность: 294.9 %
|
Список экспертов, ответы которых опубликованы в данном выпуске |
Bob Johnson Статус: Профессиональный Общий рейтинг: 150.59 URL: Программирование [Подробней >>] |
Broken Sword Статус: Профессиональный Общий рейтинг: 123.95 URL: моя рассылка по Protected Mode [Подробней >>] |
K0dMaster Статус: Доверительный Общий рейтинг: 123.37 [Подробней >>] |
Maverick Статус: Профессиональный Общий рейтинг: 136.15 URL: Задачи по ассемблеру Телефон: 89039415024 (BeeLine GSM) [Подробней >>] |
masquer Статус: Профессиональный Общий рейтинг: 141.4 [Подробней >>] |
keleb-glin Статус: Опытный Общий рейтинг: 109.4 [Подробней >>] |
Ayl Статус: Профессиональный Общий рейтинг: 118.9 [Подробней >>] |
Eugene Статус: Профессиональный Общий рейтинг: 109.07 URL: мощный файловый архив [Подробней >>] |
Hangatyr Статус: Начальный Общий рейтинг: 131.03 [Подробней >>] |
Краткий перечень вопросов |
Вопрос № 2942. Доброе время суток ! Я хотел-бы сказать тов. Broken Sword по поводу защищенного режима (ответ на воп... (ответов: 2)
Вопрос № 2943. Что такое логическая бомба. Примерчик(исходник) приветствуется.... (ответов: 1)
Вопрос № 2944. Здравствуйте Уважаемые Эксперты! Есть вопрос на который Вы наверно уже отвечали,не обесудте. Как про... (ответов: 1)
Вопрос № 2945. Приветствую! Если не очень трудно, поясните, пожалуйста. Ситуация такова: Пишу я Lines, клетки рисую... (ответов: 2)
Вопрос № 2946. Здравствуйте господа Эксперты. Хотелось-бы получить отвены на следующие вопросы: 1.Мое окно не получ... (ответов: 3)
Вопрос № 2947. Привет всем! Подскажите, а лучше напишите как можно заблокировать или отлавливать Ctrl+Alt+Del, Alt+... (ответов: 3)
Вопрос № 2949. Уважаемые эксперты!! Я понимаю,что уже надоел своими дурацкими вопросами.Но надежда только на ВАС !!... (ответов: 1)
Вопрос № 2950. Привет еще раз! Bob Johnson и Ayl, мне надо под ДОС. Под винды я и так программирую, в принципе знаю... (ответов: 2)
Вопрос № 2951. гДПЮЯЭРЕ! сБЮФЮЕЛШЕ ЩЙЯОЕПРШ, ОНЛНЦХРЕ НОРХЛХГХПНБЮРЭ ОПНЦПЮЛЛЙС! нВЕМЭ ХМРЕПЕЯМН, ЙЮЙ НМЮ АСДЕР БШЦ... (ответов: 2)
Вопрос № 2952. Приветствую! Мне нужны примеры программ: интернет-звонилка, терминал(типа HyperTerminal). Подскажите... (ответов: 3)
Вопрос № 2953. Плиз. Подскажите как можно, и с чего начать изучение програмирования. Дайте если есть сайты по изуче... (ответов: 3)
Вопрос № 2954. У меня есть MDI приложение (Win32 соответственно), без исходников. Возможно ли сделать программу, ко... (ответов: 1)
Вопрос № 2955. Здравствуйте, ув. эксперты! У меня такой вопрос - как произвести мониторинг производительности? Кома... (ответов: 2)
Вопросов: 13, ответов: 26
Вопрос № 2942 |
Доброе время суток !
Я хотел-бы сказать тов. Broken Sword по поводу защищенного режима (ответ на вопрос 2906):
Не вводите людей в заблужджение... Что такое запредельные области ? Говорите точнее... Наверное это страница не загруженная в физическую память ? Ну так и говорите...
Далее по поводу сигнала #Reset ... Вы хотя бы знаете что это сброс процессора (читай переинициализация)... В результате обращения к незагруженной в память странице возникает исключение #PF (Page Fault Exception) его номер в таблице IDT равен четырнадцати (#14)... Так-что не пишите о чем не знаете... Если хотите писать по этой теме изучите сначала (Intel IA-32 System Programmers Guide), а потом давайте советы людям... OK ? И без обид пожалуйста...;-) В свой адрес критику принимаю...
С уважением dr_dolphin
Вопрос отправлен: 10.04.2003, 08:47
Отправитель: dr_dolphin (dr_dolphin@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Bob Johnson
Добрый день, dr_dolphin!
Ну ты и злой перец :)
Я хоть и не Broken Sword, но предположу, что запредельные области это не страницы, в которых бит присутствия P установлен в 0, с такими все понятно и тут действительно будет PF. А вот если настроить страницу так, чтобы она физически указывала на адрес памяти, которого нет, т.е. если установлено 512 мб памяти, а страница показывает на 518-й мегабайт, и бит P у нее = 1 (все ок). Когда процессор обратиться к этой странице, он выставит на шину адреса несуществующий физически адрес, и вот тогда уже chipset будет решать, что делать. А вот он вполне может в ответ на такое "хамство" со стороны процессора подать ему reset, чтоб не выпендривался.
> Так-что не пишите о чем не знаете.
Ну это уже слишком серьезно... У него есть рассылка по protected mode... Так что я бы так не стал говорить.
Поэтому еще раз все дружно становимя в круг и говорим "Нет" наркотикам!!!
Ответ отправлен: 10.04.2003, 15:55
Отправитель: Bob Johnson
Отвечает Broken Sword
Здравствуйте, dr_dolphin!
Тов. dr_dolphin, вы зря наводите тень на плетень, если хотите подискутировать на эту тему - я готов.
Все эксперты ответили на вопрос вообщем то правильно, но ответы были все в одной плоскости, т.е. когда уже установлена ОС, причем которая использует страничную адресацию (!), и таблицы каталогов и страниц настроены верно... идиллия... (кстати кто-то ответил про swap-файл - это немного из другой оперы). Действительно, КОРРЕКТНО(!) заполнив PTE и PDE можно описать ВСЕ 4 Гб на несчастный 1Мб оперативы и тем самым полностью "уйти" от проблемы про которую спрашивалось в 2906...
Мой же ответ описывает картину так, как был поставлен вопрос: проц находится в защ. режиме, (есть одна таблица GDT), страничная адресация отключена (берем общий случай) или пусть даже включена, но PDE и PTE заполнены некорректно (т.е. фактически они не предотвратят ситуации, о которой дальше). И вот на компе стоят 256Мб оперативы. выставляем на адресную шину число большее 256Мб (возможно? конечно! тут все зависит от дескрипторов в GDT и смещения). Вопрос: какой тут хрена #PF??? Мануалы интела мною изучены от корки до корки и знаете что, они НЕ содержат недокументированной инфы. А вот этот случай, про который спрашивал товарищ в вопросе 2906, по сути как раз таковым и является (другое дело, что товарищ сам не понял чего спросил, но мой ответ (я продолжаю настаивать) все равно был ПО СУЩЕСТВУ).
Теперь насчет сигнала #RESET. ДА, ДЕЙСТВИТЕЛЬНО, ЭТОТ СИГНАЛ является сигналом переинициализации процессора, но одновременно он посылается контроллером памяти в случае, когда адрес выставленный на адресную шину превышает размер установленной оперативной памяти, это НЕДОКУМЕНТИРОВАННЫЙ факт, в жизни вы с ним встречаетесь каждый день, сами того не подозревая (в момент POST), посему советую читать побольше книжек и удачи. Кстати, помимо #RESET-а чипсет может послать и др. сигнал (например, NMI), все зависит от конкретного чипсета на конкретной материне.
Если у вас остались какие-либо сомнения или предложения по этому поводу - прошу, может хоть так удасться оживить и вывести из транса эту рассылку
Ответ отправлен: 10.04.2003, 09:45
Отправитель: Broken Sword
Вопрос № 2943 |
Что такое логическая бомба. Примерчик(исходник) приветствуется.
Вопрос отправлен: 10.04.2003, 10:18
Отправитель: Alexandr (a2xandr@mail.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает K0dMaster
Приветствую Вас, Alexandr!
Это когда например по потчте приходит файли при запуске которого на диске не остается свободно места проще говоря он забивает все свободное пространство... ну и тд. А на счет примера думайте сами посколько данный вид деятельности поподает под статью компьютерных преступлений %)))
Ответ отправлен: 10.04.2003, 10:25
Отправитель: K0dMaster
Вопрос № 2944 |
Здравствуйте Уважаемые Эксперты!
Есть вопрос на который Вы наверно уже отвечали,не обесудте.
Как прочитать на своей М/В BIOS ,и можно ли в него внести
изменения .
Зарание Благодарен!
Вопрос отправлен: 10.04.2003, 10:31
Отправитель: Vladimir
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Доброе время суток, Vladimir!
Ты имеешь ввиду flash bios? Или что?
По флэшине есть неск-ко статей в IV 15
Кстати, его прошить можно только сразу весь, т.е. кусок ты в микруху не добавишь.
Так же можно поглядеть исходник замечательной утилиты, которая прошивает flash, это небезизвестный wincih.
Очень эффектно работает, и легко устанавливается.
З.Ы. Насчет cih шутка, а то кто нибудь "установит", а я виноват :)
Ответ отправлен: 10.04.2003, 15:57
Отправитель: Maverick
Вопрос № 2945 |
Приветствую!
Если не очень трудно, поясните, пожалуйста.
Ситуация такова:
Пишу я Lines, клетки рисуются, шарики прыгают, сгорают, анимируют и всетакое, но...
Выводится на экран все как-то неправильно (мне так кажется)
Скажите, так реализовать будет правильно:
см. приложение
Для моей задачи правильный подход? Может где-то ошибка? Это мой, так
сказать, новый вариант рисования, в старом, все сначала рисовалось на hBmp3,
потом вызывалось WM_PAINT, картинка, ясный пень, моргала.
Есть ли какие правила в этом?
Приложение:
Вопрос отправлен: 10.04.2003, 12:06
Отправитель: [-=TT=-] (KunaevNA@PosolskyDom.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает K0dMaster
Здравствуйте, [-=TT=-]!
Поповуду правильности могу заметить лишь следуеще такие приложение лутчше всего писать под OpenGl или DirectX хотя первое конечно мне больше нравится тогда и работать с графикой и приметивами будет удобнее и вообще все красивее будет и не намго сложнее чем на WinApi !!!
Ответ отправлен: 10.04.2003, 12:39
Отправитель: K0dMaster
Отвечает Bob Johnson
Доброе время суток, [-=TT=-]!
Чтобы у тебя ничего не мограло, нужно либо выводить изображение кусками за один bitblt (ну тут понятно, что ничего моргать не будет) или рисовать вначале в памяти. В принципе, для Lines можно сразу в граф. редакторе уже расположить шарики на фоне поля и потом только копировать нужный bmp на экран. Тогда любая клетка экрана будет нарисована за один bitblt и моргания не будет. Что касается того, когда рисовать - то можешь создать себе класс окна, у которого есть постоянный DC, получить его сразу же после создания окна и использовать по мере необходимости. Естественно, на WM_PAINT и WM_ERASEBKGND надо будет тоже что-то оставить. Но такой способ позволяет рисовать в любое нужное время.
Можно не делать постоянного DC, а по мере необходимости получать его (GetDC или GetWindowDC) и отдавать (ReleaseDC), будет чуть медленнее.
Ну а уж если у тебя там супер навороченная графика, и ты не можешь рисовать сразу за один BitBlt - то рисуй сначала в память (CompatibleDC & CompatibelBitmap), а потом делай bitblt на экран, тем более, что так делают многие виндовские контролы (я лично наблюдал это на TrackBar).
Ответ отправлен: 10.04.2003, 15:57
Отправитель: Bob Johnson
Вопрос № 2946 |
Здравствуйте господа Эксперты. Хотелось-бы получить отвены на следующие вопросы:
1.Мое окно не получает ни одного сообщения о нажатии клавиши (WM_CHAR, WM_KEYDOWN ...). Почему? Может это из-за того, что фокус принадлежит RichEditу? И вообще хочу выход по Esc сделать, какое сообщение лучше для этого использовать или вообще надо HOTKEYем пользоваться?
2.В моей Win32 программе я не указываю сегмент ".stack". Какой размер стека Windows ставит по умолчанию, и какой размер минимальный, если твоя программа не использует стек (вернее если ты в своей проге стек не используешь)? Что будет если сегмент стека будет переполнен?
3.Какая разница между GetMessage и PeekMessage какую из них предпочтительнее использовать?
Вопрос отправлен: 10.04.2003, 12:29
Отправитель: GHopper
[Следующий вопрос >>] [Список вопросов]
Отвечает masquer
Доброе время суток, GHopper!
1. Код Esc - VK_ESCAPE, ловишь его и обрабатываешь соответственно. По всему остальному без кода не скажешь.
2. Поу молчанию 1 Мб, кажется, выделяется, если это не устраивает, то у микрософтовского линкера опиция есть /STACK:reserve[,commit]. Как у борландовских поделок - х.з. В большинстве случаев тебе о стеке вообще нечево беспокоиться.
3. Читаем MSDN:
"Unlike GetMessage, the PeekMessage function does not wait for a message to be posted before returning."
То бишь PeekMessage не ждет отработки месаджа. Тебе решать - что применять.
Ответ отправлен: 10.04.2003, 12:59
Отправитель: masquer
Отвечает K0dMaster
Доброе время суток, GHopper!
1) Это можно решить разными способами взависимосте от того результата который ты хочешь получить...
2) Стандартный рамез если не указанно иначе 1 мб либо если ты создае процесс он наследует размер стека размер процесса предка либо указываешь в ручную. Стек всеравно используется в программе даже если ты его явно не используешь...
3) Одна из них не возрашает управление пока не будет получено сообщение а вторая тобишь PeekMessage сразуже возрашает управление не зависимо от того если сообения в очереди...
Ответ отправлен: 10.04.2003, 12:45
Отправитель: K0dMaster
Отвечает Bob Johnson
Здравствуйте, GHopper!
2. Про стек из MSDN: по умолчанию любому потоку (Thread) отводится 1 мб зарезервированной памяти и 4кб реально доступной. Система будет делать доступной по одной странице из зарезервированной памяти по мере необходимости.
Резервирование памяти никак не сказывается на объеме свободной физической памяти - просто выделяется адресное пространство внутри твоего процесса, а физическая память выделяется только когда зарезервированная память становится доступной (commit). Поэтому уменьшать каким-либо образом стек смысла нет. А вот если ты переполнишь стек (больше 1 мб), тогда возникнет ошибка. Но 1мб стека - это 256К dword'ов, так что должно хватить.
3. Последняя может не вытаскивать сообщение из очереди и не ждет, пока оно там появится. Это позволяет выполнять какие-либо еще операции в том же самом потоке.
Ответ отправлен: 10.04.2003, 15:57
Отправитель: Bob Johnson
Вопрос № 2947 |
Привет всем! Подскажите, а лучше напишите как можно заблокировать или отлавливать Ctrl+Alt+Del, Alt+TAB, Ctrl+Break и Ctrl+C. Потом в Паскаль встрою. Пожалуйста! Очень надо, а вам, экспертам, это раз плюнуть!
Заранее спасибо, с меня виртуальное пиво!
Вопрос отправлен: 10.04.2003, 13:06
Отправитель: Кирилл
[Следующий вопрос >>] [Список вопросов]
Отвечает keleb-glin
Приветствую Вас, Кирилл!
адрес обработчика Ctrl+C и Ctrl+Break - в векторе 23h (и 1bh). Остальное можно ловить, сидя на int 9h, и просматривая флаги клавиатуры и нажатую клавишу. А вот хэндлер ctrl-alt-del - по фиксированному адресу F000:FFF0
Ответ отправлен: 12.04.2003, 19:13
Отправитель: keleb-glin
Отвечает Bob Johnson
Здравствуйте, Кирилл!
Тебе под ДОС или под Windows?
Если под дос - то пиши свой обработчик int 9h и в нем сам отлавливай ctr-alt-del и все такое.
Если под Windows - то под NT Ctrl-alt-del никак не заблокируешь (только драйвер клавиатуры), остальные можно - зарегистрируй hot-key на эту комбинацию и ничего в ней не делай. Но в паскаль ты это не встроишь никак. Программа должна быть виндовской.
Под Windows 98 можешь написать тоже драйвер или попробовать хукнуть сервис VKD_Filter_Keyboard_Input.
Но все это не для паскаля.
Ответ отправлен: 10.04.2003, 15:58
Отправитель: Bob Johnson
Отвечает Ayl
Приветствую Вас, Кирилл!
Ты его где собрался отлавливать? В винде? Ну-ну... Удачи! Особенно по встраиванию в Паскаль... :-)
Все дело в том, что все клавиатурные прерывания сначала приходят в нашу всеми любимую винду. Которая обрабатывает клавиши Ctrl+Alt+Del, Ctrl+Tab, Ctrl+Space и т.п. Помешать этому можно только при условии, что твоя прога будет загружена до винды, перейдет в PM и сама настроит для себя IDT. Вот тогда и можно будет обрабатывать эти комбинации. А так - извини.
На самом деле для своей проги ты можешь написать PIF-файл, в котором запретишь реакцию на комбинации Ctrl+Tab, Ctrl+Space и т.п. (при условии, что твоя прога будет работать в DOS-сессии).
Насчет Ctrl+Break и Ctrl+C - обрабатывай прерывание 23h. Или напрямую 9-е. Эти комбинации виндой не перехватываются.
Если же дело не в винде (но тогда я не понял вопрос про Alt+Tab), то можно и Ctrl+Alt+Del перехватить - для этого надо ловить прерывание 9 и проверять, что когда нажата клавиша Del, то переключатели shift-клавиш не установлены для Ctrl и Alt. Если установлены - передавать управление оригинальному обработчику 9-го прерывания не нужно. Вот и все.
Ответ отправлен: 10.04.2003, 16:28
Отправитель: Ayl
Вопрос № 2949 |
Уважаемые эксперты!!
Я понимаю,что уже надоел своими дурацкими вопросами.Но надежда только на ВАС !!
Как мне объяснили данная прога не будет работать на компе если его адаптер LPT не держит двунаправленный режим ввода-вывода.Скажите ЧАЙНИКУ как изменить данный кусок проги чтоб работало.А если это невозможно то нельзя ли сделать аналог на другом порте например GAME.
прога в приложении
Приложение:
Вопрос отправлен: 10.04.2003, 17:03
Отправитель: anton (oven_mars@rambler.ru)
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Приветствую Вас, anton!
Если адаптер не держит двунаправленный режим, то никаким образом ты не сможешь получить состояние внешнего устройства. Так что опаньки. А чего именно ты пытаешься добиться? Может, через COM попробуешь?
Ответ отправлен: 10.04.2003, 17:31
Отправитель: Ayl
Вопрос № 2950 |
Привет еще раз! Bob Johnson и Ayl, мне надо под ДОС. Под винды я и так программирую, в принципе знаю про все их "фичи". Конечно спасибо за ваши советы, но, к сожалению, надо срочно, а на асме пока я могу только выводить строчки на экран:). 3й урок Калашникова пока:).
Вопрос отправлен: 10.04.2003, 18:27
Отправитель: Кирилл
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Приветствую Вас, Кирилл!
Ну под ДОС это все просто. Перехватываешь 9-е прерывание (это аппаратное прерывание от клавы), считываешь из порта 60h значение - это скен-код нажатой клавиши. Анализируешь его (например, это Del при уже нажатых Alt и Ctrl; С или Break при нажатом Ctrl; Tab при нажатом Alt и т.п.) и если твоя комбинация - игнорируешь или выполняешь свои действия (т.е. подтверждаешь получение байта от контроллера клавиатуры для того, чтобы он мог выставить следующий скен-код; освобождаешь контроллер прерываний и завершаешь обработку прерывания). Если же скен-код тебе не нужен, то вызываешь старый обработчик 9-го прерывания - нафига переписывать то, что уже работает.
Как это должно выгляжить - см. скелет в Приложении. Кстати, ты кажется говорил что-то про Паскаль. Так вот, в Паскале ты можешь воспользоваться процедурой с модификатором interrupt для описания обработчика прерывания прямо на Паскале.
Приложение:
Ответ отправлен: 11.04.2003, 11:52
Отправитель: Ayl
Отвечает Bob Johnson
Добрый день, Кирилл!
Ну тогда странно, зачем тебе ALT-Tab... и все остальное - ты хочешь, чтобы твоя ДОС-прога работала в окне windows и при этом система не реагировала на Ctrl-alt-del? Это невозможно.
Если же прога должна работать под чистый дос - тогда перехватывашь int 9h и следишь за клавишами ctrl, alt и del. В обработчике этого прерывания ты должен будешь считать скан-код клавиши (in al, 60h). Если он 128 или больше, то значит, что данную клавишу отпускают, если меньше - нажимают. Сделай в памяти две переменные - одну для ctrl, другую для alt и изменяй их значения в соответствии с нажатиями ctrl и alt. А когда нажимается del, проверяй флаги ctrl и alt, если они нажаты, то не передавай управлению предыдущему обработчику, иначе - передавай. Если не будешь передавать, сбрось контроллер прерываний: mov al, 20h out 20h, al, иначе больше int 9h не придет.
Ответ отправлен: 11.04.2003, 15:23
Отправитель: Bob Johnson
Вопрос № 2951 |
гДПЮЯЭРЕ!
сБЮФЮЕЛШЕ ЩЙЯОЕПРШ, ОНЛНЦХРЕ НОРХЛХГХПНБЮРЭ ОПНЦПЮЛЛЙС! нВЕМЭ ХМРЕПЕЯМН, ЙЮЙ НМЮ АСДЕР БШЦКЪДЕРЭ ЛЕМЭЬЕ. х БННАЫЕ, ЛНФМН КХ ЕЕ ЕЫЕ СЛЕМЭЬХРЭ ХКХ МЕР?
Приложение:
Вопрос отправлен: 10.04.2003, 18:36
Отправитель: Witt
[Следующий вопрос >>] [Список вопросов]
Отвечает Ayl
Приветствую Вас, Witt!
Witt пишет:
"Здрасьте!
Уважаемые эксперты, помогите оптимизировать программку! Очень интересно, как она будет выглядеть меньше. И вообще, можно ли ее еще уменьшить или нет?"
Да, конечно можно!
Во-первых, не нужно использовать регистр BX, а вместо этого лучше взять SI. Он имеет 2 плюса:
- при старте программы (не под отладчиком) он сразу же равен 100h
- для загрузки значения в регистр AL можно использовать команду lodsb (1 байт + автоинкремент SI).
Во-вторых, для деления на 16 не надо использовать загрузку этого значения в регистр dl и последующего деления. Потому что такой способ имеет несколько недостатков:
- лишняя загрузка значения в регистр (2 байта)
- лишняя очистка регистра AH перед делением (точнее, регистра AX перед загрузкой)
Вместо этого лучше воспользоваться трюком с командой AAM. Все дело в том, что эта команда состоит из 2-х байт. Первый - код операции (0D4h), а второй представляет собой делитель. При ассемблировании команды AAM во второй байт записывается число 10. Ну так ведь нам никто не мешает вместо него прописать 16 :-). Как именно? А вот так, как в Приложении - вместо AAM пишем DB 0D4h, 10h. В результате экономия - 4 байта. Единственный минус - в отладчике тяжело отлаживать - он такой команды не понимает.
Итого от твоих 32 байт отнимаем 4 за счет использования AAM с другой базой, еще 4 за счет использования регистра SI вместо BX. Но вынужденная потеря 1 байта за счет применения команды CMP AH, ... вместо CMP AL, ... Это произошло в связи с побочным эффектом отказа от команды DIV - поменялись местами частное и остаток от деления, в результате чего приходится использовать команду xchg ah, al в начале преобразования байта, а не в конце.
Итак, размер оптимизированной программы с тем же алгоритмом - 25 байт. Она в Приложении первая.
Вторая - попытка изменить алгоритм, но не совсем удачно. 26 байт. Может я еще что-нибудь придумаю по ней - скорее всего можно ее еще улучшить.
Приложение:
Ответ отправлен: 11.04.2003, 14:00
Отправитель: Ayl
Отвечает Maverick
йЪЧЙОСАУШ ЪБ ОЕУЛТПНОЩК ЧПРТПУ, Б ЬФП Ч ЛБЛПК ЛПДЙТПЧЛЕ?
Ответ отправлен: 11.04.2003, 08:19
Отправитель: Maverick
Вопрос № 2952 |
Приветствую!
Мне нужны примеры программ: интернет-звонилка, терминал(типа HyperTerminal). Подскажите, пожалуйста, где их можно взять или отправьте мне на trin@pochta.ws. Желательно, что бы примеры были написаны полностью на WinAPI. Также буду благодарен за документы по программированию для модема на ассемблере для Windows.
Спасибо!
Вопрос отправлен: 10.04.2003, 18:42
Отправитель: Trin (trin@pochta.ws)
[Следующий вопрос >>] [Список вопросов]
Отвечает K0dMaster
Приветствую Вас, Trin!
Зайди сюда тут много чего интересного %)) www.wasm.ru
Ответ отправлен: 11.04.2003, 09:19
Отправитель: K0dMaster
Отвечает Bob Johnson
Добрый день, Trin!
Пример набора номера с помощью RAS есть на моей странице (bobjohnson.nm.ru). Терминал можешь написать с помощью TAPI или можешь открыть ком порт с помощью CreateFile.
Ответ отправлен: 11.04.2003, 15:24
Отправитель: Bob Johnson
Отвечает Eugene
Добрый день, Trin!
Можешь ещё зайти на sourceforge.net
Там куча исходников. Есть и нужные тебе.
Ответ отправлен: 11.04.2003, 16:02
Отправитель: Eugene
Вопрос № 2953 |
Плиз. Подскажите как можно, и с чего начать изучение програмирования. Дайте если есть сайты по изучению азов для самих самих начинающих програмистов.
Вопрос отправлен: 10.04.2003, 21:51
Отправитель: Mihail
[Следующий вопрос >>] [Список вопросов]
Отвечает Maverick
Добрый день, Mihail!
В этой рассылке, есть такая небезполезная фича, как поиск в базе, заданных вопросов. Эту тему уже перетирали сотню раз. Начинай с Калашникова, потом Зубков и т.д.
Все есть на сайте Bob Johnson'а...
Ответ отправлен: 11.04.2003, 08:19
Отправитель: Maverick
Отвечает K0dMaster
Приветствую Вас, Mihail!
Тебе под винды или дос ??? вообщем заходи сюды www.wasm.ru найдешь все начиная от азов и заканчивая интересными вещами также сходи на www.codenet.ru www.sources.ru
Ответ отправлен: 11.04.2003, 09:23
Отправитель: K0dMaster
Отвечает Bob Johnson
Добрый день, Mihail!
Попробуй скачать книгу Зубкова у меня со странице (bobjohnson.nm.ru).
Ответ отправлен: 11.04.2003, 15:25
Отправитель: Bob Johnson
Вопрос № 2954 |
У меня есть MDI приложение (Win32 соответственно), без исходников. Возможно ли сделать программу, которая бы создавала MDI окна относящиеся к этому приложению? Криво как-то вопрос задал - но смысл думаю понятен. Зарание благодарен. Иван.
Вопрос отправлен: 11.04.2003, 05:47
Отправитель: Ivan
[Следующий вопрос >>] [Список вопросов]
Отвечает K0dMaster
Приветствую Вас, Ivan!
Не совсем понятен вопрос что тебе конкретно нужно ??
Если ты хотел сказать что к этому MDI приложению нужно присобачить твои Child'ы которые будут открываться в этом MDI приложении то ответ положительный то можно но это очень сложно проще новое приложение заново написать анологичное тому что ты имеещь %)))
Ответ отправлен: 11.04.2003, 09:35
Отправитель: K0dMaster
Вопрос № 2955 |
Здравствуйте, ув. эксперты!
У меня такой вопрос - как произвести мониторинг производительности? Команды
rdmsr/wrmsr почему-то не работают...
Вопрос отправлен: 11.04.2003, 08:55
Отправитель: Deny
[Следующий вопрос >>] [Список вопросов]
Отвечает Hangatyr
Доброе время суток, Deny!
Доброе время суток, Deny!
Ну, эти команды являются привилегированными и, соответственно, требуют CPL=0. В противном
случае - #GP.
Выводы: использовать их в реальном режиме, написать драйвер, использовать rdpmc. Также убедись, что правильно адресуешь регистр (учитывая, что число модельно-специфических регистров различно у разных процов).
Ответ отправлен: 11.04.2003, 09:15
Отправитель: Hangatyr
Отвечает Bob Johnson
Приветствую Вас, Deny!
Ты из не из приложения под Windows случайно используешь? Они разрешены только в 0-м кольце, т.е. из драйверов. Либо ты можешь использовать их из реального режима (ну это чистый DOS даже без EMM).
Ответ отправлен: 11.04.2003, 18:18
Отправитель: Bob Johnson
Форма отправки вопроса |
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.
© 2002 Команда RusFAQ.ru.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту Assembler (38) C / C++ (29) Perl (6) Delphi (16) Pascal (23) Basic / VBA (9) Java / JavaScript (10) PHP (5) MySQL / MSSQL (6) |
Пользователю Windows 95/98/Me (28) Windows NT/2000/XP (21) "Железо" (24) Поиск информации (12) |
Администратору Windows NT/2000/XP (11) Linux / Unix (13) |
Юристу Гражданское право (8) Семейное право (5) Трудовое право (5) КоАП (6) |
Отправить вопрос всем экспертам выбранной рассылки.
© 2002 Россия, Москва. Авторское право: RusFAQ.ru |
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||