Главная Программирование Софт Документы Статьи Обо мне


Основные команды языка ASSEMBLER



###  Регистр флажков ######################################################


             ¦--- старший байт ----¦--- младший байт ----¦
             +-----------------------------------------------+
             ¦ х  х  х  х OF DF IF TF SF ZF  х AF  х PF  х CF¦
             +-----------------------------------------------+


 ### х  - состояние битов не определено (зарезервированы).

 ### OF - флажок ПЕРЕПОЛНЕНИЯ    Устанавливается арифметическими операциями.
 ----------------------------    Используется для определения  переполнения
                                 в  операциях  с числами, представленными в
                                 дополнительном коде.
                                 Если  OF = 1,  то результат арифметической
                                 операции  вышел  за  допустимые   пределы:

                                     - 128    :  байт   :  + 127
                                     - 32768  :  слово  :  + 32767

 ### DF - флажок  НАПРАВЛЕНИЯ    Устанавливается  командами  CLD   и   STD.
 ----------------------------    Используется в  командах  обработки  строк
                                 для  указания направления  продвижения  по
                                 строке данных.
                                 Если  DF = 0,  то  строка  сканируется  от
                                 меньших  адресов  к большим.

 ### IF - флажок   ПРЕРЫВАНИЙ    Устанавливается  командами  CLI   и   STI.
 ----------------------------    Используется    для   запрещения   ВНЕШНИХ
                                 прерваний  (ЗА ИСКЛЮЧЕНИЕМ НЕМАСКИРУЕМЫХ).
                                 Для   блокировки   отдельных    прерываний
                                 используется специальный регистр масок.
                                 Если  IF = 0, то прерывания  не возникают.

 ### TF - флажок  ТРАССИРОВКИ    Устанавливается  комбинацией  команд через
 ----------------------------    стек (смотрите применение  команды PUSHF).
                                 Используется для  перевода микропроцессора
                                 в одношаговый режим. После каждой  команды
                                 автоматически    генерируется   внутреннее
                                 прерывание  с  переходом  к   подпрограмме
                                 обработки, написанной программистом.
                                 Если  TF = 1, включен режим трассировки.

 ### SF - флажок   З Н А К А     Устанавливается арифметическими операциями.
 ----------------------------    Используется  для определения  знака числа
                                 в знаковой  арифметике  по  старшему  биту
                                 результата операции.
                                 Если  SF = 1, то результат отрицательный.

 ### ZF - флажок  Н  У  Л  Я     Устанавливается арифметическими операциями.
 ----------------------------    Показывает был  ли  равен  нулю  результат
                                 последней операции.
                                 Если  ZF = 1, то результат равен нулю.

 ### AF - флажок   ПЕРЕНОСА      Устанавливается арифметическими операциями.
 -------- (ДОПОЛНИТЕЛЬНОГО)      Используется    в    командах   десятичной
          -------------------    арифметики. Фиксирует  перенос из  младшей
                                 тетрады результата в старшую.
                                 Если  AF = 1, то произошел перенос.

 ### PF - флажок   ЧЕТНОСТИ      Устанавливается арифметическими операциями.
 ----------------------------    Используется   для  контроля  правильности
                                 передачи данных. Фиксирует наличие четного
                                 количества   единиц   в  младших  8  битах
                                 результата последней операции.
                                 Если  PF = 1, то количество единиц четное.

 ### CF - флажок   ПЕРЕНОСА      Устанавливается арифметическими операциями.
 ----------------------------    Используется для определения переноса (при
                                 сложении)  или  заема  (при  вычитании), а
                                 также  значения  выдвигаемого  бита  после
                                 операций сдвигов.
                                 Если  CF = 1, то произошел перенос (заем).


###  Команда LAHF #########################################################

 ### Передает младший байт регистра флажков в регистр АН.

  15----------------------7-----------------------0
  ¦   старший  байт       ¦SF ZF    AF    PF    CF¦
  +-----------------------------------------------+
                                     ¦

                          15----------------------7----------------------0
                          ¦         AH            ¦          AL          ¦
                          +----------------------------------------------+

 ### Регистр флажков не модифицируется.

 ### Формат команды:
                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ LAHF                    ¦ t = 4 такта            ¦   10011111     ¦
    +-------------------------+                        +----------------+

 ### Примечание:
     Перевод  системы  команд  МП 8080  в систему  МП 8086. Слово состояния
 МП 8080 (PSW) образуется  регистром флажков и аккумулятором и используется
 в команде PUSH PSW МП 8080, которую эмулирует команда LAHF МП 8086:

              LAHF
              PUSH  AX    - эквивалентно -    PUSH  PSW

###  Команда SAHF #########################################################

 ### Передает содержимое регистра АН в младший байт регистра флажков.

                           15----------------------7----------------------0
                          ¦         AH            ¦          AL          ¦
                          +----------------------------------------------+
                                     ¦

  15----------------------7-----------------------0
  ¦   старший  байт       ¦SF ZF    AF    PF    CF¦
  +-----------------------------------------------+

 ### Младший  байт  регистра  флажков  принимает  значение, извлеченное  из
 регистра AH.

 ### Формат команды:
                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ SAHF                    ¦ t = 4 такта            ¦   10011110     ¦
    +-------------------------+                        +----------------+

 ### Примечание:
     Перевод  системы  команд  МП 8080  в систему  МП 8086. Слово состояния
 МП 8080 (PSW) образуется  регистром флажков и аккумулятором и используется
 в команде  POP PSW  МП 8080, которую эмулирует команда SAHF МП 8086:

              POP   AX
              SAHF        - эквивалентно -   POP   PSW

[   ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ   ]
Сайт создан в системе uCoz