IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> подфункция 03h функции 10h прерывания Int 10h, и как же это всё работает-то...
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Женский

Репутация: -  0  +


привет всем smile.gif
помогите пожалста разобраться с сабжем. на сколько я знаю эта подфункция переключает 7-ой бит байта атрибутов, который управляет мерцанием символов, тока вот интересно как оно работает...
мне надо в цикле переключать значение этого бита, так чтобы цвет сиволов на экране менялся соответсвующим образом.
я лабу сделала, но мне надо именно эту функцию там употребить.. помогите плиззз
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


Infinity
----
смотри присоединенный файл он на PAS, но целиком все сделанно
на ASSEMBLERE Думаю переделать не составит труда
----
Вот изменение атрибутов символа на экране, но только через видеопамять
напрямую.. думаю пригодится
----
Сама программа неимеет оптимизаций и т.д. она просто работает
----
там именно в видеопамять пишеться аттрибут символа и код самого символа
    mov ax,0b800h
   mov es,ax

адресс видопамяти в текстовом режиме
    lea si,S
   mov ah,0
   mov al,[si]

грузим адрес строки причем
в ah = 0 ,а в al - код символа
    mov cx,ax
   inc si

первый симол это длина строки я ее не пропускаю т.к.
она потом мне нужна будет для счетчика цикла
----------------
cохраняем регитр ax и увеличиваем счетчик
т.е. переходим на след символ

@out:
   mov al,[si] {Symbol}
   mov ah,c    {attribut}
   inc si      {nex symbol}
   mov es:[di],ax  {to video memory}
   inc di      {movenau to video memory}
   inc di      {increment 2 se also for 1 symbol 2 byte memory}
   loop @out

ню вот в al код символа,
а в ah аттрибут символа
переход на след символ
пишем все это в память т.е. на экран выводим
переходим в видеопамяти дальше
повтор пока не выведем всю строку smile.gif
======================
    push ds
   mov ax,ss
   mov ds,ax

т.к. это PASAL а Я все это сделал в процедуре, а в процедуре
начала блока данных идет от стека
---
адрес DS сегмента данных нужно сохранить
----
а потом востановить при выходе из процедуры
    pop ds

------
Справочная литература
В.Ю. Пирогов ASSEMBLER учебный курс


Сообщение отредактировано: volvo -


Прикрепленные файлы
Прикрепленный файл  TEXT_VID.zip ( 499 байт ) Кол-во скачиваний: 420


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Cialis Von Lilly Lycos
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 9.05.2024 11:12
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name