fork download
  1. /*
  2.  * Программа вывода нескольких строк на экран
  3.  *
  4.  */
  5.  
  6. /* Секция данных, распределение памяти */
  7.  
  8. .data
  9.  
  10. greeting: .asciz "Hello from Assembler!\n"
  11.  
  12. /* Секция команд процессора */
  13.  
  14. .text
  15.  
  16. .global _start # точка входа - глобальная метка
  17.  
  18. _start:
  19.  
  20. /* В отладчике остановить процесс в контрольной точке можно только
  21.   со второй инструкции, поэтому внедряем фиктивную команду */
  22. nop # пустая операция - для отладки
  23.  
  24. /* Подготавливаем стек к работе с локальными переменными */
  25. pushl %ebp # сохраняем текущий контекст стека
  26. movl %esp, %ebp
  27.  
  28. movl $22, %esi
  29.  
  30. next:
  31.  
  32. /* Выводим строку на экран с помощью системного вызова ОС Linux */
  33. movl $4, %eax # системный вызов write
  34. movl $1, %ebx # выводим в стандартный поток вывода
  35. leal greeting, %ecx # загружаем адрес строки для вывода
  36. movl $22, %edx # указываем количество байт (длину)
  37. int $0x80 # обращаемся к ОС
  38.  
  39. subl $1, %esi
  40. cmpl $0, %esi
  41. je done
  42. jmp next
  43.  
  44. done:
  45.  
  46. /* Восстанавливаем контекст стека */
  47. movl %ebp, %esp # восстанавливаем контекст стека
  48. popl %ebp
  49.  
  50. /* Выполняем системный вызов для корректного завершения программы */
  51. movl $1, %eax # системный вызов _exit
  52. movl $0, %ebx # статус выхода 0, успешное завершение
  53. int $0x80 # обращаемся к ОС
  54.  
  55. .end # последняя строка исходного текста
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:8: error: class, interface, or enum expected
.data
^
Main.java:16: error: illegal character: '#'
    .global _start                      # ????? ????? - ?????????? ?????
                                        ^
Main.java:22: error: illegal character: '#'
        nop                             # ?????? ???????? - ??? ???????
                                        ^
Main.java:25: error: illegal character: '#'
        pushl %ebp                      # ????????? ??????? ???????? ?????
                                        ^
Main.java:33: error: illegal character: '#'
        movl $4, %eax                   # ????????? ????? write
                                        ^
Main.java:34: error: illegal character: '#'
        movl $1, %ebx                   # ??????? ? ??????????? ????? ??????
                                        ^
Main.java:35: error: illegal character: '#'
        leal greeting, %ecx             # ????????? ????? ?????? ??? ??????
                                        ^
Main.java:36: error: illegal character: '#'
        movl $22, %edx                  # ????????? ?????????? ???? (?????)
                                        ^
Main.java:37: error: illegal character: '#'
        int  $0x80                    # ?????????? ? ??
                                      ^
Main.java:47: error: illegal character: '#'
        movl %ebp, %esp                 # ??????????????? ???????? ?????
                                        ^
Main.java:51: error: illegal character: '#'
        movl $1, %eax                   # ????????? ????? _exit
                                        ^
Main.java:52: error: illegal character: '#'
        movl $0, %ebx                   # ?????? ?????? 0, ???????? ??????????
                                        ^
Main.java:53: error: illegal character: '#'
        int  $0x80                      # ?????????? ? ??
                                        ^
Main.java:55: error: illegal character: '#'
.end                                    # ????????? ?????? ????????? ??????    
                                        ^
14 errors
stdout
Standard output is empty