Есть небольшая трабла при компилировании асмового кода из-под винды используя 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
|
|