Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

768

Россия, Северодвинск


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

343

Россия, пос. Теплоозёрск, ЕАО


ID: 401284

Михаил Александров

Академик

278

Россия, Санкт-Петербург


ID: 325460

CradleA

Мастер-Эксперт

209

Беларусь, Минск


ID: 137394

Megaloman

Мастер-Эксперт

158

Беларусь, Гомель


ID: 400815

alexleonsm

6-й класс

130


ID: 400669

epimkin

Профессионал

120


8.8.15

09.05.2021

JS: 2.8.21
CSS: 4.5.5
jQuery: 3.6.0
DataForLocalStorage: 2021-05-15 03:46:17-standard


Создание программ на языке Assembler.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 159426

Раздел: Assembler
Автор вопроса: Arshvin
Дата: 02.02.2009, 20:34 Консультация закрыта
Поступило ответов: 1

Здравствуйте, уважаемые эксперты низкоуровневого программирования smile . Недавно обратились люди, просили помочь с асмом, точнее с заданиями для экзамена. Обратились "во-время"....как говорится нужно вчера. Я согласился посмотреть, как бы ни к чему себя не обязывая, то есть что -то подсказать, объяснить если что-то непонятно, при условии, что мне предоставят инфу, которая давалась во время данного курса, что бы самому ее не искать. Информация действительно была "информативная" (пардон за тавтологию) - это само задание smile Отказывать уже поздно, и времени нет всвязи с работой. В приложении приведу сами задания. Не могли бы вы подсказать некоторые основные моменты для решения этой задачи? По большому счету я думаю программа (-мы) элементарная (-ые), только есть кое какие не совсем понятные моменты, а именно:
1) 13h- я так понимаю режим текстовый, то есть минимальная выводимая единица на монитор - это знакоместо а не пиксель (точка). Просто было все таки немного времени порыться в инете и кое что нашел, но это ввело меня в заблуждение: если это текстовый режим получается 2 этих задания придется "рисовать" в псевдографике? И если честно я вообще не помню что при изучении асма в институте мы что-то рисовали пикселями, поэтому почему то сложилось у меня мнение что асм, точнее рижимы биоса (если не ошибаюсь 10h прерывание) кроме текстового режим не поддерживают больше никакие другие, хотя я понимаю что это глупость smile
2) и вторая непонятная штука для меня - это таблица цветов ЦАП - ну не помню я ее smile
Не могли бы, уважаемые эксперты навести на "путь истинный"? Буду очень признателен как за ссылки, так и за простое объяснение, в частности о структуре данной таблице цветов и ее смещении (как ее найти), и пожалуйста немного о графическом режиме 13h.
Заранее благодарен

Приложение:

Здравствуйте, Arshvin!

Шахматная доска в приложении (задание №2). По программе: программа написана для встроенного ассемблера ТР 7.0. Использованна прямая запись в видеобуфер.
Скачайте книгу: Кулаков В. - Программирование на аппаратном уровне.
В ней Вы найдете много полезной информации по программированию железа, в том числе и программирование ЦАП видеокотролера.

Удачи!

Приложение:


Зенченко Константин Николаевич

Старший модератор
02.02.2009, 22:37
Мини-форум консультации # 159426
Airyashov

1

= общий =    02.02.2009, 22:39

13h режим это 320*200*256 цветов графика
найдите книгу в интернете точно выложена
Фролов А.В., Фролов Г.В. "Программирование видеоадаптеров EGA, VGA и SVGA" там вся информация есть

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

2

= общий =    02.02.2009, 22:47

Описание режимов из книги:

Удачи!

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

q_id

Лысков Игорь Витальевич

Мастер-Эксперт

ID: 7438

3

= общий =    03.02.2009, 02:29

Вот ссылочка на книжку Фроловых
Удачи!

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

Arshvin

4

= общий =    03.02.2009, 11:45

Большое спасибо всем откликнувшимся на мой вопрос. Очень сильно помогли. smile

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

5

= общий =    03.02.2009, 12:08

Arshvin:
Добавил решение первой задачи: программирование регистра ЦАП:

Код
begin
  asm
{сохраняем ссегментный регистр и ставим режим}
      push es
      mov  ax,13h
      int  10h
{будем писать прямо в видео-буфер}
      mov  ax,0a000h
      mov  es,ax
      cld
{пропускаем нулевую строку}
      mov  di,320
      mov  bx,0ffffh
      mov  cx,8
{количество строк по 16-ть пикселей по вертикали}
@001: push cx
      mov  cx,16
{количество пикселей в одной строке по вертикали}
@002: push cx
      mov  cx,8
{количество клеток в одной строке}
@003: mov  dx,bx
      push cx
      mov  cx,16
{количество пикселей в одной клетке, по горизонтали}
@004: xor  ax,ax
      shr  dx,1
      jc   @005
      add  al,100
@005: stosb
      loop @004
{меняем цвет}
      xor  bx,0ffffh
      pop  cx
      loop @003
{корректируем на начало экрана}
      add  di,192
      pop  cx
      loop @002
{меняем цвет повторно}
      xor  bx,0ffffh
      pop  cx
      loop @001
{первая задача}
      xor  ax,ax
      int  16h
{читаем регистр 100}
      mov  ax,1015h
      mov  bx,100
      int  10h
{устанавливаем зеленный для регистра 100}
      xor  dh,dh
      xor  cl,cl
      mov  ch,0ffh
      mov  bx,100
      mov  ax,1010h
      int  10h
{рисуем вертикальную линию, где-то по центру}
      mov  di,160
      mov  cx,200
@000: mov  al,100
      mov  es:[di],al
      add  di,320
      loop @000
      pop  es
{нажмите любую клавишу}
      xor  ax,ax
      int 16h
  end;
end.

Задачи выполняются последовательно.
smile

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Arshvin

6

= общий =    03.02.2009, 12:39

Спасибо большое. Первую сделал, посмотрев по книге этот ЦАП и уже отдал "нуждающимся" (так же как и вторую) Правда незнаю как они будут объяснять почему например использовали такие а не другие команды (ну например цепочечные stosb) - хотя это уже не мои вопросы smile Еще раз благодарен за помощь

q_id

Зенченко Константин Николаевич

Старший модератор

ID: 31795

7

= общий =    03.02.2009, 13:02

smile smile

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 74

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 74

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 0

Evgen aka Chuma

6-й класс

Рейтинг: 0

cain52

3-й класс

Рейтинг: 0

Kdsfofwe21

2-й класс

Рейтинг: 0