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




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Турбо Ассемблер 3.0/tasm/#1-2
Автор ""
Размер 469003 Байт
Страница 15 из 51
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

                     .               ; режиме Ideal
                     MASM            ; возвращение в режим MASM
             Func2   ENDP            ; имя опять требуется указывать
                                     ; перед ключевым словом
             CODE    ENDS            ; здесь также требуется имя

          Как вы можете заметить, в режиме Ideal ключевые слова дирек-
     тив (например,  PROC или SEGMENT) указываются перед соответствую-
     щими именами идентификаторов,  то есть в порядке,  обратном тому,
     который принят в MASM.  Кроме того имеется возможность  повторить
     имя процедуры или сегмента после директив ENDP или ENDS. Добавле-
     ние этого имени идентифицирует сегмент или процедуру, которая за-
     канчивается, и делает программу более понятной. Это хороший прак-
     тический  прием,  особенно  в  программах,  содержащих  несколько
     вложенных процедур и сегментов.  Однако указывать имя идентифика-
     тора после ENDP или ENDS необязательно.

     Турбо Ассемблер 3.0/tasm/#1-2                              = 58 =


                   Отличия режима Ideal и режима MASM
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          В данном  разделе  мы опишем основные различия между режимом
     Ideal и режимом MASM.  Если вы знакомы с MASM, то можете поэкспе-
     риментировать с отдельными средствами, преобразуя небольшие части
     имеющихся программ в режим Ideal.  Более подробно об отличиях ре-
     жимов  рассказывается в Главе 5 "Использование выражений и значе-
     ний идентификаторов".



     Турбо Ассемблер 3.0/tasm/#1-2                              = 59 =

                          Выражения и операнды
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Основное различие между выражениями режима  Ideal  и  режима
     MASM  состоит в функции,  которую выполняют квадратные скобки.  В
     режиме Ideal квадратные скобки  всегда  относятся  к  содержимому
     заключаемой в них величины. Квадратные скобки никогда не приводят
     в подразумеваемому сложению.  Однако многие стандартные конструк-
     ции MASM в режиме Idealе не допускаются.

          В режиме Ideal квадратные скобки должны  использоваться  для
     получения содержимого элемента. Например:

             mov     ax,wordptr

     приводит к выводу предупреждающего сообщения,  если вы  пытаетесь
     загрузить  указатель  (wordptr) в регистр (AX).  Корректной будет
     следующая форма:

             mov     ax,[wordptr]

          Здесь ясно,  что вы загружаете содержимое ячейки, адресуемой
     с помощью wordptr (в текущем сегменте данных DS) в регистр AX.

          Если вы  хотите  сослаться на смещение идентификатора в сег-
     менте,  то вы должны явно использовать операцию OFFSET, например:

             mov     ax,OFFSET wordptr



     Турбо Ассемблер 3.0/tasm/#1-2                              = 60 =

                                Операции
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Изменения, внесенные  в  операции  выражений в режиме Ideal,
     позволяют повысить мощность и гибкость некоторых операций,  оста-
     вив без изменения общее поведение выражений.  Для того, чтобы со-
     действовать некоторым комбинациям операций, изменен порядок стар-
     шинства некоторых операций.

          Аккуратно задавайте точку (.) в элементах структуры,  на ко-
     торые вы ссылаетесь.  Операция точки для элементов структур в ре-
     жиме Ideal является более строгой. Выражение слева от точки долж-
     но  представлять  собой имя элемента структуры.  Приведем примеры
     загрузки регистров значениями конкретных элементов структур:

     ; Опишем переменные с помощью структурных типов
     S_Stuff SomeStuff <>
     O_Stuff OtherStuff <>
     mov     ax,[S_Stuff.Amount]     ; загрузить значение размером в
                                     ; слово
     mov     bl,[O_Stuff.Amount]     ; загрузить значение размером в
                                     ; байт

                        Подавление корректировок
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          В режиме Ideal Турбо Ассемблер не генерирует сегментных кор-
     ректировок для частных сегментов (private), которые выравниваются
     на границу страницы или параграфа. Так как компоновщик не требует
     подобных корректировок,  при  ассемблировании  программ  в режиме





