Изменения
→Команды загрузки
== Команды загрузки ==
mov register|memory, register|memory|immediate ; команда загрузки.записать значение второго операнда в первый, размер данных должен совпадать
mov al, 5 ; загрузить в al 5
mov cx, di ; скопировать значения значение di в cx в di. Размер копируемых данных должен совпадать.
movzx register, register|memory ; копирование значений меньшей разрядности в регистр большей разрядности, недостающие биты заполняются нулями
movsx register, register|memory ; копирование значений меньшей разрядности в регистр большей разрядности, недостающие биты заполняются знаковым битом
cmov(cc) register, register|memory ; cc — условие. , команда выполняется только если cc, то mov, ничего otherwiseусловие верно
xchg register|memory, register|memory ; обмен значений
Обращаться можно и к памяти:
mov eax,[ebx] — загрузка в eax того, что находится по адресу ebx. (в C выглядело бы как eax = *ebx. ) [] - косвенная адресация. не более одних скобок за раз, ** недопустимы. может Может использоваться как для левого, так и правого аргумента mov. по правилам в В команде <= 1 может быть не больше одного обращения к памяти. сказать, что " <s>mov [eax],[ebx]" разрешено == всё равно, что выгнать себя с экзамена)</s> ; так делать нельзя!
Оперативную память попортить нельзя, она разделена между процессами.
В квадратных скобках при использовании 16-битных регистров можно писать три опциональные части:
bx (bp) si + si (di) +(/-) offset (16-битное число) bp di
В квадратных скобках при использовании 32-битных регистров позволено писать довольно много разных вещей:
== Работа со стеком ==