На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Все статьи должны быть оформлены согласно Правил оформления статей.
2. Любые обсуждения должны происходить в специальной теме, обсуждение в любых других темах раздела запрещены.
3. Запрещается писать статьи о создании и распространении вирусов, троянов и других вредоносных программ!
4. За грамотно написанные и правильно оформленные статьи авторы награждаются DigiMoney.

Дополнительные ссылки:
Желаю творческих успехов! ;)
Модераторы: Jin X
  
    > Некоторые нюансы при использовании MOV , Общие вопросы
       
      Некоторые нюансы при использовании команды MOV

      1. С помощью MOV нельзя осуществлять пересылку из одной области памяти в другую. Для этого нужно использовать в качестве промежуточного буфера любой доступный регистр общего назначения:
      ExpandedWrap disabled
        .data
        a db 5
        b db ?
        .code
        start:
        ...
        mov al,a
        mov b,al
        ...
        end start

      2. Нельзя пересылать содержимое одного сегментного регистра в другой сегментный регистр. Для этого нужно использовать регистры общего назначения:
      ExpandedWrap disabled
        mov ax, ds
        mov es, ax

      3. Нельзя загружать в сегментный регистр непосредственное значение. Для этого требуется промежуточный объект (например, регистр общего назначения или стек).

      4. Нельзя использовать сегментный регистр CS как операнд назначения. Дело в том, что в архитектуре процессора IA-32 пара CS:IP содержит адрес команды, которая должна выполняться следующей. Поэтому изменение содержимого регистра CS фактически означает операцию перехода, что недопустимо.
      Сообщение отредактировано: 7in X -
        А как же такой вариант, через стэк!?!?!
        Var db 256 dup(?)
        A db 'A',0
        push A(или offset A);Аля masm
        pop Var(offset Var)
        или
        mov al,'A' ; 2 - byte
        mov edi,Var(offset Var); 5 - byte
        stosb ; 1 - byte
        ----------------------------------------
        push ds;В полне симпатично!
        pop es
        ----------------------------------------
        Сообщение отредактировано: B1tD1ver -
          Ничего симпатичного - push/pop дольше двух mov
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0267 ]   [ 16 queries used ]   [ Generated: 19.03.24, 06:49 GMT ]