Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Пётр Нефедов
5 / 5 / 2
Регистрация: 04.10.2010
Сообщений: 206
1

Видеопамять, вопрос про физический адрес B800h

06.04.2012, 20:50. Просмотров 1410. Ответов 3
Метки нет (Все метки)

Всех приветствую!
Интересует одна особенность, на которую не смог найти ответа в нескольких книгах.
Начну: одна строка терминала занимает в видеопамяти = 80 символов * 2 байта =160 байт.
К примеру, если необходимо записать символ в 7 позицию 5 строки, то полное смещение от начала видеопамяти для нашего случая будет 160*(5-1)+2*(7-1)=652=28Сh .
Вопросы: почему вычитаем 1? и даже отняв 1'цу символ все равно записывается "в место" (7;5), а не (6;4) ? Почему это так происходит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2012, 20:50
Ответы с готовыми решениями:

Физический адрес.
как получить физический 20ти разрядный адрес. Объсните пожалуйста, лучше всего...

Физический адрес -4 гига
вот есть код mov esi,00400000h mov lodsd запустим его в одной проге , eax...

Определить физический адрес в памяти второго операнда
Здраствуйте, есть такое задание, ничего писать не нужно, а определить вручную:...

Как разбить физический адрес на сегменты смещения 4 способами?
подскажите как разбить физический адресс на сегменты смещения 4 способами если...

Определить физический адрес ячейки ОП, содержащий байт данных, обрабатываемый инструкцией: MOV DH , [BP+10]
Пусть в данный момент времени некоторые регистры содержат : (BP)=08A9h...

3
HITMAN
Absolution
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,779
06.04.2012, 23:25 2
Пётр Нефедов, возможно я не понял вопрос, но речь вроде идёт о массиве.
Количество столбцов 80, а количество строк неважно нам то нужна 5. Размер элемента 2 байта.
Вычислим адрес строки, 80 * 2 * (5-1) = 640 {-1 т.к. элементы массива в данном случае строки индексируются от 0 до 79}
Вычислим адрес столбца 640 + 2 * (7-1) =652=28Сh как у вас. {-1 по той же причине здесь столбцы}
Это ответ на вопрос 1.
А на дисплей выводится верно куда и надо здесь координатная сетка и по строкам начинается с 1 и до 80, а по позициям с 1 и выше.
Это ответ на вопрос 2.
Куда хотели туда и записали, что не так?
1
Пётр Нефедов
5 / 5 / 2
Регистрация: 04.10.2010
Сообщений: 206
07.04.2012, 14:23  [ТС] 3
IOAN, благодарю за разъяснения.
На первый вопрос так же ответил, про индексацию элементов с 0.
Но со вторым чувствую сглупил очень сильно
0
HITMAN
Absolution
155 / 125 / 3
Регистрация: 22.06.2011
Сообщений: 1,779
07.04.2012, 15:13 4
Пётр Нефедов, всего наилучшего.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2012, 15:13

низкоуровневый вопрос про с++
Добрый вечер помогите пожалуйста разобраться и понять, если вам не сложно....

Теоретический вопрос про переменные
У меня следующий вопрос. Предположим в тексте программы объявлена переменная в...

Assembler (AT&T, 64bit). Вопрос про argv
Здравствуйте. Читаю учебник по ассемблеру, пытаюсь запустить вот эту...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru