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




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

  Assets  DW   ?
  Debts   DW   ?
          .
          .
          .
          mov   ax,[Debts]
          sub   [Assets],ax
          .
          .
          .

     Однако адресация к памяти имеет и более глубокий смысл,  ко-
торый не бросается в глаза. Предположим, у вас имеется символьная
строка с именем CharString, содержащая буквы ABCDEFGHIGKLM, кото-
рые начинаются в сегменте данных со смещения 100, как показано на
Рис. 4.1. Каким образом можно считать девятый символ (I), который
расположен  по  адресу 108? В языке Си вы можете просто использо-
вать оператор:

        C = CharString[8];

(в Си элементы нумеруются с 0), а в Паскале:

        C := CharString[9];

     Как же это можно сделать  в  Ассемблере?  Прямая  ссылка  на
строку  CharString  здесь,  конечно,  не подходит, так как первым
символом является символ A.

                                        .              .
                                        .              .
                                        |              |
                                        |--------------|

TASM2 #1-5/Док              = 137 =

                                     99 |      ?       |
                                        |--------------|
        CharString -------------->  100 |     'A'      |
                                        |--------------|
                                    101 |     'B'      |
                                        |--------------|
                                    102 |     'C'      |
                                        |--------------|
                                    103 |     'D'      |
                                        |--------------|
                                    104 |     'E'      |
                                        |--------------|
                                    105 |     'F'      |
                                        |--------------|
                                    106 |     'G'      |
                                        |--------------|
                                    107 |     'H'      |
                                        |--------------|
                                    108 |     'I'      |
                                        |--------------|
                                    109 |     'J'      |
                                        |--------------|
                                    110 |     'K'      |
                                        |--------------|
                                    111 |     'L'      |
                                        |--------------|
                                    112 |     'M'      |
                                        |--------------|
                                    113 |      0       |
                                        |--------------|
                                    114 |      ?       |
                                        |--------------|
                                        .              .
                                        .              .

     Рис. 5.1 Ячейки памяти со строкой символов CharString.

     В действительности язык  Ассемблера  обеспечивает  несколько
различных способов адресации к строкам символов, массивам и буфе-
рам данных. Наиболее простой способ состоит в том, чтобы  считать
девятый по счету символ строки CharString:

          .
          .
          .
          .DATA
  CharString  DB  'ABCDEFGHIJKLM'
          .
          .
          .
          .CODE
          .
          .
          .
          mov   ax,@Data
          mov   ds,ax
          mov   al,[CharString+8]
          .
          .
          .






В данном случае это тоже самое, что: mov al,[100+8] так как CharString начинается со смещения 100. Все, что заключено в квадратные скобки, интерпретируется Турбо Ассемблером, как ад- рес, поэтому смещение CharString и 8 складывается и используется в качестве адреса памяти. Инструкция принимает вид: mov al,[108] как показано на Рис. 5.2. . . . . | | |--------------| 99 | ? | |--------------| CharString --------------> 100 | 'A' | |--------------| 101 | 'B' | |--------------| 102 | 'C' | |--------------| 103 | 'D' | |--------------| 104 | 'E' | |--------------| 105 | 'F' | |--------------| 106 | 'G' | |--------------| 107 | 'H' |------- |--------------| | CharString+8 -----------> 108 | 'I' | | |--------------| V 109 | 'J' | -------- |--------------| | | 110 | 'K' | -------- |--------------| AL 111 | 'L' | |--------------| 112 | 'M' | |--------------| 113 | 0 | |--------------| 114 | ? | |--------------| . . . . Рис. 5.1 Адресация строки символов строки CharString. Такой тип адресации, когда ячейка памяти задается ее именем, плюс некоторая константа, называется непосредственной (прямой) адресацией. Хотя непосредственная адресация - это хороший метод, она не отличается достаточной гибкостью, поскольку обращение вы- полняется каждый раз по одному и тому же адресу памяти. Поэтому давайте рассмотрим другой, более гибкий путь адресации памяти. Рассмотрим следующий фрагмент программы, где в регистр AL также загружается девятый символ CharString: . . . mov bx,OFFSET CharString+8 mov al,[bx] . . . В данном примере для ссылки на девятый символ используется регистр BX. Первая инструкция загружает в регистр BX смещение CharString (вспомните о том, что операция OFFSET возвращает сме- щение метки в памяти), плюс 8. (Вычисление OFFSET и сложение для этого выражения выполняется Турбо Ассемблером во время ассембли- рования.) Вторая инструкция определяет, что AL нужно сложить с содержимым по смещению в памяти, на которое указывает регистр BX (см. Рис. 5.3). mov al,[108] как показано на Рис. 5.2. . . . . | | |--------------| 99 | ? | |--------------| CharString --------------> 100 | 'A' | |--------------| 101 | 'B' | |--------------| 102 | 'C' | |--------------| 103 | 'D' | |--------------| 104 | 'E' | |--------------| 105 | 'F' |


Страницы : 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
Форумы политика, лучшие анекдоты
знакомства.