|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.08.2017, 15:19 | #1 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
Нумерация бит в ОЗУ и регистрах
Всем доброго дня.
Пишу на ассемблере FASM. При переходе из Real Mode в Protected Mode происходит какая-то фигня. В GDT - есть сегмент видеопамяти [Адрес: 08B00h] Но на экран ничего не выводится. Просто сразу переходит в jmp $ Так вот может я не правильно заполняю регистр GDTR или сегменты. То есть пример: Код:
Главное я хочу понять нумерацию битов в переменных (db ,dd ,dq) в регистрах (ax,cx) в регистре (gdtr) Спасибо. Последний раз редактировалось Serge_Bliznykov; 23.08.2017 в 15:23. |
23.08.2017, 18:18 | #2 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
А вот элементы массивов напротив нумеруются с слева на права. В числах разряды идут как и в регистрах справа налево. 2017-08-23_18-30-51.png 2017-08-23_18-37-49.png Физический адрес видео памяти 0b8000h. Мало того что две цифры местами перепутали, так ещё и нолик потерялся. Это сегмент кода, не данных. Тем более у него запрещено чтение. Так что как вы писали в видеопамять непонятно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 23.08.2017 в 18:46. |
|
23.08.2017, 19:47 | #3 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
Спасибо.
То есть мне надо загружать сегменты в Protected mode. Код:
Код:
И спасибо за картинки. Понятно объяснил. |
23.08.2017, 20:12 | #4 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Да,только правильно заполните таблицу GDT. С правильными дескрипторами, для каждого сегмента.
Надеюсь поможет:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 23.08.2017 в 20:16. |
23.08.2017, 20:15 | #5 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
|
23.08.2017, 20:40 | #6 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
Не хочет работать:
Таблица GDT: Код:
Код Protected Mode: Код:
Пытался так, но fasm ругается "Invalid operand": Код:
|
23.08.2017, 20:58 | #7 |
(aka Jin X) !RTFM!
Форумчанин
Регистрация: 14.12.2014
Сообщений: 295
|
Найди различия в этих картинках:
Код:
Код:
Делаю лабы на Asm/Delphi/C++/Python/VBA(Excel): asmlabs.ru
|
23.08.2017, 20:59 | #8 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Nikolay2015
Приведите весь код целиком.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
23.08.2017, 21:01 | #9 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
|
23.08.2017, 21:03 | #10 |
Пользователь
Регистрация: 23.08.2017
Сообщений: 59
|
Вот полный код:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перевод программы с 32 бит на 64 бит систему | andreyxdd | Общие вопросы Delphi | 3 | 19.07.2017 11:04 |
Исправить код программы: Ввести с клавиатуры 8-разрядное двоичное число Х, установить младший бит этого числа так, чтобы количество единичных бит в двоичном числе Х стало четным | Zhan1234 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 25.05.2017 12:41 |
ОЗУ | esa2esa | Компьютерное железо | 2 | 29.12.2010 20:45 |
Ковертирование из png 24 бит в png 8 бит | isat | Общие вопросы .NET | 0 | 22.03.2010 13:38 |