Я хотел бы проверить, как работает аппаратное обеспечение, если я пытаюсь записать в сегмент (например, сегмент данных, отличный от DS, возможно, GS) только для целей тестирования ... Есть ли сборка инструкции, которые позволяют мне указать сегмент wit.h смещение и напрямую написать ему?Запись в сегмент в x86
1
A
ответ
1
Для записи в определенный сегмент вы должны сначала загрузить номер сегмента в регистр сегментов, а затем выполнить загрузку с соответствующим префиксом сегмента. Например, чтобы получить доступ к 0x1234:0x5678
, вы можете сделать что-то вроде этого (в AT & T-синтаксис):
push $0x1234
pop %es
mov %es:0x5678,%eax
Смежные вопросы
- 1. сборка запись в файл x86
- 2. Распечатать запись в сборке x86
- 3. Запись байта в файл с ассемблером x86
- 4. x86 сборка чтение/запись в файл
- 5. Может ли сегмент стека и данных на x86 перекрываться?
- 6. Какой сегмент используется по умолчанию для косвенной адресации x86?
- 7. Размер переменных в x86
- 8. c - запись в сегмент разделяемой памяти вызывает ошибку сегментации
- 9. log4net: запись заголовка в каждый сегмент журнала опрокидывания
- 10. Таблица дескрипторов прерываний в x86
- 11. Чтение/Запись в память в сборке MASM x86
- 12. Включение пейджинга в x86 Qemu
- 13. Возможно захватить запись на адрес (x86 - linux)
- 14. многоядерный x86 чтение или запись несогласованных данных
- 15. Запись быстрее, чем чтение на x86?
- 16. "Динамический сегмент" в Ember.js?
- 17. Сегмент линии в треугольнике
- 18. Запись сборки x86 на процессоре x64 бит
- 19. Общий объем заказа на покупку и запись в x86 (-64)
- 20. Запись под курсором в сборке x86 с использованием сопоставленной видеоизображения
- 21. Сегмент игнорируется в эффективном адресе с nasm
- 22. C Linux чтение/запись слова из памяти (сегмент, смещение)
- 23. Комбинированный сегмент данных и сегмент bss
- 24. Необязательная строка сегмент в Pyparsing
- 25. Сегмент данных в Compiler Construction
- 26. сегмент обновления хэша в рубин
- 27. Нарисуйте круговой сегмент в SWIFT
- 28. Сегмент серого вещества в matlab
- 29. Прочитать wav-сегмент в matlab
- 30. Неизвестный сегмент в транзакции NewRelic
Благодаря @FUZxxl для воспроизведения, но я до сих пор путаются 1 вещь. Не является ли команда mov просто обновлять регистр сегментов новым селектором, я имею в виду, что такое diffrence, если я сделал это (mov% es,% eax) из этого с prefeix? Использует ли prefeix фактически запись внутри сегмента? Потому что я в основном хочу писать внутри сегмента, я сам не просто обновляю сегментную рег. с новым селектором. –
@ user2628079 Первая инструкция подталкивает значение в стек, вторая команда загружает это значение в регистр сегмента. Это потому, что нет команды 'mov $ 0x1234,% es'. Третья команда извлекала четыре байта в addres '0x5678' в сегменте, описанном'% es', и хранит их в '% eax'. Обратите внимание, что я использую AT & T-синтаксис здесь. Если вы более знакомы с синтаксисом Intel, я могу обновить пример использования синтаксиса Intel. – fuz