ЛОДЫ от ФС (МАСМ)
Я хочу использовать код операции 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-битный защищенный режим. Вот отличный ресурс, если вам интересно: