инструкция movsb

Тема в разделе "WASM.ZEN", создана пользователем AlexDon, 3 авг 2006.

  1. AlexDon

    AlexDon New Member

    Публикаций:
    0
    Регистрация:
    2 авг 2006
    Сообщения:
    6
    Программа выполняется в чистом DOS 6.22
    Как заставить инструкцию movsb работать с регистрами esi и edi?
    Просто задание префикса 66h не помогло.
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    а префикса 67h?
     
  3. Bohdan200

    Bohdan200 New Member

    Публикаций:
    0
    Регистрация:
    13 сен 2005
    Сообщения:
    134
    Адрес:
    Lviv
    ИМХО никак, в чистом DOS 6.22 сегментная модэль памяти...
    Ну или переключится в защищенный режим :)
     
  4. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    AlexDon
    66 определяет movsw-movsd - код A5, при A4 - префикс не играет рояли.
    67 определяет исппользование cx-si-di/ecx-esi-edi
    или можно просто написать:
    Код (Text):
    1. movs byte ptr es:[edi], byte ptr [esi]
    ассемблеры должны воспринимать. Каким пользуешься?
     
  5. AlexDon

    AlexDon New Member

    Публикаций:
    0
    Регистрация:
    2 авг 2006
    Сообщения:
    6
    пользуюсь tasm 3.1, поэтому просто написал:
    db 0F3h, db 067h, db 0A4h ; rep movsb 32 разрядное

    а использую я это в unreal mode для пересылки массива между основной памятью и расширенной.

    Спасибо за помощь.