Assembler для начинающих


         

Загрузка и запись - часть 3


    байта, поскольку EXBYTE - переменная типа BYTE. Во втором случае
    программист непосредственно указывает, что работает с байтами.
    Собственно ассемблер не требует поля операнда. Программисты чаще
    используют вторую форму, так как не имеют имени переменной,
    связанной со строкой. Программа динамически располагает строку в
    памяти, для нее не существует фиксированного места, и,
    следовательно, нет и имени переменной. Команда STOS аналогична.
    Чтобы непосредственно указать строку слов, а не байтов,
    используются коды операций LODSW и STOSW. Ассемблер должен знать,
    для байтовой строки или строки слов написана команда, поскольку
    машинные команды различны для различных типов строк. Эта разница
    определяет значение, на которое надо изменить индексный регистр.
 
      Операнд в команде должен быть указан в том случае, если в
    программе используются основные формы команд LODS и STOS. Если
    программа не имеет удобной метки для строки, она может использовать
    формы LODSB и STOSB. Преимущество использования основной формы LODS
    и указания операнда заключается в том, что ассемблер при этом
    проверяет не только тип операнда, но и возможность его адресации.
    Так как команда LODS работает с объектами только в сегменте DS,
    оператор ASSUME должен соответственно описывать расположение
    сегмента поименованной переменной. Аналогично, ассемблер проверяет
    основную форму команды STOS на адресацию сегмента ES. Любая форма
    приемлема для ассемблера, но лучше использовать основную форму,
    чтобы позволить ассемблеру наилучшим способом проверить наличие
    ошибок в программе до выполнения.



Содержание  Назад  Вперед