![]() |
|
|
![]()
|
|
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
ОС: DOS/Windows
Компилятор: TASM 5.0 Суть проблемы: Я пишу программу для вывода графического файла (640 на 480), придуманного мною формата на экран. В программе исползовал такую структуру:
Из кода программы видно, что она представляет собой 2 вложенных один в другой цикла. Всё работает. Но уж очень медленно. Как сделать побыстрей? У меня есть на этот счёт идея: нужно взять из оперативной памяти достаточно большой кусок данных и поместить его в определённое место в видеопамяти, но как это сделать... А каков ваш способ? -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
Никто не знает?
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
Попробовал сделать так:
Результат есть. Если поставить значение цвета ffff, то выведется линия из белых токек, если поставить 00, то точек не будет видно (чёрный цвет), ну а если поставить значение цвета ee24, то отнють не появятся разноцветные пиксели. А появится пунктир (то черная точка, то белая) Создалось такое впечатление что этот графический режим черно-белый. Но ведь это не так. В чём ошибка? Для справки: используется графический режим 12h -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| 111u3 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 31.8.2009 Где: Омск Репутация: нет Всего: нет |
iff, прочитай внимательно про то прерывание которое ты используешь, может увидишь свою ошибку
|
|||
|
||||
| Mikl_ |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 9.11.2007 Репутация: 8 Всего: 14 |
iff,
вывод графики на экран по-точечно будет очень медленным, обычно выводят данные куском в буфер видеопамяти, начиная с адреса 0A000:0000h до 0AFFF:FFFFh предварительно установив нужный режим 12h, 13h, режимы VESA (если нужно разрешение экрана больше чем 320х200 и более 256 цветов), предварительно устанавливают палитру или выводят в режиме True color -- более подробно смотри в гугле например "вывод BMP на экран". Здесь тоже были примеры в разделе "Asm для DOS/Windows" |
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
111u3, Код представленный в моём первом посте работает (это вроде как значит отсутствие ошибок). Т.е. проблема не втом, что программа не работает, а в том, что, как уже сказал Mikl_, в слишком медленной работе этих прерываний.
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| 111u3 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 31.8.2009 Где: Омск Репутация: нет Всего: нет |
iff, я имел ввиду то что ты обращаешся не так и не то пишешь в видеопамять когда напрямую к ней обращаешся.
|
|||
|
||||
| iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 4 Всего: 16 |
А как надо?
-------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
| 111u3 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 31.8.2009 Где: Омск Репутация: нет Всего: нет |
Как надо тебе учебник по ассемблеру скажет, я не ходячий справочник чтобы помнить все наизусть, да и лениво это. Ты лучше побольше кода приведи, а еще лучше весь тогда как ошибку исправить покажу. может быть.
|
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |