-----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов || ||AC LODS m8 5 Загрузка байта || [(E)SI] в AL |----------------------------------------------------------------- Работа команды IFAddrSize = 16THEN использовать SI для индекса-источникаELSE (* AddressSize = 32 *) использовать ESI для индекса-источника;FI;IF команда байтового типаTHEN AL <- [индекс-источника]; (* Загрузка байта *) IF DF = 0 THEN IncDec <- 1 ELSE IncDec <- -1; FI;ELSE IF OperandSize = 16 THEN AX <- [индекс-источника]; (* Загрузка слова *) IF DF = 0 THEN IncDec <- 2 ELSE IncDec <- -2; FI; ELSE (* OperandSize = 32 *) EAX <- [индекс-источника]; (* Загрузка двойного слова *) IF DF = 0 THEN IncDec <- 4 ELSE IncDec <- -4; FI; FI;FI;индекс-источника <- индекс-источника + IncDec Описание Команда LODS загружает регистр AL, AX или EAX байтом, словом или двойнымсловом памяти из адреса, на который указываеи регистр индекса-источника.После выполнения пересылки регистр индекса-источника автоматическипродвигается. Если флаг DF равен 0 (была выполнена команда CLD),происходит инкремент индекса источника; Если флаг DF равен 1 (былавыполнена команда STD), происходит декремент индекса источника. Инкрементили декремент выполняется на 1 при загрузке байта, 2 при загрузке слова и4 при загрузке двойного слова.Если атрибут размера адреса команды равен 16 битам, то в качествеиндекса-источника используется регистр SI; в противном случае атрибутразмера адреса равен 32 битам, и используется регистр ESI. Адрес исходныхданных определяется исключительно содержимым регистра SI или ESI. Передвыполнением команды LODS в регистр SI должно быть загружено верноезначение индекса. Команды LODSB, LODSW и LODSD являются синонимами командыLODS для работы с байтом, словом и двойным словом, соответственно.Команде LODS может предшествовать префикс REP; однако, команда LODS чащеиспользуется в конструкции цикла LOOP, поскольку далее должна обычноследовать обработка данных, пересланных в регистры EAX, AX или AL. Изменяемые флагиОтсутствуют Исключения защищенного режима #GP(0) в случае недопустимого исполнительного адреса операнда памяти всегментах CS, DS, ES, FS или GS; #SS(0) в случае недопустимого адреса всегменте SS; #PF(код сбоя) в случае страничного сбоя; #AC дляневыравненной ссылки к памяти при текущем уровне привилегированности,равном 3. Исключения режима реальных адресовПрерывание 13, если какая-либо часть операнда лежит вне пространстваисполнительных адресов от 0 до 0FFFFH. Исключения виртуального режима 8086Те же исключения, что и для режима реальных адресов: #PF (код сбоя) длястраничных сбоев; #AC для невыравненной ссылки к памяти при текущем уровнепривилегированности, равном 3.