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




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

     щий синтаксис:

          %выражение

     где "выражение"  может  быть  либо выражением (использующим любые
     допустимые операнды и операции), или именем текстовой макрокоман-
     ды. Если  это  выражение,  то создаваемым текстом будет результат
     выражения с текущим основанием.  Если "выражение" - это текстовая
     макрокоманда, то  создаваемым тестом будет текст,  который предс-
     тавляет  текстовая   макрокоманда.  Например,  следующий  фрагмент
     программы:

          DEFSYM               MACRO     NUM
          TMP_&NUM:
          ENDNUM

          TNAME            EQU        ; определение
                                            ; текстовой макрокоманды
          DEFSYM  %5+4
          DEFSYM  %TNAME

     приведет с следующему макрорасширению:

          TMP_9:
          TMP_JUNK:

    Переопределение общей макрокоманды, состоящей из нескольких строк
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Общие макрокоманды, состоящие из нескольких строк, вы можете
     переопределять. Новое  определение  автоматически заменяет старое
     определение. Все предшествующие места,  где макрокоманда уже была
     вызвана, не изменяются.  Во всех вызовах макрокоманды,  следующих
     за переопределением, используется новое определение.

              Удаление общей макрокоманды: директива PURGE
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Для удаления  макрокоманд  вы  можете использовать директиву
     PURGE. Директива PURGE имеет следующий синтаксис:

          PURGE имя_макрокоманды, [имя_макрокоманды]...

          Директива PURGE удаляет определение  макрокоманды, состоящей
     из нескольких строк,  с именем "имя_макрокоманды" После использо-

     Турбо Ассемблер 3.0/tasm/#2-2                              = 39 =

     вания директивы PURGE Турбо Ассемблер  больше  не  интерпретирует
     идентификатор PURGE как макрокоманду, например:

          ADD MACRO a1,a2
             SUB a1,a2
          ENDM
             ADD ax,bx     ; этот вызов даст SUB ax,bx
          PURGE ADD
             ADD ax,bx     ; теперь это не макрокоманда, поэтому
                           ; вы получите ADD ax,bx

          Вы можете  сразу  удалить этой директивой несколько макроко-
     манд, разделив их имена запятыми. Отметим однако, что идентифика-
     тор  удаленной  макрокоманды  можно  переопределить только другой
     макрокомандой.

             Определение вложенных и рекурсивных макрокоманд
     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

          Операторы в теле макрокоманды могут включать в себя операто-
     ры, вызывающие или определяющие другие макрокоманды. Возьмем сле-
     дующий пример:

          MCREATE         MACRO  opname, op1,op2,op3,op4,op5,op6,op7
             IFNB opname
                DO & opname MACRO op,count
                   IF count LE 4
                     REPT count
                       opname op,1
                     ENDM
                   ELSE
                     MOVE CL,count
                     opname op,CL
                  ENDIF
               EMDM                               ; конец DOopname
             MCREATE op1,op2,op3,op4,op5,op6,op7  ; рекурсия!
           ENDIF                      ; конец if
          ENDM                        ; конец макрокоманды MCREATE

          После вызова:

          MCREATE ror,rol,rcl,rcr,shl,sal,sar

     будут созданы  дополнительные  макрокоманды DOror,  DOrol и т.д.,
     которые можно использовать следующим образом:

          DOshr         ax,5
          DOrcr         bx,3






Рекурсивные макрокоманды можно вызывать со списком парамет- ров и задавать их таким образом, что они будут работать с пере- менным числом параметров (от 0 до максимального числа парамет- ров). Для этого макрокоманда должна использовать первый параметр Турбо Ассемблер 3.0/tasm/#2-2 = 40 = для выполнения ее макрорасширения, а затем вызывать сама себя с оставшимися параметрами. При каждой рекурсии остается на один параметр меньше. В конце концов, будет последняя рекурсия без па- раметров. Когда вы вызываете макрокоманду рекурсивно, всегда требуется как-то проверить конец рекурсии. Обычно при наличии передаваемого параметра это делается в теле макрокоманды с помощью условного оператора IFNB. Приведем простой пример рекурсивной макрокоманды: PUSH MACRO r1,r2,r3,r4,r5,r6,r7,r8 IFNB r1 PUSH r1 PUSH r2,r3,r4,r5,r6,r7,r8 ENDIF ENDM Счетчик повторения макрокоманды ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для повторения тела макрокоманды заданное число раз вы може- те использовать директиву повторения REPT. Для этого используется следующий синтаксис: REPT выражение тело_макрокоманды ENDM где "выражение" указывает Турбо Ассемблеру, сколько раз нужно повторить тело макрокоманды, заданное между директивами REPT и ENDM. При вычислении "выражения" должна получаться константа. Оно не должно содержать имен идентификаторов с опережающими ссылками. Чтобы отметить конец блока повторения, используйте директиву ENDM. Например, следующий код: REPT 4 SHL ax,1 ENDM даст в результате следующее: SHL ax,1 SHL ax,1 SHL ax,1 SHL ax,1 Турбо Ассемблер 3.0/tasm/#2-2 = 41 = Директива WHILE ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для повторения тела макрокоманды до того момента, пока опре- деленное выражение не примет значения 0 (false), вы можете ис- пользовать макродирективу WHILE. Она имеет следующий синтаксис: WHILE выражение тело_макрокоманды ENDM Перед каждой итерацией тела макрокоманды Турбо Ассемблер вы- числяет "выражение". Будьте аккуратны и избегайте бесконечных циклов, которые привести к тому, что Турбо Ассемблер исчерпает доступную память или прекратит работу. Приведем пример использо- вания директивы WHILE: WHILE 1 ;; ничего не делает ENDM Макрокоманды повторения строк ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Для повторения тела макрокоманды для каждого элемента в списке или каждого символа в строке вы можете использовать макро- директивы повторения IRP и IRPC. Каждая из этих директив требует от вас задания одного формального аргумента. Приведем синтаксис директивы IRP: IRP формальный_аргумент, список_аргументов тело_макрокоманды ENDM Директива IRPC имеет следующий синтаксис: IRP формальный_аргумент, строка тело_макрокоманды ENDM в обоих случаях "формальный_аргумент" - это аргумент, используе- мый в теле макрокоманды. Конец тела макрокоманды отмечает ENDM. В синтаксисе директивы IRP "список_аргументов" состоит из спискам аргументов, разделенных запятыми. Аргументами может быть любой текст (идентификаторы, строки, числа и т.д.). Форма каждого


Страницы : 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 52 53 54


adfun.ru









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

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

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

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