Запись в сегмент в x86

Я хотел бы проверить, как работает аппаратное обеспечение в случае, если я пытаюсь записать в сегмент (например, сегмент данных, отличный от DS, может быть, GS) только для целей тестирования... Есть ли инструкция по сборке, которая позволяет мне указывать сегмент смещение и прямая запись в него?

1 ответ

Решение

Чтобы записать в определенный сегмент, вы должны сначала загрузить номер сегмента в регистр сегмента, а затем выполнить загрузку с соответствующим префиксом сегмента. Например, для доступа 0x1234:0x5678, вы можете сделать что-то вроде этого (в AT&T-синтаксисе):

push $0x1234
pop %es
mov %es:0x5678,%eax
Другие вопросы по тегам