Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > GNU toolchain > АСМ в MinGW


Автор: Mephisto 23.11.2008, 20:36
Есть небольшая трабла при компилировании асмового кода из-под винды используя MinGW.
Собственно сам код который наваял:
Код

.data
hello_str:
    .string "Some test:%d"

.text

.globl    main

.type    main, @function

main:
    pushl    $10
    pushl    $hello_str
    call    printf
    movl    $1, %eax
    ret
    .size main, . - main


Результат вот такой, как его интерпретировать?
Цитата

hello.s: Assembler messages:
hello.s:9: Warning: .type pseudo-op used outside of .def/.endef ignored.
hello.s:9: Error: junk at end of line, first unrecognized character is `m'
hello.s:17: Warning: .size pseudo-op used outside of .def/.endef ignored.
hello.s:17: Error: junk at end of line, first unrecognized character is `m'


Добавлено через 2 минуты и 37 секунд
Ну или этот пример:
Код

.data
printf_format:
        .string "%d\n"
 
.text
.globl main
main:
        movl  $0, %eax                  /* в %eax будет результат, поэтому в начале его нужно обнулить */
        movl  $10, %ecx                 /* 10 шагов цикла */
 
sum:
        addl  %ecx, %eax                /* %eax = %eax + %ecx */
        loop  sum
 
        /* %eax = 55, %ecx = 0 */
 
/*
 * следующий код выводит число в %eax на экран и завершает программу
 */
        pushl %eax
        pushl $printf_format
        call  printf
        addl  $8, %esp
 
        movl  $0, %eax
        ret


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)