2
ответа

Куда указывает указатель SI, когда он указан для указания смещения?

Заранее извиняюсь, если это дублирующий вопрос. Я немного запутался в следующем коде: list db 80h, 70h, 60h, 50h, 40h, 30h, 20h mov si, смещение списка move al, [si] repit: inc ...
вопрос задан: 17 March 2019 23:44
1
ответ

Что делает флаг D в дескрипторе сегмента кода для инструкций x86-64?

Я пытаюсь понять работу флага D в дескрипторе сегмента кода при использовании в коде x86-64. Он установлен в бит 22 D / B дескриптора сегмента кода, как показано на этой диаграмме: ...
вопрос задан: 13 July 2018 09:36
1
ответ

x86-64 и дальние вызовы / переходы

Быстрая сводка: в x86-64 режиме являются столь же медленными далекие переходы как в x86-32 режиме? На x86 процессоре переходы попадают в три типа: короткий, со смещенным ПК из +/-127 байты (2 байтовых команды) рядом, с +/...
вопрос задан: 15 January 2013 08:31
0
ответов

Сегментация памяти в современных операционных системах

При изучении операционных систем (в первую очередь с использованием Linux в качестве справочника) есть несколько моментов, которые я не нахожу хорошо объясненными в изученном мной материале. Программы, загружаемые в память, часто ...
вопрос задан: 17 August 2019 10:35
0
ответов

Подробно о MSR _GS _BASE в linux x86 64

Я попытался выяснить подробности текущего MACRO в ядре Linux. Окончательный ассемблерный код текущего: :movq %%gs :0xb000,%0 Приведенный выше код может работать! Но когда я печатаю %%gs, его значение равно 0, поэтому...
вопрос задан: 19 April 2019 02:08
0
ответов

Почему Linux на x86 использует разные сегменты для пользовательских процессов и ядра?

Итак, Я знаю, что Linux использует четыре сегмента по умолчанию для процессора x86 (код ядра, данные ядра, код пользователя, данные пользователя), но все они имеют одинаковую базу и ограничение (0x00000000 и 0xfffff), то есть каждый ...
вопрос задан: 9 November 2015 16:49
0
ответов

Какой будет выход этого? Пожалуйста, объясните это также [закрыто]

#include int main () {int a; printf ("% u \ n", & a); printf ("% p \ n", a); printf ("% p \ n", & a); printf ("% fp \ n", & a); вернуть 0; } Я пробовал этот код, но не могу ...
вопрос задан: 26 January 2014 09:46
0
ответов

Как перекрытие сегментов реального режима x86 помогает экономить память?

Я учу своих 12-летних. 8086 ассемблер и вчера мы говорили о памяти, адресации и сегментации. Я показал ему, как сегменты можно визуализировать как последовательность перекрывающихся блоков по 64 Кб ...
вопрос задан: 15 January 2013 09:13
0
ответов

Как использовать логический адрес в gdb?

gdb обеспечивает функциональность для чтения или записи по определенному линейному адресу, например:(gdb )x/1wx 0x080483e4 0x80483e4 <основной> :0x83e58955 (gdb )но как указать логический адрес...
вопрос задан: 15 January 2013 08:39
0
ответов

Подкачка или сегментация виртуальной памяти, что лучше?

Большинство операционных систем используют подкачку для виртуальной памяти. Почему это? Почему бы не использовать сегментацию? Это просто из-за проблемы с оборудованием? В определенных случаях один лучше другого? По сути, если бы вам пришлось выбира
вопрос задан: 15 January 2013 08:37