Вопросы по теме 'memory-segmentation'
Как сделать 20-битный адрес, используя два 16-битных регистра?
IAPX88 может работать с 1 мегабайтом памяти (20-битная адресация), теперь мой вопрос заключается в том, как мы можем сделать 20-битный адрес, используя два 16-битных регистра. Пожалуйста, приведите пример.
1815 просмотров
schedule
14.06.2023
Селектор сегментов 8086
Есть какой-то «супервизор», чтобы не позволить «пользовательскому пространству» делать что-то вроде: mov CS, 200h ?
Какая защита есть?
Спасибо
494 просмотров
schedule
07.07.2023
Почему Linux на x86 использует разные сегменты для пользовательских процессов и ядра?
Итак, я знаю, что Linux использует четыре сегмента по умолчанию для процессора x86 (код ядра, данные ядра, пользовательский код, пользовательские данные), но все они имеют одинаковую базу и ограничение (0x00000000 и 0xfffff), что означает, что каждый...
6150 просмотров
schedule
16.08.2022
Как перекрытие сегментов реального режима x86 способствует экономии памяти?
Я учу своих 12 лет. 8086 на ассемблере, и вчера мы говорили о памяти, адресации и сегментации. Я показал ему, как сегменты можно визуализировать как последовательность перекрывающихся блоков по 64 КБ, начиная с 16-байтовых границ, со смещением в...
3015 просмотров
schedule
03.05.2023
Вопросы по карте процесса
Здесь я запускаю два экземпляра одной и той же программы в двух разных терминалах. Карта процесса из них
В первом терминале -
vikram@vikram-Studio-XPS-1645:~$ pmap 6548
6548: ./a.out
0000000000400000 4K r-x-- /home/vikram/a.out...
358 просмотров
schedule
30.05.2023
Использование регистров сегментации
Я пытаюсь понять, как управление памятью происходит на низком уровне, и у меня есть пара вопросов.
1) В книге Кипа Р. Ирвина о языке ассемблера говорится, что в реальном режиме первые три сегментных регистра загружаются с базовыми адресами кода,...
1822 просмотров
schedule
11.06.2022
Ошибка сегментации в конструкторе
Это происходит с КАЖДЫМ классом, который я пытаюсь создать на C ++. При переходе с java проблемы возникают в основном при создании классов. Я запускаю valgrind и, похоже, он в конструкторе.
==30214== Memcheck, a memory error detector
==30214==...
1358 просмотров
schedule
06.11.2022
Использование GDB для чтения MSR
Есть ли способ прочитать регистры, специфичные для модели x86-64, в частности IA32_FS_BASE и IA32_GS_BASE, при отладке программы с использованием GDB?
Менее предпочтительным было бы решение с использованием динамического пакета инструментов, такого...
1834 просмотров
schedule
18.12.2022
Ошибка сегментации (дамп ядра) - не удается исправить ошибку
У меня возникли проблемы со следующим фрагментом кода. Я использую Boost для умножения матриц. Я использую Gtesting для проверки своего кода. Когда я тестирую следующий бит кода, я получаю следующую ошибку.
Segmentation fault (core dumped)...
243 просмотров
schedule
17.01.2023
Зачем иметь два перекрывающихся сегмента данных (например, в ядре Linux)?
В ядре Linux, а также во многих онлайн-учебниках по x86 я вижу, что люди рекомендуют использовать два сегмента кода и два сегмента данных. Я понимаю необходимость двух сегментов кода, поскольку CPL должен точно соответствовать DPL (для...
376 просмотров
schedule
13.01.2023
Какой сегментный регистр используется по умолчанию?
Я изучаю компьютерную архитектуру по Руководству Intel. Я понимаю, что инструкции, которые мы даем, являются логическими адресами, которые состоят из селектора сегмента и смещения. Это в основном CS register<<4 + offset . Segment Selector...
4447 просмотров
schedule
24.06.2023
Как сегментация позволяет совместно использовать код или данные?
Я читал, что есть сегменты каждого процесса (сегмент стека, сегмент кода), и каждый виртуальный адрес имеет номер сегмента и смещение, эта схема позволяет совместно использовать код между процессами. Я не понял идею поделиться, пожалуйста, объясните...
303 просмотров
schedule
10.06.2023
Есть ли какая-то особая причина для STOSB использовать дополнительный сегмент?
Я читал, что STOSB работает следующим образом:
ES:[DI] <-- AL
Если DF = 0 увеличить DI иначе уменьшить DI .
Так почему же STOSB не меняет DS:[DI] ?
Есть ли особая цель использования дополнительного сегмента?
В...
197 просмотров
schedule
19.04.2023
Каков теоретический пример использования GDT?
Я следую прохождению GDT . Я могу понять, как реализована структура данных и ее назначение.
Однако я не понимаю, как используется GDT. В каком сценарии ЦП необходимо загрузить сегмент и как это делает GDT? Если GDT участвует в прерывании,...
247 просмотров
schedule
19.03.2023
Директива ASSUME с использованием masm
Я пытался написать ассемблерный код с использованием ASSUME, но продолжаю получать ошибки, причины которых я не смог выяснить. Вот пара примеров: Пример 1
.286
.model medium, c
pproc typedef ptr proc
.data
dummy db ?
.code
assume bx:ptr pproc...
613 просмотров
schedule
04.10.2022
Поток локального реального использования нижележащих сегментных регистров
Я прочитал ряд статей и ответы S / O, в которых говорилось, что (в linux x86_64) FS (или GS в некоторых вариантах) ссылается на запись таблицы страниц, зависящую от потока, которая затем дает массив указателей на фактические данные, которые доступны...
136 просмотров
schedule
03.09.2022