Форум программистов, компьютерный форум, киберфорум
ОС на Assembler
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
1

Как считать строку из видеопамяти?

16.09.2013, 10:14. Показов 1883. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужно считать несколько символов с диапазона 0xB8000-0xB8008.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2013, 10:14
Ответы с готовыми решениями:

Как считать сколько видеопамяти сьедает разрешение экрана?
Вот нашел 1 видиаху и там в отзывах написано следующее:"Сможет ли работать с разрешением...

Как считать строку scanf'ом при этом не переходя на новую строку, т.е. без использования Enter'а
Как считать строку scanf'ом при этом не переходя на новую строку, т.е. без использования Enter'а,...

не могу понять реальный объём видеопамяти. (Ноут за 10к с 6 ГБ видеопамяти О_о)
Друг реши себе ноут взять на авито. Вот вижу такое объявление: Тыц Заголовок товара: Мощный HP...

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

18
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
16.09.2013, 11:02 2
mashuly,
читай через один (символ+атрибут) командой lodsw (mov ax,[esi]/ esi+=2)
0
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
16.09.2013, 13:24  [ТС] 3
из адаптера будет считываться сам символ или его адрес?
0
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
16.09.2013, 16:27 4
mashuly, символ и его цветовой атрибут
0
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
16.09.2013, 18:54  [ТС] 5
Assembler
1
mov eax,[esi]
т.е в eах будет символ,который,если поместить в edi и указав позицию в esi,можно вывести? где об этом можно почитать?

Добавлено через 21 минуту
Assembler
1
2
3
4
5
6
Mov esi,; Адрес видеопамяти
Mov edi,[string2]
Movsd
 
stosd
string2 db '12345678',0
?
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
17.09.2013, 13:21 6
mashuly,
в EAX будет уже два символа с атрибутами
Цитата Сообщение от mashuly Посмотреть сообщение
где об этом можно почитать?
Спика литературы в твоём ВУЗе не дают?
0
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
17.09.2013, 13:37  [ТС] 7
Цитата Сообщение от Mikl___ Посмотреть сообщение
mashuly,
в EAX будет уже два символа с атрибутамиСпика литературы в твоём ВУЗе не дают?
в каком еще ВУЗе?
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
17.09.2013, 13:38 8
mashuly - не студент?
0
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
17.09.2013, 13:45  [ТС] 9
Цитата Сообщение от Mikl___ Посмотреть сообщение
mashuly - не студент?
нет.
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
17.09.2013, 14:26 10
Читать из защищённого режима надо?
0
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
17.09.2013, 14:28  [ТС] 11
Цитата Сообщение от murderer Посмотреть сообщение
Читать из защищённого режима надо?
да.
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
17.09.2013, 15:15 12
ЕМНИП для начала нужно создать дескриптор для этой области памяти. В Windows есть функция MmMapIoSpace на входе принимает физический адрес, возвращает виртуальный.
0
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
17.09.2013, 15:31  [ТС] 13
Цитата Сообщение от murderer Посмотреть сообщение
ЕМНИП для начала нужно создать дескриптор для этой области памяти. В Windows есть функция MmMapIoSpace на входе принимает физический адрес, возвращает виртуальный.
с этим то все ок. мне не понятен сам принцип работы строковых операций и формат выхода из видеопамяти
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
18.09.2013, 04:33 14
Цитата Сообщение от mashuly Посмотреть сообщение
мне не понятен сам принцип работы строковых операций и формат выхода из видеопамяти
Хоть mashuly и нестудент, но учебник по-ассемблеру читать по-любому нужно, здесь список книг, которые "на раз" находятся в инете
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
18.09.2013, 06:20 15
формат выхода из видеопамяти
http://www.frolov-lib.ru/books/bsp/v21/ch3_2.htm

Для кодирования каждого знакоместа экрана (символа) используются два байта. Первый из них содержит ASCII-код отображаемого символа, а второй - атрибуты символа (рис. 3.3). Атрибуты символа определяют его цвет и цвет фона.
0
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
19.09.2013, 12:08  [ТС] 16
Assembler
1
2
3
4
5
6
7
mov edi, text_bufer ;куда записываем
xor al, al  ;Обнуляем
Cld    ;Сбросить флаг
rep scasb  ;Сканируем
mov esi, 0xB8000  ;Откуда начинаем копирование
mov ecx,6  ;Число копируемых символов*2
rep movsb ;Копируем байты
но вместо 'abc' выдает 'a◊b◊c◊'.хотя этого достаточно.есть ли способ сравнить подобную строку?
0
4165 / 1817 / 216
Регистрация: 06.10.2010
Сообщений: 4,074
19.09.2013, 12:23 17
Assembler
1
2
3
4
mov ecx,6
@@:mov al,[0xB8000+ecx*2-2]
   mov [text_bufer+ecx-1],al
loop @b
1
217 / 53 / 4
Регистрация: 03.08.2013
Сообщений: 278
20.09.2013, 23:47  [ТС] 18
ну и последний вопрос,каков атрибут черного фона и белого цвета символа? 07h?
0
Ушел с форума
Автор FAQ
16279 / 7604 / 1065
Регистрация: 11.11.2010
Сообщений: 13,617
21.09.2013, 05:14 19
Цитата Сообщение от mashuly Посмотреть сообщение
каков атрибут черного фона и белого цвета символа? 07h?
07h это серый на черном, белый на черном - 0Fh
0
21.09.2013, 05:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2013, 05:14
Помогаю со студенческими работами здесь

Как считать строку?
Зачем надо при считывания переменной типа string надо писать getline(cin, ...)? Зачем там cin? ...

Как считать строку из Мemo?
Привет всем. У меня такая проблема, я писал проги в консольном режыме после чего мо препод сказал...

Как правильно считать строку?
У меня в файле лежит некое число. Далее я считываю строку и записываю ее в переменную. При...

Как считать нужную строку?
Нужно считать определенную строку из файла. System.IO.FileStream files=new...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru