![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 31
|
![]()
Доброго времени суток.Возник вопрос.Возможно ли написать ассемблерную вставку для паскаля оптимизирующую его стандартную функцию putpixel.Вопрос впринципе частый однако как её переписать под режим svga 1024*768*256 и возможно ли это. Можно ли добится ускорения процедуры этим.
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
Nicko_mt
Если под Windows то ускорения при использовании ассемблерной вставки не будет, так как и ассемблер и паскаль будут использовать WinAPI-фукцию PutPixel другое дело, для чего тебе понадобилось выводить точку на экран? Явно для рисования, поэтому и в ассемблере и в Паскале для ускорения графики можно использовать графические функции которые работают с графическими примитивами например Pie, LineTo, Poligone, Ellips и т.п. также если требуется выводить картинки, то используется функция BitBlt |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 14.04.2011
Сообщений: 31
|
![]()
И всё же в продолжение темы
Код:
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
Nicko_mt
а как ты установил графический режим 1024*768*256? В коде этого нет возможно причина в этом. Если через VESA, то установка координат точки через ES=0A000h и DI будет работать только в самой верхней части экрана. Считай сам 1024х768=786432 а DI может изменяться только в пределах от 0 до 65535 (0FFFFh). В видеопамять SVGA можно выводить только кусками по 65536 байт. 786432=12*65536 то есть 12 сегментов по 64 Кбайта с адресами от 0000 до FFFFh. В сегменте 65536/768=85 полных строк и одна неполная строка из 256 пикселей. После чего требуется переключить экран функцией 4F05h прерывания 10h и заполнить следующие 85 строк и т.д |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа со стандартной библиотекой С. | Lag | Общие вопросы C/C++ | 0 | 30.05.2010 19:03 |
VS05 находит ошибки в стандартной библиотеке | Lavisa | Помощь студентам | 1 | 08.01.2010 03:26 |
Изменение стандартной формы | qwerra | Помощь студентам | 10 | 25.06.2009 19:13 |
Задача по стандартной матрице. Нужна помощь! | Rav4 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 26.12.2008 21:48 |