Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2011, 03:02   #1
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию YASM в Linux

Вот пришол тот момент перехода на линукс (несколько раз пробовал и забивал каждный раз). Сумел установить YASM, пробую учить асм. Нашол такой пример (чтобы проверить работает ли YASM)
Код:
global _main
extern _printf
extern _getchar

section .text
_main:
push message
call _printf
call _getchar
add esp, 4
ret
message:
db 'Hello, World', 10, 10
зашол с правами root и пишу:
Цитата:
yasm -f elf Hello_World.asm
yasm -o elf Hello_World.o
выбивает:
Цитата:
Hello_World.o:1: warning: ignoring unrecognized character `^?'
Hello_World.o:1: warning: ignoring unrecognized character `^A'
Hello_World.o:1: warning: ignoring unrecognized character `^A'
Hello_World.o:1: warning: ignoring unrecognized character `^A'
дальше с помощью графической оболочки Ubuntu открывая папку с этими файлами, там Hello_World.asm, Hello_World.o, elf .
пишу в консоли ./elf, мне выбивает:
Цитата:
bash: ./elf: Permission denied
пробую открыть через граф. оболочку открывает как пустой текстовый файл.
В гугле информации нету , что и не удивило. Пошол сюда спрашивать что делать, потому что здесь есть много линуксоидов.
и так:
Что делать?
Это ещё не конец и даже не начало конца, это возможно только конец начала.
pufystyj вне форума Ответить с цитированием
Старый 28.10.2011, 08:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
выбивает:
Это не ошибки а предупреждения
Цитата:
Permission denied
А графическую оболочку ты тоже от рута запускаешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.10.2011, 09:29   #3
Osanve
Пользователь
 
Аватар для Osanve
 
Регистрация: 11.12.2010
Сообщений: 50
По умолчанию

Смотрим yasm(1) и видим следующий вариант компиляции:
Цитата:
yasm -f elf32 -Worphan-labels source.asm
Возможно проблема в этом. Сам, к сожалению, yasm не использовал и могу подсказать только по GAS'у.
Osanve вне форума Ответить с цитированием
Старый 28.10.2011, 09:29   #4
Osanve
Пользователь
 
Аватар для Osanve
 
Регистрация: 11.12.2010
Сообщений: 50
По умолчанию

Смотрим yasm(1) и видим следующий вариант компиляции:
Цитата:
yasm -f elf32 -Worphan-labels source.asm
Возможно проблема в этом. Сам, к сожалению, yasm не использовал и могу подсказать только по GAS'у.
Osanve вне форума Ответить с цитированием
Старый 28.10.2011, 13:23   #5
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это не ошибки а предупреждения

А графическую оболочку ты тоже от рута запускаешь?
их написал для чистоты експеримента.
на щет граф. оболочки - нет.

но bash: ./elf: Permission denied пишет в консоли.

Osanve, я сейчас на другом компе. перейду на ноут и попробую
Это ещё не конец и даже не начало конца, это возможно только конец начала.
pufystyj вне форума Ответить с цитированием
Старый 28.10.2011, 15:56   #6
pufystyj
Форумчанин
 
Аватар для pufystyj
 
Регистрация: 10.11.2010
Сообщений: 569
По умолчанию неа

нет, результат тот же.
может другой код попробовать?

___________________________________ ______ ДОБАВЛЕНО _____________________
кароче буду компилить nasm и так его учу
Это ещё не конец и даже не начало конца, это возможно только конец начала.

Последний раз редактировалось pufystyj; 28.10.2011 в 16:27.
pufystyj вне форума Ответить с цитированием
Старый 29.10.2011, 00:14   #7
Osanve
Пользователь
 
Аватар для Osanve
 
Регистрация: 11.12.2010
Сообщений: 50
По умолчанию

Цитата:
Сообщение от pufystyj Посмотреть сообщение
может другой код попробовать?
Судя по описанию GAS-синтаксис поддерживается. Попробуйте следующее:
Код:
.data
  msg:
    .string "Hello, world!\n"

.text
  .globl main
  .type main, @function
  main:
    pushl %ebp
    movl  %esp, %ebp
    pushl $msg
    call  printf
    addl  $4, %esp
    movl  %ebp, %esp
    popl  %ebp
    ret
Вроде так должно быть, но писал по памяти. Код на 32-х разрядную архитектуру.
Osanve вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация CPUID в ассемблере на yasm Persepol Помощь студентам 0 27.10.2011 16:43
На компе Win 7 + Linux. Как переустановить Linux? ssdm Windows 1 14.10.2011 17:54
c++ в Linux (Межпроцессорный обмен в Linux) RusLotus Помощь студентам 0 13.10.2009 16:59
Linux на VMware....... WinXP <-> Linux DMUTPUU Операционные системы общие вопросы 1 24.09.2008 12:03