Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Программирование -> Assembler -> Основные команды языка ASSEMBLER


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



###  Команда PUSH #########################################################

 ### Включает в стек слово операнда.  После выполнения команды производится
 автоматическое уменьшение указателя стека SP на 2.
     Если стек организуется из 64К (максимальный размер), то при полном его
 заполнении   каждое   следующее   включение  разрушает  ранее   записанную
 информацию.  Если стек имеет меньший размер,  то при полном его заполнении
 каждое  следующее  включение  разрушает  область  памяти, находящуюся  вне
 стекового сегмента.

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

 ### Форматы команды:
                                                       7                0
    +-------------------------+ l = 3-4 байта          +----------------+
    ¦ PUSH  Память            ¦ t = 16+ЕА тактов       ¦   11111111     ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦  mod 110  r/m  ¦
                                                       ¦----------------¦
                                                       ¦     dispL      ¦
                                                       +----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ PUSH  Регистр           ¦ t = 11 тактов          ¦   01010 reg    ¦
    +-------------------------+                        +----------------+

                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ PUSH  СегРегистр        ¦ t = 10 тактов          ¦   000 sreg 110 ¦
    +-------------------------+                        +----------------+

 ### Примечание:
      Некоторые  команды  (например,  CALL)  заносят  информацию  в  стек
 автоматически.
      С  помощью  стековых  команд  можно   производить  загруку   одного
 сегментного  регистра  из  другого.  Например:

             PUSH CS                           MOV  AX, CS
             POP  DS      - эквивалентно -   MOV  DS, AX
        (потери в скорости)                 (потери в размере)

###  Команда POP #########################################################

 ### Извлекает слово из стека в  операнд команды.  После выполнения команды
 производится  автоматическое увеличение указателя стека  SP на  2. Команде
 POP  должна  предшествовать  команда  PUSH.
     Извлеченное слово остается  в памяти  на том же месте и не разрушается
 до  следующего  применения  команды  PUSH.

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

 ### Форматы команды:
                                                       7                0
    +-------------------------+ l = 3-4 байта          +----------------+
    ¦ POP   Память            ¦ t = 17+ЕА тактов       ¦   10001111     ¦
    +-------------------------+                        ¦----------------¦
                                                       ¦  mod 110  r/m  ¦
                                                       ¦----------------¦
                                                       ¦     dispL      ¦
                                                       +----------------¦
                                                       ¦     dispH      ¦
                                                       +----------------+

                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ POP   Регистр           ¦ t = 8 тактов           ¦   01011 reg    ¦
    +-------------------------+                        +----------------+

                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ POP   СегРегистр        ¦ t = 8 тактов           ¦   000 sreg 111 ¦
    +-------------------------+                        +----------------+

 ### Примечание:
      Некоторые  команды  (например, RET)  извлекают информацию из стека
 автоматически.
      С  помощью  стековых  команд  можно  производить  загруку   одного
 сегментного  регистра  из  другого.  Например:

             PUSH CS                           MOV  AX, CS
             POP  DS      - эквивалентно -   MOV  DS, AX
        (потери в скорости)                 (потери в размере)

###  Команда PUSHF #########################################################

 ### Включает в стек регистр флажков. Команда аналогична команде PUSH.

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

 ### Формат команды:
                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ PUSHF                   ¦ t = 10 тактов          ¦   10011100     ¦
    +-------------------------+                        +----------------+

 ### Примечание:
     Команд прямого воздействия  на флажок  TF нет.  Изменение этого флажка
 осуществляется включением регистра флажков в стек, модификацией  8-го бита
 и последующего извлечения.

###  Команда POPF #########################################################

 ### Извлекает из стека регистр флажков. Команда аналогична команде POP.

 ### Регистр флажков принимает значение, извлеченное из стека.

 ### Формат команды:
                                                       7                0
    +-------------------------+ l = 1 байт             +----------------+
    ¦ POPF                    ¦ t = 8 тактов           ¦   10011101     ¦
    +-------------------------+                        +----------------+

 ### Применение и особенности программирования:
     Команд прямого воздействия  на флажок  TF нет.  Изменение этого флажка
 осуществляется включением регистра флажков в стек, модификацией  8-го бита
 и последующего извлечения.

[   ВЕРНУТЬСЯ К ОГЛАВЛЕНИЮ   ]

 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.
 
Rambler's Top100