Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/46: Рейтинг темы: голосов - 46, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 7

Как работать с графикой на ассемблере?

11.08.2010, 20:42. Показов 10000. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С чего начать программирование графики на ассемблере? Без Windows API, Direct’ов и OpenGL. Как устранить возможные проблемы совместимости с разными видеокартами? Чтобы код спокойно мог пойти на любом компьютере или… почти любом.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.08.2010, 20:42
Ответы с готовыми решениями:

Как работать с графикой?
Здравствуйте, у меня есть программа игры в крестики-нолики. Как сделать графическую часть? Подскажите пожалуйста.. Работаю в Dev-C++ ...

Как работать с графикой
Ребят помогите разобратся с азами графики на C#

Как начать работать с графикой?
В универе дали задание - написать программу для разработки собственного шрифта. Ввиду прогулов, понятия не имею, как начать работать с...

11
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
12.08.2010, 16:29
Цитата Сообщение от assemblerist Посмотреть сообщение
Без Windows API, Direct’ов и OpenGL
Если вы програмируете под винду, то только через GDI, либо никак. Если же вы програмируете под голое железо, то возможно вам стоит изучить описание VESA стандарта.
0
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 7
12.08.2010, 17:44  [ТС]
Цитата Сообщение от Goodwin98 Посмотреть сообщение
Если вы програмируете под винду, то только через GDI, либо никак.
Есть ли смысл в использовании GDI совместно с ассемблером? По-моему, если подумать, нету. Хотя спорить не буду.

Цитата Сообщение от Goodwin98 Посмотреть сообщение
Если же вы програмируете под голое железо, то возможно вам стоит изучить описание VESA стандарта.
Сделать надо примерно следующее: создать окно предположим средствами API Windows, на котором в итоге должна красоваться ассемблерская графика. И вопросы стоят – как выводить графику на определенное окно и как выводить графику средствами ассемблера вообще.
0
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
12.08.2010, 17:57
Цитата Сообщение от assemblerist Посмотреть сообщение
Есть ли смысл в использовании GDI совместно с ассемблером? По-моему, если подумать, нету. Хотя спорить не буду.
Использовать один ассемблер при программировании под винду вообще смысла нет особо. Графика не исключение. Вы почти ничего не можете сделать не обратившись к интерфейсу API, а в плане ввода и вывода совсем ничего.

Цитата Сообщение от assemblerist Посмотреть сообщение
Сделать надо примерно следующее: создать окно предположим средствами API Windows, на котором в итоге должна красоваться ассемблерская графика. И вопросы стоят – как выводить графику на определенное окно и как выводить графику средствами ассемблера вообще.
Можно, как я уже сказал использовать GDI, либо Direct’ы и OpenGL.
В случае с GDI вы, например, можете создать буфер в котором будете формировать изображение любым удобным для вас способом, а потом этот буфер выводить на экран командой ВинАпи.
0
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 7
12.08.2010, 18:05  [ТС]
Цитата Сообщение от Goodwin98 Посмотреть сообщение
Можно, как я уже сказал использовать GDI, либо Direct’ы и OpenGL.
В случае с GDI вы, например, можете создать буфер в котором будете формировать изображение любым удобным для вас способом, а потом этот буфер выводить на экран командой ВинАпи.
Но мне в этом вопросе более симпатичен низкоуровневый ассемблер. В принципе всю графику можно спокойно написать на DirectX или OpenGL, но это относительно высокоуровневая графика. Хотя понятное дело, что без вспомогательных средств тут не обойтись, но хотелось бы свести их к необходимому минимуму.
0
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
12.08.2010, 18:15
Хотелось бы узнать, а чем для вас плоха высокоуровневая графика ?
Что вы вообще хотите от графики ?

Цитата Сообщение от assemblerist Посмотреть сообщение
Хотя понятное дело, что без вспомогательных средств тут не обойтись, но хотелось бы свести их к необходимому минимуму.
Можно средствами ОС только отправлять изображение на экран, но формировать его на асме, но при этом у вас не будет преимуществ, которыми обладают видеокарты, т.е. всю работу будет выполнять CPU, а значит будет потребляться больше системных ресурсов.
0
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 7
12.08.2010, 18:32  [ТС]
Цитата Сообщение от Goodwin98 Посмотреть сообщение
Хотелось бы узнать, а чем для вас плоха высокоуровневая графика ?
Хороший вопрос. Высокоуровневая графика временами грешит своими излишествами. А это нехорошо. Примерно 70% функций так остаются не востребованными в должной мере. В тоже время нет возможности как следует развернуться, не принеся жертву такой роскоши.
Цитата Сообщение от Goodwin98 Посмотреть сообщение
Что вы вообще хотите от графики ?
Чтобы она выводилась средствами ассемблера. Сейчас я даже не в курсе как вывести хотя бы один пиксель.

