Вопросы по теме 'memory-segmentation'
проверка предела сегмента в 64-битном режиме AMD
Я пишу свою ОС для 64-битных процессоров и застрял с проблемой общей защиты. Моя ОС не будет полагаться на ошибку страницы для реализации механизма защиты пространства пользователя, поэтому я обнаружил, что есть способ сделать это с помощью проверки...
1423 просмотров
schedule
17.09.2021
Доступ к TIB в Win32
Углубляемся в реализацию функций Win32 API, которые работают с TIB, например:
Функции доступа TLS: TlsAlloc , TlsFree , TlsSetValue , TlsGetValue
GetLastError , SetLastError
подсистема обмена сообщениями: GetMessage , PeekMessage и...
803 просмотров
schedule
09.10.2021
Переход на дальний адрес в реальном режиме
У меня есть ситуация, когда мне нужно перейти на дальний адрес в реальном режиме, у меня есть значение сегмента в регистре fs и смещение в регистре gs , и во время перехода я должен поддерживать точное содержимое регистра, я придумал один идея как...
1118 просмотров
schedule
13.10.2021
Что делает флаг D в дескрипторе сегмента кода для инструкций x86-64?
Я пытаюсь понять, как работает D flag в дескрипторе сегмента кода при использовании в коде x86-64. Он установлен в D/B бите 22 дескриптора сегмента кода, как показано на этой диаграмме:
Документация Intel (из раздела 3.4.5 Дескрипторы...
647 просмотров
schedule
08.10.2021
Генерация адреса инструкции с использованием сегмента кода и указателя инструкции
Считайте, что адресом сегмента кода будет FE00, а указателем инструкции - ABBE. Сдвиг сегмента кода на 4 бита и добавление указателя инструкции приводит к дополнительному переносу. Как мы представляем сгенерированный адрес?
179 просмотров
schedule
27.11.2021
Роль сегментации памяти в современных архитектурах
Как мы знаем, в наши дни доступны многопроцессорные архитектуры, такие как двухъядерные, Core i3, i5, которые могут иметь много гигабайт оперативной памяти. Мой вопрос заключается в том, что защита памяти с помощью сегментации все еще доступна в этих...
49 просмотров
schedule
25.04.2022
Что такое регистр %fs:‹num› в ассемблере gnu?
Этот простой код c:
файл bar.c :
#include <stdio.h>
#define BSIZE 5
typedef struct
{
int count;
int ar[BSIZE];
} foo;
int main()
{
foo f = {.count = 0};
printf("%ld\n",sizeof(foo));
}
который выводит 24...
117 просмотров
schedule
16.05.2022
Пользовательское хранилище TIB
После некоторого поиска в Google и нескольких подсказок, данных здесь , мне наконец удалось найти макет сегмента FS (используется Windows для хранения данных TIB). Особый интерес для меня представляет элемент ArbitraryUserPointer ,...
1206 просмотров
schedule
11.06.2022
(С++ 11) В чем разница между статическим массивом и динамическим массивом с инициализированным списком?
Например, есть массив int с тысячами элементов:
static int st_indices[9999] = {
0, 27, 26, 1, 41, 71, 0, 26, 101, 0, 101, 131, 0, 131, 72,
1, 71, 176, 2, 56, 206, 3, 116, 236, 4, 146, 266, 5, 161, 296,
.........
343 просмотров
schedule
02.07.2022
Где бы мне найти конкретные адреса функций в LibC объектных файлов?
Я пытаюсь найти адрес функции в libc.
Я знаю, что могу сделать что-то подобное в C:
printf("%x", (int) system);
Но я не знаю, если это дает мне базовый адрес системной функции в LIBC. Я предполагаю, что это дает какой-то косвенный...
5546 просмотров
schedule
09.08.2022
Пейджинг или сегментация для виртуальной памяти, что лучше?
Большинство операционных систем используют пейджинг для виртуальной памяти. Почему это? Почему бы не использовать сегментацию? Это только из-за аппаратной проблемы? Является ли один лучше другого в определенных случаях? По сути, если бы вам...
7005 просмотров
schedule
13.04.2023
Что такое% gs в сборке
void return_input (void)
{
char array[30];
gets (array);
printf("%s\n", array);
}
После компиляции в gcc эта функция преобразуется в следующий ассемблерный код:
push %ebp
mov %esp,%ebp
sub $0x28,%esp
mov...
20161 просмотров
schedule
27.04.2023
непосредственные (квадратные скобки) и индексные регистры + файлы с 2x dw в сегменте стека
Я очень новичок в ассемблере и пытаюсь изучить его, разбираясь в дизассемблировании старой 16-битной игры для DOS (дизассемблирование, сгенерированное IDA Free).
В этом коде я прочитал две вещи и, думаю, догадался, что он делает. Тем не менее, я...
236 просмотров
schedule
20.05.2023
Различия или сходство между сегментацией по страницам и сегментацией по страницам?
Я изучал комбинированные системы разбиения по страницам / сегментации, и в моей книге было два подхода к этому:
1.paged segmentation
2.segmented paging
Я не мог разглядеть разницу между ними. Я думаю, что при постраничной сегментации сегмент...
27739 просмотров
schedule
21.11.2022
Какой метод трансляции виртуальной памяти (рассмотрите x86) используется обычно?
Известно, что существуют различные виды трансляции виртуальных адресов (x86) с помощью MMU, такие как сегментация, пейджинг, комбинированная сегментация-пейджинг (Paged segmentation, Segmented Paging) и т. д. Каждый из них имеет свои преимущества и...
255 просмотров
schedule
03.12.2022
Проверка уровня привилегий при доступе к сегменту кода
Я пытаюсь понять некоторые особенности архитектуры Intel x86. Я еще не очень понял механизм шлюза вызова, но без него для доступа к несовместимому сегменту кода его DPL должен быть равен CPL.
Я понимаю, что это важно в случае DPL‹CPL, но почему в...
2690 просмотров
schedule
27.02.2023
Как получить доступ к регистру сегментов без ссылки на libc.so?
Я пытаюсь закодировать простую канарейку стека в 64-битной сборке, используя NASM версии 2.15.04 в Ubuntu 20.10. Выполнение приведенного ниже кода приводит к ошибке сегментации при сборке и связывании с помощью команды nasm -felf64 canary.asm...
55 просмотров
schedule
13.07.2023
Несогласованный результат инструкции SCAS
Я новичок в программировании на ассемблере. Вот мои 2 кода:
1-й - из поиска в Интернете
.DATA
BLOCK DB 'You & Me'
COUNT DW 13
SEARCH DB '&'
FOUND DB 'String Found$'
NOTFOUND DB 'String NOT Found$'
.CODE
.STARTUP
MOV AX, @DATA
MOV DS,...
26 просмотров
schedule
05.01.2023
Предел памяти 32-битной сегментированной модели сборки
Если бы 32-разрядная операционная система работала с сегментированной моделью памяти, было бы ограничение на 4 ГБ ?
Я читал Руководство разработчика семейства процессоров Intel Pentium , в котором говорится, что с помощью модели сегментированной...
2775 просмотров
schedule
27.11.2023
g++: отключить использование сегментного регистра
Я работаю над анализом двоичного кода и реверс-инжинирингом над x86 32-bit Ubuntu 14.04 . Я использую g++ 4.8.4 для компиляции программы C++ .
Мне интересно, можно ли запретить компилятору использовать регистры сегментов. Например, gs ....
233 просмотров
schedule
21.12.2023