The OpenNET Project / Index page

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

Высокоуровневое программирование на языке Assembler

01.07.2005 11:59

В статье "HLA: The High Level Assembly Programming Language" представлено введение в возможности компилятора HLA (High Level Assembly), позволяющего использовать конструкции высокоуровневых языков в программах на языке Assembler.

Возможности HLA чем-то похожи на макросредства MASM/TASM и позволяют использовать условные операторы, циклы, создавать функции и использовать стандартную библиотеку. HLA доступен под Windows и Linux.

Напримр, конструкция, в HLA нотации:

  if( eax <= ebx ) then
      mov( 0, eax );
  endif;

будет преобразована в 

   cmp( eax, ebx );    jnbe NotBE;    mov( 0, eax ); NotBE:

Для любителей экзотических языков программирования, можно обратить внимание на еще одну статью "Haskell - A very different language", про функциональный язык программирования Haskel (родственные языки Lisp, SML, OCaml), не имеющего операторов циклов. Также доступна другая статья на русском языке - "Введение в язык программирования Haskell".

  1. Главная ссылка к новости (http://www.linuxjournal.com/ar...)
  2. Руководство по функциям стандартной библиотеки HLA
  3. What is HLA All About, Anyway?
  4. What is a "High Level Assembler"?
  5. Art of Assembly Language Programming and HLA by Randall Hyde
Лицензия: CC BY 3.0
Источник: osnews.com
Короткая ссылка: https://opennet.ru/5707-assembler
Ключевые слова: assembler
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (11) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Akademic (ok), 12:29, 01/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Забавно.
    Но что-то я не понимаю зачем это надо.
    От знания архитектуры всё равно не освобождает, а оптимальнось кода снижается(потому что появляется немного халявы, а халява она расслабляет)
     
  • 1.2, nghtf (??), 12:53, 01/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне кажется, автор этой штуки зря убил время..
    В упор не вижу надобности в таком языке.
    Разве что читабельность немного улучшается.
    Ну, а для читабельности есть форматирование и комментарии.
    Непонятно зачем оно.
     
  • 1.3, Аноним (3), 13:08, 01/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Это давно было, называлось C--
     
  • 1.4, Аноним (3), 14:20, 01/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ИМХО ребята просто очень увлеклись масом и макросами в том числе...
     
  • 1.5, Аноним (3), 19:13, 01/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    да и тогда уж не mov( 0, eax );
    а лучше xor eax, eax
     
  • 1.6, Аноним (3), 20:00, 01/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А мне кажется, что это в высшей степени нужная вещь! Это ведm не компилятор, на выходе ты получаешь ассемблеровый код (при помощи опции -s) и ставь там своих комментариев сколько хочешь! Только читаться HLA будет проще (при навыке), да и писаться тоже, особенно когда речь заходит об if-ах, switch-ах и циклах.
     
  • 1.7, StatusQuo (??), 17:02, 02/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот пример забавной консольной игрушки, написанной на HLA:

    http://freshmeat.net/projects/hlaadventure/?branch_id=50924&release_id=200391

    Она ещё и переносимая ;-)

     
  • 1.8, nghtf (??), 09:38, 04/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    мне в дебагере приятнее видеть именно то, что я
    написал, а не то что мне нагенерила какая-то
    софтина.
     
  • 1.9, Foo_loger (?), 10:08, 05/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Assembler нужен только тогда, когда необходим
    секс с железом. В других случаях С/C++ куда лучьше
    для разработчика. Если это так, то макросы (и другие навароты) только будут мешать оптимизировать и отлаживать код.
     
  • 1.10, pazke (?), 13:03, 05/07/2005 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И почему этого HLA не было году в 96..? Пришлось тогда свой препроцессор для ассемблера писать. Помню он даже отладочную информацию для Turbo Debugger'а генерировал.
    Эх молодость, молодость... :)
     
  • 1.11, seramirun (?), 17:17, 23/02/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На сайте shoorick.ho.ua описан программатор микросхем пзу 573рф2 и,выложен исходник на ассемблере FASM.У меня получилось переписать этот проект на Borland TASM.Работает  стандартный диалог открытия файлов.Проблема как раз в том,что распознаются только raw файлы.Даже не bin и уж тем более не intel hex.Между тем существует loadhex рутина на языке C,которая успешно это делает.Проект целиком на ассемблере.Нужно переписать её на этот язык программирования посредством hla.А я дам ссылку на исходники,куда требуется добавить код.Схемотехника программатора проверена.Всё работает.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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