Цитата Сообщение от Goodwin98 Посмотреть сообщение
Можно средствами ОС только отправлять изображение на экран, но формировать его на асме, но при этом у вас не будет преимуществ, которыми обладают видеокарты, т.е. всю работу будет выполнять CPU, а значит будет потребляться больше системных ресурсов.
Каким образом можно задействовать преимущества видеокарты? Потому что посадить всё на процессор это не выход. Никакой экономии производительности, только потери. Но опять же, зависеть от уже встроенных функций Direct’а и OpenGL желание также не возникает.
0
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
12.08.2010, 18:46
Цитата Сообщение от assemblerist Посмотреть сообщение
Чтобы она выводилась средствами ассемблера. Сейчас я даже не в курсе как вывести хотя бы один пиксель.
Это невозможно.

Цитата Сообщение от assemblerist Посмотреть сообщение
Каким образом можно задействовать преимущества видеокарты? Потому что посадить всё на процессор это не выход. Никакой экономии производительности, только потери. Но опять же, зависеть от уже встроенных функций Direct’а и OpenGL желание также не возникает.
Именно встроенные в Direct и OpenGL и есть наиболее оптимальные.
Вы можете попробовать написать некое подобие аналога, который будет взаимодействовать с драйвером видеокарты, анализировать что она умеет, эмулировать что-то, что она не может и т.п. но это уж слишком хлопотное дело... Например вы врядли найдете где-то описание того, как нужно делать это взаимодействие у различных производителей ( а их тоже не мало и у многих, вероятно, по разному)
0
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 7
12.08.2010, 18:55  [ТС]
Цитата Сообщение от Goodwin98 Посмотреть сообщение
Это невозможно.
Интересно, каким образом на заре развития компьютеров программисты умудрялись выводить изображения на экран? Разве нельзя, например, осуществить прямую работу с видеокартой или на худой конец через драйвер, устраняя лишних “посредников” на пути работы с оборудованием.

Цитата Сообщение от Goodwin98 Посмотреть сообщение
Именно встроенные в Direct и OpenGL и есть наиболее оптимальные.
Вы можете попробовать написать некое подобие аналога, который будет взаимодействовать с драйвером видеокарты, анализировать что она умеет, эмулировать что-то, что она не может и т.п. но это уж слишком хлопотное дело... Например вы врядли найдете где-то описание того, как нужно делать это взаимодействие у различных производителей ( а их тоже не мало и у многих, вероятно, по разному)
То есть – это мертвоё дело?
0
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
12.08.2010, 19:02
Цитата Сообщение от assemblerist Посмотреть сообщение
Интересно, каким образом на заре развития компьютеров программисты умудрялись выводить изображения на экран? Разве нельзя, например, осуществить прямую работу с видеокартой или на худой конец через драйвер, устраняя лишних “посредников” на пути работы с оборудованием.
Тогда были другие времена... Сейчас операционные системы ограничивают доступ ко всему для программ.
Напрямую работать с современной видеокартой у вас не получится хотя бы потому что вы вряд ли найдете как это нужно делать - производители это скрывают как могут. Тоже самое и со взаимодействием с драйвером карты...

Цитата Сообщение от assemblerist Посмотреть сообщение
То есть – это мертвоё дело?
Да, именно к этому я и вел...
Это будет возможно, если крупная компания будет в этом заинтересована. Но глядя на соврменное программирование... Это вряд ли случится.
1
 Аватар для STRATEG
1174 / 480 / 83
Регистрация: 04.03.2010
Сообщений: 1,019
13.08.2010, 19:14
В ассемблере я не силен,но глянь вот этот файлик. Там вывдиться красивый огонь на асме. Как именно и что я не знаю. Думаю тебе легче разобраться.
Вложения
Тип файла: rar Fire.rar (3.3 Кб, 168 просмотров)
0
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
13.08.2010, 19:55
А это программа для ОС дос
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.08.2010, 19:55
Помогаю со студенческими работами здесь

Объясните подробно, как работать с графикой
Вот вопроса с форума https://www.cyberforum.ru/pascalabc-net/thread1113644.html Там просили написать программу, которая бы создавала круг...

Не могу понять, как работать с графикой
Есть примитивная программа. Создаётся Frame, в нём создаётся Panel, далее в методе paintComponent рисуется линия. Как теперь человеческими...

Подскажите как в java работать с 3D графикой?
люди кому не трудно помогите. подскажите как в java работать с 3D графикой. скажите какие библиотеки, как использовать и примеры...

Как работать с графикой в редакторе графов?
Здравствуйте! У меня такая проблема: я хочу сделать графический редактор графов (это моя курсовая), и я не знаю как и через что можно...

Как работать с графикой windows.h c++ в CodeBlocks
Нужно зарисовать многоугольник и кружочки. Сделать, чтобы кружочки двигались по контуру эллипса и уменьшались. Рисунок уже есть, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru