Вопрос зелёного новичка

Тема в разделе "WASM.BEGINNERS", создана пользователем LIKAN, 13 дек 2011.

  1. LIKAN

    LIKAN New Member

    Публикаций:
    0
    Регистрация:
    10 дек 2011
    Сообщения:
    8
    Все началось с того что repne stosb, упорно не желал находить нужный символ в строке , в которой он точно был(строка задана в области данных)
    Код (Text):
    1. mov ax,1
    2. lea di,test
    3. mov cx,10
    4. repne stosb
    Потом я обнаружил следующее, (пользуюсь turbodebagger, в прочем интерфейс у них всех похожий) глядя в окошко CPU в область памяти напротив каждой строки её смещение в виде X : Y, так вот когда я загружаю адрес строки с помощью lea
    команда scas ищет строку по адресу ds:0463-там сплошные нули , а по настоящему строка в 1960:0463, как правильно и полностью загрузить адрес строки чтоб можно было пользоваться scas ?
     
  2. pashe4ka13

    pashe4ka13 New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2010
    Сообщения:
    263
    LIKAN
    Почитайте про сегментные регистры и их настройку и вопрос отпадет сам собою.
     
  3. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Инструкция STOSB по умолчанию использует полный адрес из ES:lol: I.
    Вы установили только регистр DI, а ещё нужен регистр ES (1960h).
     
  4. LIKAN

    LIKAN New Member

    Публикаций:
    0
    Регистрация:
    10 дек 2011
    Сообщения:
    8
    Побочный вопрос из той же темы, какие команды меняют регистр ds, просто руками я его не трогаю, а где то посредине кода выясняется что я не могу загрузить переменные из сегмента данных
     
  5. FatMoon

    FatMoon New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2002
    Сообщения:
    954
    Адрес:
    Russia
    push cs
    pop ds

    mov ax, ds
    mov es, ax

    как больше нравится
     
  6. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    LES,LDS,LGS,LSS,LFS