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



              

Специальные команды


    Команда NOP - еще одна удобная команда микропроцессора 8088.  Она
    не делает ничего - "нет операции".  Тщательный анализ машинных
    команд показывает, что это в действительности команда XCHG.  А
    именно, это
 
      XCHG AX,AX
 
      что эквивалентно "ничего не выполнять", и бывают ситуации,
    когда такую команду желательно использовать, чтобы выждать
    некоторое время. В небольшом цикле, предназначенном для
    определенной временной задержки, можно использовать команды NOP для
    заполнения тела цикла, достигая тем самым точной выдержки времени
    выполнения цикла (хотя цикл - не лучший способ временной задержки,
    если интервал не очень маленький). Разработчики IBM PC требуют
    использовать NOP в некоторых местах, чтобы удовлетворять
    определенным временным требованиям. Например, программа не может
    иметь доступ в схему таймера чаще, чем раз в одну микросекунду. Две
    последовательно идущие команды IN нарушают это требование, так что
    между командами IN должно быть выполнено несколько команд NOP.
 
      Команда HLP останавливает ЭВМ; после выполнеиня этой команды
    микропроцессор останавливается. Если прерывания заблокированы во
    время останова, ЭВМ полностью "замирает". В этой сиутации
    единственная возможность запустить ЭВМ заново - выключить питание и
    включить его снова. Однако, если прерывания были разрешены в момент
    останова микропроцессора, они продолжают восприниматься и
    управление будет передаваться обработчику прерываний. После
    выполнеиня команды IRET в обработчике программа продолжает
    выполнение с ячейки, следующей за командой HLT. Команду HLT можно
    использовать в мультизадачных системах, чтобы завершить текущую
    активную задачу, но это не всегда лучший способ такого завершения.
    Разработчики персональной ЭВМ используют команду останова только
    тогда, когда возникает катастрофическая ошибка оборудования и
    дальнейшая работа бессмысленна.



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