ЛОДЫ от ФС (МАСМ)

Я хочу использовать код операции LODS для загрузки двойного байта из FS в EAX. Сегмент по умолчанию, который используется с LODS - это DS, я хочу переопределить это с помощью FS. Как это можно сделать, используя коды операций MASM?

00000000 (02) 6a30                     PUSH 0×30
00000002 (01) 5e                       POP ESI
00000003 (02) 64ad                     LODS EAX, [FS:ESI]

Источник отсюда http://www.ragestorm.net/blogs/?p=369

Большое спасибо, Майкл Энгстлер

2 ответа

1) В будущем не забудьте опубликовать фрагмент кода, если это возможно. Это всегда полезно:)

2) 16-битные инструкции LODS* реального режима всегда предполагают DS, ES и AX. Вы не можете изменить это.

3) Если вы хотите использовать FS, вам также может понадобиться директива "НИЧЕГО НЕ ПРИНЯТЬ". Например:

ASSUME FS:NOTHING
MOV EAX, FS:[0]
ASSUME FS:ERROR

"Надеюсь, что помогает.. PSM

PS: Если вы просто хотите изучать ассемблер, я настоятельно рекомендую вам попробовать 32-битный защищенный режим. Вот отличный ресурс, если вам интересно:

Хорошо, я нашел ответ.

lods dword ptr fs:[esi]
Другие вопросы по тегам