Вы можете просто посмотреть страницу инструкции по сборке, и она объяснит, что каждая из этих инструкций делает в простом для понимания виде;во многих отношениях сборка в ее простом низкоуровневом простоте легче понять в одной строке, чем в языках более высокого уровня.
Я никогда не могу вспомнить, какой синтаксис ассемблера x86 упорядочивает что-либо, если я его не использовалчерез некоторое время (два основных синтаксиса ассемблера x86 упорядочивают операнды в обратном порядке), поэтому я не буду здесь говорить точный результат.
Для первого, я предполагаю, что это опечатка, а вы имели в виду LEAвместо LES?LEA означает «эффективный адрес загрузки», если я правильно помню.Его главная цель - вычислить адрес памяти чего-либо, когда вы хотите узнать адрес, а не просто использовать адрес.
(правка) Я раньше не использовал LES, и Google хотел перенаправить меня в LEAотсюда моё вышеприведённое утверждение.Я оставлю вышеупомянутое, хотя, так что вы можете извлечь из этого пользу(/ edit)
MOV перемещает данные из одного места в другое.Операнды в инструкциях MOV, заключенные в квадратные скобки [], означают, что вместо этого вам нужен этот адрес памяти, поэтому MOV CX, [DI] будет «перемещать содержимое регистра CX в ячейку памяти по адресу, хранящемуся в DI».register "(или наоборот, [DI] в CX, см. приведенное выше утверждение о порядке операндов).
Я не уверен в" OFFSET DATA2 ", так как я не помню ключевое слово смещения.* * 1011