The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
Вперед Назад Содержание

1. Что такое GASP?

Главная цель GNU ассемблера-компоновка результатов работы других программ-компиляторов. Если Вы должны вручную кодировать отдельные части кода на ассемблере, это значит, что GNU ассемблер "недружественный" обработчик: он не имеет директив для макросов, условных директив и многих других удобств, на которые Вы могли рассчитывать.

В некоторых случаях Вы можете просто использовать препроцессор C или обобщенный препроцессор типа M4,; но это может быть неудобно, поскольку ни один из них не предназначен именно для ассемблера.

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

Вот маленький пример, позволяющий ощутить преимущества GASP'а. Этот входной файл для GASP'а:

              .MACRO  saveregs from=8 to=14
      count   .ASSIGNA \from
              ! save r\from..r\to
              .AWHILE  \&count LE \to
              mov     r\&count,@-sp
      count   .ASSIGNA  \&count + 1
              .AENDW
              .ENDM
 
              saveregs from=12
 
      bar:    mov     #H'dead+10,r0
      foo     .SDATAC "hello"<10>
              .END
генерирует такой ассемблерный текст:

              ! save r12..r14
              mov     r12,@-sp
              mov     r13,@-sp
              mov     r14,@-sp
 
      bar:    mov     #57005+10,r0
      foo:    .byte   6,104,101,108,108,111,10


Вперед Назад Содержание


Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру