• Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.


  • Иллюстрированный самоучитель по Turbo Pascal

    Система команд

    Строковые команды

    Мнемоника Формат Комментарий
    Пересылка строк
    MOVSB MOVSB Пересылать байты
    MOVSW MOVSW Пересылать слова
    Сравнение строк
    CMPSB CMPSB Сравнивать байты
    CMPSW CMPSW Сравнивать слова
    Сканирование
    SCASB SCASB Искать байт
    SCASW SCASW Искать слово
    Загрузка и сохранение
    LODSB LODSB Загружать байты
    LODSW LODSW Загружать слова
    STOSB STOSB Сохранять байты
    STOSW STOSW Сохранять слова

    Строковые команды рассчитаны на обработку строк. Замечу, что термин "строка" здесь отнюдь не эквивалентен аналогичному термину Турбо Паскаля и означает произвольную цепочку байт или слов длиной до 64 Кбайт. Эти команды оперируют пятью примитивами, каждый из которых обрабатывает лишь один байт или одно слово за раз. Перед примитивом обычно указывается префикс повторения REP/REPE/REPNE, заставляющий выполняться примитив до тех пор, пока не обнулится счетчик повторений СХ или не будет нарушено соответствующее условие.

    При использовании строковых команд важно помнить два обстоятельства. Во-первых, эти команды всегда берут адрес строки-источника из пары DS:SI, а строки-приемника – из пары ES:DI. Таким образом, перед исполнением строковой команды необходимо инициировать сегментные регистры нужным образом. Во-вторых, строковые команды используют индексную адресацию с автоматическим изменением смещения в SI/DI после однократного исполнения примитива. Содержимое этих регистров изменяется на 1 при обработке байтов и на 2 при обработке слов, причем наращивается, если флаг направления DF сброшен, и уменьшается, если он равен 1.

    Вот как можно осуществить пересылку массива А в массив В:

    var
    А,В: array [1..250] of Integer;
    …….
    asm
    lea si, A {Смещение А – в SI (источник)'}
    push ds pop es {Инициируем ES: = DS}
    lea di,B {Смещение В – в DI (приемник)}
    mov ex,250 {Счетчик – переноса}
    сld {Направление переноса – наращивать}
    rep movsw {Переносим 500 байт}
    end;
    

    В программе на Турбо Паскале регистр DS всегда содержит сегмент данных, поэтому инициировать его необязательно. Что касается регистра дополнительного сегмента ES, такого правила нет, и хотя в большинстве случаев он также ссылается на сегмент данных, рекомендуется проводить его инициацию перед использованием строковой команды (см. выше команды push ds, popes).

    Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.