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


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



 ### Команды  управления  циклами  -  это   близкие   (NEAR)  относительные
 переходы.  Операнд - метка  является  8-битным   смещением   (относительно
 текущего состояния указателя команд  IP),  поэтому команды могут выполнить
 переход только на 127 байт вперед или на 128 байт назад.

###  Команда LOOP#########################################################

 ### Производит декремент регистра  CX  и, если  CX не равен  0, происходит
 переход к началу цикла.

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

 ### Формат команды:
                                                       7                0
    +-------------------------+ l  = 2 байта           +----------------+
    ¦ LOOP  Метка             ¦ t1 = 5 тактов          ¦    11100010    ¦
    +-------------------------+      (без перехода)    ¦----------------¦
                                t2 = 17 тактов         ¦      dispL     ¦
                                     (с переходом)     +----------------+

 ### Примечание:
     Команда эквивалентна последовательности  DEC и  JNZ,  но экономит байт
 памяти и один цикл времени.

###  Команды  LOOPE / LOOPZ  #############################################

 ### Производят  декремент  регистра  CX  и, если  CX  не равен 0, а флажок
 ZF  равен  1, происходит  переход  к  началу  цикла.
     Длина  команд  равна  2  байтам, а  время  выполнения -  6 тактам (без
 перехода) и 18 (с переходом).

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

 ### Форматы команд:
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ LOOPE   Метка           ¦                        ¦    11100001    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ LOOPZ   Метка           ¦                        +----------------+
    +-------------------------+

###  Команды  LOOPNE / LOOPNZ #############################################

 ### Производят  декремент  регистра  CX  и, если  CX  не равен 0, а флажок
 ZF  равен  0, происходит  переход  к  началу  цикла.
     Длина  команд  равна  2  байтам, а  время  выполнения -  6 тактам (без
 перехода) и 18 (с переходом).

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

 ### Форматы команд:
                                                       7                0
    +-------------------------+                        +----------------+
    ¦ LOOPNE  Метка           ¦                        ¦    11100000    ¦
    +-------------------------+                        ¦----------------¦
    +-------------------------+                        ¦      dispL     ¦
    ¦ LOOPNZ  Метка           ¦                        +----------------+
    +-------------------------+

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