Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Asm для Linux/Unix > Странные ошибки компилятора |
Автор: Xonxt 26.12.2007, 20:14 | ||||||||||
Доброе время суток. вот возникла необходимость написать программу на Ассемблере под Linux. Столкнулся с проблемами. Преподаватель объяснил про различия синтаксиса, например, что нужно ставить знак прцента перед регистром.. это всё понятно. но вот компилятор на этот процент ругается. Вот, к примеру, небольшой код:
При создании объектного модуля:
Компилятор ругается, к примеру, на строчку
Дескать, suffix or operasnds invalid for 'pop' Если исправить эту строчку так:
То в объектный модуль компилится нормально, но при дальнейшей компиляции:
Оно опять ругается: undefined reference to 'ebx' В чем же дело? Может че-то не так делаю? или не так компилирую? У меня Linux Suse 10.2 Заранее благодарю |
Автор: MAKCim 26.12.2007, 21:25 | ||||||
Xonxt, ОС 64-х битная или 32-х битная? вообще для 32-х разрядной системы код абсолютно правильный если ОС 64-х битная, то надо так
если хочешь собрать 32-х битную версию ELF файла добавь директиву .code32
и ключ -m32 в gcc
|
Автор: Xonxt 26.12.2007, 21:27 |
гг)) 64-битная.. ![]() спасибо. ![]() Можно ссылку на списочек еоманд для 64-битной?) |
Автор: MAKCim 26.12.2007, 21:35 |
http://webster.cs.ucr.edu/Page_TechDocs/Intel64.pdf и http://webster.cs.ucr.edu/Page_TechDocs/Intel64_2.pdf |
Автор: Xonxt 26.12.2007, 22:01 |
Благодарю ) Только теперь оно мне при запуске поги выдает "ошибку сегментирования" ![]() Наверное, что--то из-за стека.. |
Автор: MAKCim 26.12.2007, 22:05 |
Xonxt, исправлено см. выше |