Ideal может быть получен объектный код меньшего объема, компонов- ку которых компоновщик выполняет более быстро, чем компоновку объектных файлов, сгенерированных в режиме MASM. Далее показыва- ется, каким образом такие корректировки производятся в режиме MASM (но не в режиме IDEAL): SEGMENT DATA PRIVATE PARA VAR1 DB 0 VAR2 DW 0 ENDS SEGMENT CODE ASSUME ds:DATA mov ax,VAR2 ; корректировок не требуется ENDS Примечание: Это различие не влияет на код, который вы пишете. Здесь об этом упоминается только для вашего сведе- ния. Операнд инструкции BOUND ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В инструкции BOUND требуется указывать операнд типа WORD Турбо Ассемблер 3.0/tasm/#1-2 = 61 = (слово), а не DWORD (двойное слово). Это позволяет вам определить в нижнюю и верхнюю границу в виде двух констант размером в слово, что устраняет необходимость преобразования операнда в DWORD явным образом (с помощью DWORD PTR). В режиме MASM вы должны записы- вать: BOUNDS DW 1,4 ; нижняя и верхняя границы BOUND DWORD PTR BOUNDS ; требуется в режиме MASM Однако в режиме Ideal требуется только записать: BOUNDS DW 1,4 ; нижняя и верхняя границы BOUND [BOUNDS] ; допускается в ; режиме Ideal Сегменты и группы ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Способ, с помощью которого Турбо Ассемблер обрабатывает в режиме Ideal сегменты и группы, может внести большое различие в формирование и выполнение программ. Как и большинству людей, вам, вероятно, не захочется ломать голову над ошибками, возникающими из-за взаимодействия сегментов и групп. Большинство трудностей в этом процессе возникает из-за про- извольного характера предположений в MASM (и следовательно Турбо Ассемблером в режиме MASM) о ссылках на данные или код в группах. К счастью, режим Ideal сглаживает некоторые наиболее явные проб- лемы, которые могут вызвать директивы определения сегментов и групп в MASM. Об этом мы и расскажем далее. Доступ к данным в сегменте, принадлежащем группе ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД В режиме Ideal любой элемент данных в сегменте, являющемся частью группы, рассматривается строго как элемент группы, а не сегмента. В Турбо Ассемблере для распознавания элемента данных, как элемента сегмента, нужно использовать явное переопределение сегмента. В режиме MASM это интерпретируется по-другому. Иногда иден- тификаторы считается частью сегмента, а не частью группы. В част- ности, в режиме MASM идентификатор интерпретируется, как часть сегмента, когда он используется, как указатель на выделенные дан- ные. Это может вызвать путаницу, так как когда вы непосредственно обращаетесь к данным без операции OFFSET, MASM некорректно гене- рирует ссылку на сегмент вместо ссылки на группу. Пример поможет нам пояснить, как легко можно нажить неприят- ности из-за специфики адресации в MASM. Рассмотрим следующую не- полную программу MASM, в которой описываются три сегмента данных: dseg1 SEGMENT para public 'data' Турбо Ассемблер 3.0/tasm/#1-2 = 62 = v1 db 0 dseg1 ENDS dseg2 SEGMENT para public 'data' v2 db 0 dseg2 ENDS dseg3 SEGMENT para public 'data' v3 db 0 dseg3 ENDS DGROUP GROUP dseg1,dseg2,dseg3 cseg SEGMENT para public 'code' ASSUME cs:cseg,ds:DGROUP start: mov ax,OFFSET v1 mov bx,OFFSET v2 mov cx,OFFSET v3 cseg ENDS


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