adfun.ru
 
BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Справочник по системе программирования Турбо Ассемблер 2.0
Автор ""
Размер 416131 Байт
Страница 17 из 51
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

                                               .                .
                                               .                .
                                               .                .
   Вначале:                                    |                |
     ---------------                           |----------------|
  AX |     ?       |                    996    |       ?        |
     ---------------                           |                |
     ---------------                           |----------------|
  BX |     ?       |                    998    |       ?        |
     ---------------                           |                |
     ---------------                           |----------------|
  SP |    1000     |-----------------> 1000    |       ?        |
     ---------------                           |                |
                                               |----------------|
                                               .                .

                                               .                .
                                               .                .
                                               .                .
   После mov ax,1 / push ax:                   |                |
     ---------------                           |----------------|
  AX |     1       |                    996    |       ?        |
     ---------------                           |                |
     ---------------                           |----------------|
  BX |     ?       |        --------->  998    |       1        |
     ---------------        |                  |                |
     ---------------        |                  |----------------|
  SP |    998      |---------          1000    |       ?        |
     ---------------                           |                |
                                               |----------------|
                                               .                .

                                               .                .
                                               .                .
                                               .                .
   После mov bx,2 / push bx:                   |                |
     ---------------                           |----------------|
  AX |     1       |        --------->  996    |       2        |
     ---------------        |                  |                |
     ---------------        |                  |----------------|
  BX |     2       |        |           998    |       1        |
     ---------------        |                  |                |
     ---------------        |                  |----------------|
  SP |    996      |---------          1000    |       ?        |
     ---------------                           |                |
                                               |----------------|
                                               .                .

                                               .                .
                                               .                .
   После pop ax:                               |                |
     ---------------                           |----------------|
  AX |     2       |                    996    |       ?        |
     ---------------                           |                |
     ---------------                           |----------------|
  BX |     2       |        --------->  998    |       1        |
     ---------------        |                  |                |
     ---------------        |                  |----------------|
  SP |    998      |---------          1000    |       ?        |
     ---------------                           |                |
                                               |----------------|
                                               .                .

                                               .                .
                                               .                .
                                               .                .
   После pop bx:                               |                |
     ---------------                           |----------------|
  AX |     2       |                    996    |       ?        |
     ---------------                           |                |
     ---------------                           |----------------|
  BX |     1       |                    998    |       1        |
     ---------------                           |                |
     ---------------                           |----------------|
  SP |    1000     |-----------------> 1000    |       ?        |
     ---------------                           |                |
                                               |----------------|
                                               .                .

     Рис. 4.6 Регистры AX, BX, SP и стек.

     Хотя процессор 8086 и позволяет записывать значения в SP или
складывать  и вычитать хранящиеся в регистре SP значения (как это
можно делать с обычными регистрами  общего  назначения),  вам  не
следует к этому прибегать,  если вы не делаете этого преднамерен-
но. Если вы изменяете SP, то изменяется расположение вершины сте-
ка, что быстро может привести к неприятностям.

     Почему? Ведь занесение в стек и извлечение из него не  явля-
ется единственным способом использования стека. Стек используется
всякий раз, когда вы вызываете или возвращаетесь  из подпрограммы
(процедуры  или  функции).  Кроме того, стек используют некоторые
системные ресурсы (такие, как клавиатура или  системный  таймер),
когда они прерывают процессор 8086, чтобы выполнить свои функции.
Все это означает, что стек может в  любой  момент  потребоваться.
Если  вы измените SP, даже на несколько инструкций, то правильное
значение стека может оказаться недоступным, когда он  потребуется





системным ресурсам. Короче говоря, оставьте SP в покое, если только вам не тре- буется изменить его специально. Можно свободно выполнять операции занесения в стек и извлечения из него, вызовы и возвраты управле- ния, но не изменяйте значения регистра SP непосредственно. Любой из других семи регистров общего назначения можно спокойно изме- нять в любой момент. Указатель инструкций ----------------------------------------------------------------- Указатель инструкций (регистр IP) всегда содержит смещение в памяти, по которому хранится следующая выполняемая инструкция. Когда выполняется одна инструкция, указатель инструкций перемеща- ется таким образом, чтобы указывать на адрес памяти, где хранится следующая инструкция. Обычно следующей выполняемой инструкцией является инструкция, хранимая по следующему адресу памяти, но не- которые инструкции, такие, как вызовы или переходы, могут привес- ти к тому, что в указатель инструкций будет загружено новое зна- чение. Таким образом, будет выполнен переход на другой участок программы. Значение счетчика инструкций нельзя прочитать или записать непосредственно. Загрузить в указатель инструкций новое значение может только специальная инструкция перехода (аналогичная только что описанным). Указатель инструкций сам по себе не определяет адрес, по ко- торому находится следующая выполняемая инструкция. Картину здесь опять усложняет сегментная организация памяти процессора 8086. Для извлечения инструкции предусмотрен регистр CS, где хранится базовый адрес, при этом указатель инструкций задает смещение от- носительно этого базового адреса. Каждый раз, когда мы говорим об адресации памяти, нам прихо- дится упоминать сегменты. И каждый раз мы откладываем на потом полное объяснение данного вопроса. Теперь пришло время этим за- няться. Сегментные регистры ----------------------------------------------------------------- Теперь мы подошли к наиболее необычному аспекту процессора 8086 - сегментации памяти. Основной предпосылкой сегментации яв- ляется следующее: процессор 8086 может адресоваться к 1 мегабайту памяти. Для адресации ко всем ячейкам адресного пространства в 1 мегабайт необходимы 20-разрядные сегментные регистры. Однако про- цессор 8086 использует только 16-разрядные указатели на ячейки памяти. Вспомним, например, что для ссылки на память используется 16-разрядный регистр BX. Как же тогда согласовать 16-разрядные указатели процессора 8086 и 20-разрядные адреса? Ответ состоит в том, что процессор 8086 использует двухсту- пенчатую схему адресации. Да, используются 16-разрядные указате- ли, но эта форма представляет собой только часть полной схемы ад- ресации. Каждый 16-разрядный указатель памяти или смещение комби- нируется с содержимым 16-разрядного сегментного регистра для фор- мирования 20-разрядного адреса памяти. Сегменты и смещения комбинируются следующим образом: значе- ние сегмента сдвигается влево на 4 (то есть умножается на 16), а затем складывается со смещением, как показано на Рис. 4.7. --------------------------- ---------------- | 16-разрядный сегментный | | 16-разрядное | | регистр | | смещение | --------------------------- ---------------- | | V | -------------------- | ( умножение на 16 ) | ( /сдвиг влево на 4/ ) | -------------------- | | | V | ---------------------- | | Значение сегмента, | | | умноженное на 16, | | | равно 20-разрядно- | | | му значению | | ---------------------- | | | | ----- | ---------->( + )<------------- ----- | V --------------------------------------- | 20-разрядное значение адреса памяти | --------------------------------------- Рис. 4.7 20-разрядные адреса памяти. Рассмотрим, например, следующий фрагмент программы: . . . mov ax,1000h mov ds,ax


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.