|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.07.2010, 19:42 | #31 |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
Код:
|
12.07.2010, 20:10 | #32 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Можно прыгнуть в конец через jmp, а там нужно прописать pop для регистров eax и edx?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
12.07.2010, 20:21 | #34 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Толку никакого, этот код только в одном месте, используется только там и нигде более, посему это будет лишнее.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
12.07.2010, 20:48 | #36 | ||
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Цитата:
Собственно, в этой теме я, с вашей помощью, пытался упростить BitBlt. Вроде вышло, но работает не всегда. В таймере пока отказывается, ...сейчас только это обнаружил (ошибка по адресу FE011870h).
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
||
12.07.2010, 21:01 | #37 | |
equ asm
Участник клуба
Регистрация: 02.05.2009
Сообщений: 1,605
|
Теперь понял, но такой указатель врядли можно получить, наверное, только при работе с Direct Draw...
А насчет ошибки трудно сказать, т.к. в моем тестовом проекте код работает. Попробуйте вставить такой код перед вызовом func. ( я просто незнаю что эта за переменная) Цитата:
|
|
12.07.2010, 21:13 | #38 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Но быстрей же ведь не стало?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
12.07.2010, 21:40 | #39 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
Вот такая получилась процедура для Delphi, она четко работает:
Код:
Теперь результаты по загрузке CPU: BitBlt - 19-25% SetDIBitsToDevice - 17-25% DrawScreen - 5-16% Вуаля!
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
12.07.2010, 22:16 | #40 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
А как таймер победили?
У меня моя погремушка только один раз отрисовывает и всё. Вообще странно такое повышение производительности. Ну мы убрали 20-30 команд (вполне возможно в ущерб стабильности, не зря же там всё-таки перед вызовом какие-то cmp идут). Это ничтожно по сравнению с копированием массива (примерно 1024*768). И ещё. Так как это системный вызов, то он недокументирован (это такая типа политика MS). Т.е. не факт, что то что работает на одной системе, будет работать на другой (или даже на той же + SP_x).
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Windows I/o без Kernel32.dll и Advapi32.dll | coinkrsk | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 31 | 27.06.2010 08:52 |
ошибка программы internal error in user32.dll??? | grammaton | Помощь студентам | 3 | 23.01.2010 10:07 |
Ошибка при выхове функций Bass.dll из другой DLL | SalasAndriy | Общие вопросы Delphi | 7 | 21.10.2009 23:36 |
Война Авиры и User32.dll | Google[Bot] | Безопасность, Шифрование | 2 | 13.01.2009 18:40 |
Пытаюсь создать Dll для своей проги | Parcenson | Общие вопросы Delphi | 6 | 30.09.2008 20:36 |