Запись в сегмент в x86
Я хотел бы проверить, как работает аппаратное обеспечение в случае, если я пытаюсь записать в сегмент (например, сегмент данных, отличный от DS, может быть, GS) только для целей тестирования... Есть ли инструкция по сборке, которая позволяет мне указывать сегмент смещение и прямая запись в него?
1 ответ
Решение
Чтобы записать в определенный сегмент, вы должны сначала загрузить номер сегмента в регистр сегмента, а затем выполнить загрузку с соответствующим префиксом сегмента. Например, для доступа 0x1234:0x5678
, вы можете сделать что-то вроде этого (в AT&T-синтаксисе):
push $0x1234
pop %es
mov %es:0x5678,%eax