Вывод строки с предварительной очисткой экрана |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
Вывод строки с предварительной очисткой экрана |
Account |
20.05.2009 12:24
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: 0 |
Ввот загвоздка такая ,программа была написана, но очищал экран сначала просто выводом символа пробел
n-ое число)), потом вот решил переделать так чтоб очистка производилась 06h функцией в 10h прерывании, вот код
но не пойму в чем дело, очистка ведь производится перед выводом строки, а всеравно происходит затираниее (проверял сдвигая нижный правый угол указываемый в 06h функции 10h прерывания)? |
volvo |
20.05.2009 15:20
Сообщение
#2
|
Гость |
xor cx,cx, хотя строку гораздо проще выводить через mov ah, 9 |
Account |
20.05.2009 17:38
Сообщение
#3
|
Бывалый Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: 0 |
volvo, опять тебе спасибо, что то я в описании данной функции в данном прерывании не досмотрел что это отребут, невнимательность моя)
Но если не трудно объясни, что дает этот атрибут, какая его функция, что то я не догоняю?( mov bh,07h ; <--- Обрати внимание: это - АТРИБУТ Вывод строки такой легче, но требуется именно посимвольный))) Сообщение отредактировано: Account - 20.05.2009 17:43 |
volvo |
20.05.2009 17:47
Сообщение
#4
|
Гость |
Цитата какой толк от данного тогда атрибута? Какой толк? А простой... Тот атрибут, который ты устанавливаешь при вызове функции 06, устанавливается для каждого символа (точнее, для каждой позиции на экране), который был очищен вызовом данной функции. А когда ты выводишь строку, ты устанавливаешь только символы, атрибуты не меняются, какие были, те и остаются. Что значит атрибут 00h, объяснять не надо? Вот и подумай, как будет выглядеть строка, когда ты выведешь ее с данным атрибутом...Можешь воспользоваться функцией 09h того же 10h-прерывания, чтобы выводить символ с атрибутом в текущей позиции курсора, тогда будет неважно, чему равнялся BH при вызове функции "свертка окна вверх (06h)" |
Account |
20.05.2009 17:58
Сообщение
#5
|
Бывалый Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: 0 |
volvo, спасибо за разъяснение. Вспомнил, как то проглядывал уроки Калашникова, там как раз это было когда выводились символы с атрибутами. Так как я не ас в асме, да и особо с атрибутами не часто сталкивался, поэтому и не обратил внимание на описание да и не вспомнил.
Просто восхищаюсь Вашими познаниями и умениями) Сообщение отредактировано: Account - 20.05.2009 17:59 |
Account |
20.05.2009 19:08
Сообщение
#6
|
Бывалый Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: 0 |
volvo, а где можно взять данные по указанию в атрибуде цветовоой гаммы, т.е. коды соответсвующие цветам, я попробовал конечно поэксперементировать, но выяснять что то в ручную все вариации не охото)))
|
volvo |
20.05.2009 19:23
Сообщение
#7
|
Гость |
Младшие 4 бита (0 .. 3) - цвет символа:
0 - черный 8 - серый , следующие 3 бита (4 .. 6) - цвет фона (понятно, что возможны только значения 0 .. 7, то есть, неяркие цвета), самый старший бит - Blink, мерцание символа |
Account |
20.05.2009 19:32
Сообщение
#8
|
Бывалый Группа: Пользователи Сообщений: 212 Пол: Мужской Репутация: 0 |
Спасибо)
|
Текстовая версия | 30.09.2024 10:51 |