Assembler - язык неограниченных возможностей


Строковые операции - часть 2


/p>

Сравнивает один байт (CMPSB), слово (CMPSW) или двойное слово (CMPSD) из памяти по адресу DS:ESI (или DS:SI, в зависимости от разрядности адреса) с байтом, словом или двойным словом по адресу ES:EDI (или ES:DI) и устанавливает флаги аналогично команде СМР. При использовании формы записи CMPS ассемблер сам определяет из типа указанных операндов (принято указывать имена сравниваемых строк, но можно использовать любые два операнда подходящего типа), какую из трех форм этой команды (CMPSB, CMPSW или CMPSD) выбрать. Используя CMPS с операндами, можно заменить регистр DS на другой, применяя префикс замены сегмента (ES:, GS:, FS:, CS:, SS:), регистр ES заменить нельзя. После выполнения команды регистры ESI (SI) и EDI (DI) увеличиваются на 1, 2 или 4 (если сравниваются байты, слова или двойные слова), если флаг DF = 0, и уменьшаются, если DF = 1. При использовании с префиксом REP команда CMPS выполняет сравнение строки длиной в ЕСХ (или СХ) байт, слов или двойных слов, но чаще ее используют с префиксами REPNE/REPNZ или REPE/REPZ. В первом случае сравнение продолжается до первого несовпадения в сравниваемых строках, а во втором — до первого совпадения.

  • Команда:
  • SCAS приемник
  • Назначение:
  • Сканирование строки
  • Процессор:
  • 8086
  • Команда:
  • SCASB
  • Назначение:
  • Сканирование строки байт
  • Процессор:
  • 8086
  • Команда:
  • SCASW
  • Назначение:
  • Сканирование строки слов
  • Процессор:
  • 8086
  • Команда:
  • SCASD
  • Назначение:
  • Сканирование строки двойных слов
  • Процессор:
  • 80386

    Сравнивает содержимое регистра AL (SCASB), AX (SCASW) или ЕАХ (SCASD) с байтом, словом или двойным словом из памяти по адресу ES:EDI (или ES:DI, в зависимости от разрядности адреса) и устанавливает флаги аналогично команде СМР. При использовании формы записи SCAS ассемблер сам определяет из типа указанного операнда (принято указывать имя сканируемой строки, но можно использовать любой операнд подходящего типа), какую из трех форм этой команды (SCASB, SCASW или SCASD) выбрать. После выполнения команды регистр EDI (DI) увеличивается на 1, 2 или 4 (если сканируются байты, слова или двойные слова), если флаг DF = 0, и уменьшается, если DF = 1. При использовании с префиксом REP команда SCAS выполняет сканирование строки длиной в ЕСХ (или СХ) байт, слов или двойных слов, но чаще ее используют с префиксами REPNE/REPNZ или REPE/REPZ. В первом случае сканирование продолжается до первого элемента строки, отличного от содержимого аккумулятора, а во втором — до первого совпадающего.

  • Команда:
  • LODS источник
  • Назначение:
  • Чтение из строки
  • Процессор:
  • 8086
  • Команда:
  • LODSB
  • Назначение:
  • Чтение байта из строки
  • Процессор:
  • 8086
  • Команда:
  • LODSW
  • Назначение:
  • Чтение слова из строки
  • Процессор:
  • 8086
  • Команда:
  • LODSD
  • Назначение:
  • Чтение двойного слова из строки
  • Процессор:
  • 80386
    <


    Начало  Назад  Вперед