Ассемблер SPARC, SPARC64

Модератор: Модераторы разделов

Ответить
BratSinot
Сообщения: 812
ОС: Slackware64

Ассемблер SPARC, SPARC64

Сообщение BratSinot »

Доброго времени суток!

Есть ли ассемблер под GNU/Linux для архитектур SPARC/SPARC64 на Intel синтаксисе? Просто не хочется использовать диковатый AT&T синтаксис GNU Assembler'а.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable
Контактная информация:

Re: Ассемблер SPARC, SPARC64

Сообщение Portnov »

Собсна, главное достоинство AT&T-синтаксиса состоит как раз в том, что он более-менее один для всех процессоров. Использовать синтаксис Intel для не-интеловских процессоров — это какая-то странная идея, имхо :)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Ассемблер SPARC, SPARC64

Сообщение frp »

Так у спарков ведь свой синтаксис и свой набор комманд, не похожий на интелловский. А туториалы по нем на сайте sun/oracle, ЕМНИП, предлагают использовать обычный gas.
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Ассемблер SPARC, SPARC64

Сообщение BratSinot »

Portnov писал(а):
09.08.2011 14:00
Собсна, главное достоинство AT&T-синтаксиса состоит как раз в том, что он более-менее один для всех процессоров. Использовать синтаксис Intel для не-интеловских процессоров — это какая-то странная идея, имхо :)

Просто мне не очень нравиться что, что-то типа:

Будет выглядеть как:

Код: Выделить всё

mov %(EBX), %(EAX)

Первый вариант гораздо более интуитивно понятен, ежели второй. Ну и всевозможные разименование(не знаю как это в ассемблере называется), на Intel-синтаксисе усе просто [tmp] и готово, на AT&T черт знает что!
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter
Контактная информация:

Re: Ассемблер SPARC, SPARC64

Сообщение shotdownsystem »

BratSinot писал(а):
09.08.2011 19:24

Код: Выделить всё

mov %(EBX), %(EAX)


move %(EBX) in %(EAX). Все логично.))
Простите за праздный интерес, а что за необходимость в использовании ассемблера?
puts ("Working, please wait...");while(1);
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Ассемблер SPARC, SPARC64

Сообщение BratSinot »

shotdownsystem писал(а):
09.08.2011 19:34
move %(EBX) in %(EAX). Все логично.))

Щаз, не EBX в EAX, а EAX в EBX.

Простите за праздный интерес, а что за необходимость в использовании ассемблера?

Пока необходимость в обучении. Что-то отличное от x86, amd64, IA-64.
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter
Контактная информация:

Re: Ассемблер SPARC, SPARC64

Сообщение shotdownsystem »

BratSinot писал(а):
09.08.2011 20:06
Щаз, не EBX в EAX, а EAX в EBX.

ну да, тогда move of EBX to EAX ))
А зачем асму обучатся ? из интереса?

puts ("Working, please wait...");while(1);
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Ассемблер SPARC, SPARC64

Сообщение BratSinot »

А зачем асму обучатся ?

Как минимум поймешь как работает процессор, и вообще как устроены, и как работают программы.
Как максимум, писать проги.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Ассемблер SPARC, SPARC64

Сообщение frp »

BratSinot писал(а):
09.08.2011 19:24
Просто мне не очень нравиться что, что-то типа:


Будет выглядеть как:

Код: Выделить всё

mov %(EBX), %(EAX)

в интелловском синтаксисе это бы выглядело как mov eax, ebx. И ни в одном асме (во всяком случае без макросов и препроцессора) это не будет выглядеть как EAX=EBX

А в спарке подобное будет выглядеть mov %g1, %g0.

PS. И все таки - почему асм? И почему именно спарк? Если just for fun, то смысл парится со спарком, если его у вас все равно, скорее всего, нет? Хоть его синтаксис намного красивее и проще x86 (и в теории девайсы на нем должны быть быстрее), но на нем нет домашних девайсов (ноуты Tadpol-а стоят столько, что дешевле купить SPARC Enterprise Server себе домой :) ).

BratSinot писал(а):
09.08.2011 20:58
Как максимум, писать проги.

Для этого он малопригоден. Максимум - совсем низкоуровневые части ядра и немного более быстрые реализации некоторых алгоритмов. Хотя, на асме проще писать вирусы-полиморфники :)
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Ассемблер SPARC, SPARC64

Сообщение BratSinot »

frp писал(а):
09.08.2011 22:39
BratSinot писал(а):
09.08.2011 19:24
Просто мне не очень нравиться что, что-то типа:


Будет выглядеть как:

Код: Выделить всё

mov %(EBX), %(EAX)

в интелловском синтаксисе это бы выглядело как mov eax, ebx. И ни в одном асме (во всяком случае без макросов и препроцессора) это не будет выглядеть как EAX=EBX

... Я знаю, это был типо псевдокод, не так-ли?

PS. И все таки - почему асм? И почему именно спарк? Если just for fun, то смысл парится со спарком, если его у вас все равно, скорее всего, нет? Хоть его синтаксис намного красивее и проще x86 (и в теории девайсы на нем должны быть быстрее), но на нем нет домашних девайсов (ноуты Tadpol-а стоят столько, что дешевле купить SPARC Enterprise Server себе домой :) ).

Ну а про qemu и crosscompile вы слышали?
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Ассемблер SPARC, SPARC64

Сообщение frp »

BratSinot писал(а):
09.08.2011 22:41
Ну а про qemu и crosscompile вы слышали?

Слышал. Видел. Пробовал даже ради эксперимента поставить в него debian. SPARC64 в полуживом состоянии (ни линукс, ни солярка не запускаются). SPARC32 загружается и работает, но настолько медленно, что установка debian etch (последний, который умеет sparc32) заняла несколько часов. А загружается установленная система несколько минут. aptitude запускается больше минуты. В общем - медленно и абсолютно неюзабельно. Никогда не понимал людей, изучающих программирование исключительно ради эмуляторов.
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter
Контактная информация:

Re: Ассемблер SPARC, SPARC64

Сообщение shotdownsystem »

BratSinot писал(а):
09.08.2011 20:06
Пока необходимость в обучении. Что-то отличное от x86, amd64, IA-64.

По таким критериям лучше ARM взять. Отладочная платы тыщи 3 стоит. На нем и все мелочь делают от мобильников до холодильников.
А актуальных задач на ассемблере с каждым годом все меньше и меньше. Ща рулят ХДЛи и Си.
puts ("Working, please wait...");while(1);
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Ассемблер SPARC, SPARC64

Сообщение frp »

shotdownsystem писал(а):
09.08.2011 23:20
Отладочная платы тыщи 3 стоит.

Я армами не занимался и в России ни разу не был, но, судя по Интернету, купить какой-нибудь BeagleBoard или PandaBoard в России просто нельзя. Можно только готовый продукт, типа SheevaPlug и его аналогов.
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Ассемблер SPARC, SPARC64

Сообщение BratSinot »

frp писал(а):
09.08.2011 22:39
BratSinot писал(а):
09.08.2011 20:58
Как максимум, писать проги.

Для этого он малопригоден. Максимум - совсем низкоуровневые части ядра и немного более быстрые реализации некоторых алгоритмов. Хотя, на асме проще писать вирусы-полиморфники :)

Еще как пригоден, на нем можно написать что угодно.
P.S. Извините, если что, но мне все равно ваше мнение по поводу программирования

frp писал(а):
09.08.2011 22:49
BratSinot писал(а):
09.08.2011 22:41
Ну а про qemu и crosscompile вы слышали?

Слышал. Видел. Пробовал даже ради эксперимента поставить в него debian. SPARC64 в полуживом состоянии (ни линукс, ни солярка не запускаются). SPARC32 загружается и работает, но настолько медленно, что установка debian etch (последний, который умеет sparc32) заняла несколько часов. А загружается установленная система несколько минут. aptitude запускается больше минуты. В общем - медленно и абсолютно неюзабельно.

Сразу видно что не слышали. Вы не через qemu-system-sparc64 запускайте, а компилируйте, компонуйте прогу и запускайте бинарник через qemu-sparc64.

Никогда не понимал людей, изучающих программирование исключительно ради эмуляторов.

... Никогда не понимал людей без воображения. ОБУЧЕНИЕ вы такое слово слышали?


shotdownsystem писал(а):
09.08.2011 23:20
BratSinot писал(а):
09.08.2011 20:06
Пока необходимость в обучении. Что-то отличное от x86, amd64, IA-64.

По таким критериям лучше ARM взять. Отладочная платы тыщи 3 стоит. На нем и все мелочь делают от мобильников до холодильников.

А SPARC станцию я могу за 5к купить и что?

А актуальных задач на ассемблере с каждым годом все меньше и меньше. Ща рулят ХДЛи и Си.

Я уже говорил, мне абсолютно ехало, болело ваше мнение. Я тут не мнение спрашиваю.
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Ассемблер SPARC, SPARC64

Сообщение deadhead »

frp писал(а):
09.08.2011 23:37
купить какой-нибудь BeagleBoard или PandaBoard в России просто нельзя.
сказал человек который
frp писал(а):
09.08.2011 23:37
армами не занимался и в России ни разу не был
:-)
P.S. все-таки можно :-)
[x] close
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Ассемблер SPARC, SPARC64

Сообщение BratSinot »

И да, насчет вашей отладочной ARM-пдатки, *nix то-же туда ставить будете?
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Ассемблер SPARC, SPARC64

Сообщение frp »

BratSinot писал(а):
10.08.2011 12:49
И да, насчет вашей отладочной ARM-пдатки, *nix то-же туда ставить будете?

Конечно. У BeagleBoard AFAIK самое популярное применение - ставить туда Linux (или андроид, который тоже Linux, для других целей довольно мощный процессор, видеокарта с 3d, куча разъемов и прочая ерунда просто не нужны).
BratSinot писал(а):
10.08.2011 11:08
... Никогда не понимал людей без воображения. ОБУЧЕНИЕ вы такое слово слышали?

Слышал. Много ли смысла учить ассемблер под архитектуру, под которую практически никто не пишет софта на ассемблере? Не пишут, ибо нет смысла: SPARC - это RISC, и там, в отличии от x86, набор комманд очень маленький, простой и очевидный => практически нет вещей, которые принципиально не может сгенерировать компилятор (а в x86 таких вещей более, чем достаточно). Будете кодить драйверы, компиляторы, ядра ОСей или свой libc с блэкджеком и ...? Если же это just for fun, то какой смысл выбирать архитектуру, железок с которой у вас нет и под которой ваши проги будут 100% никому не нужны?
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Ассемблер SPARC, SPARC64

Сообщение BratSinot »

frp писал(а):
10.08.2011 14:02
Слышал. Много ли смысла учить ассемблер под архитектуру, под которую практически никто не пишет софта на ассемблере?

А вы слышали такое, что расширение кругозора ведет к прозрению? :laugh:

Не пишут, ибо нет смысла: SPARC - это RISC, и там, в отличии от x86, набор комманд очень маленький, простой и очевидный =>

Нет, вот тут вы не правы. Я то-же сначала так думал, вот сейчас начал читать и понял. Там простой набор команд, не всмысле что их мало, в том смысле что например чтобы в x86 сделать:

Код: Выделить всё

ECX=EAX+EBX

Нужно будет провернуть:

Код: Выделить всё

push EAX
add EAX, EBX
mov ECX, EAX
pop EAX

Или:

mov ECX, EAX
add EAX, EBX
xchg EAX, ECX


А в RISC будет что-то вроде этого:

Код: Выделить всё

add ECX, EAX, EBX

Простота имеется в этом ввиду.
Я бы не сказал, что у того-же PPC базовый набор команд меньше чем у x86.

простой и очевидный

Ой как вы заблуждаетесь :rolleyes: Знаете что на PPC из памяти в регистр и из регистра в память нужно переносить информаию блоками по 16-бит? Итого, на 32-битном хосте нужно будет выполнить 2 инструкции, на 64-битном 4 инструкции. Как по вашему, это очевидно?
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter
Контактная информация:

Re: Ассемблер SPARC, SPARC64

Сообщение shotdownsystem »

BratSinot писал(а):
10.08.2011 11:08
Я уже говорил, мне абсолютно ехало, болело ваше мнение. Я тут не мнение спрашиваю.

тогда можете и не читать. или вас к монитору привязали?
Изображение
BratSinot писал(а):
10.08.2011 12:49
И да, насчет вашей отладочной ARM-пдатки, *nix то-же туда ставить будете?

Да, и это не проблема
puts ("Working, please wait...");while(1);
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Ассемблер SPARC, SPARC64

Сообщение deadhead »

frp писал(а):
10.08.2011 14:02
Много ли смысла учить ассемблер под архитектуру, под которую практически никто не пишет софта на ассемблере?

[ON] Узкая специализация ведет к потере навыков программирования ?
ИМХО, смысл в знаниях есть всегда.
[x] close
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian
Контактная информация:

Re: Ассемблер SPARC, SPARC64

Сообщение rm_ »

Я предлагаю быть реалистом и учить китайский обратить внимание на одну из тех архитектур, у которых есть будущее и есть на них реальные, достаточно массовые железки, которые прямо сейчас производятся и продаются.
Это либо упомянутый ARM, либо MIPS в лице Loongson'ов. Lemote Yeeloong 8101B
Насчёт "отладочной ARM платки" за 3к я вообще не понял юмора, какой в ней смысл (учитывая что характеристики будут из позапрошлого десятилетия), когда готовый нетбук AC100 или неттоп Genesi Efika можно купить за сравнимые с её ценою деньги. Или те же SheevaPlug'и, хотя с ними в России чуть посложнее.
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Ассемблер SPARC, SPARC64

Сообщение deadhead »

rm_ писал(а):
10.08.2011 14:58
Насчёт "отладочной ARM платки" за 3к я вообще не понял юмора, какой в ней смысл (учитывая что характеристики будут из позапрошлого десятилетия),
Например, для OS-free задач, системных разработок. Обычно на таких платах есть возможность подключить аппаратный отладчик. Относительно характеристик не все так плохо - тот же AC100 на Nvidia Tegra 2xx (в природе имеется и соответсвующая плата, но! не за 3К а за ~300$ и не для "независимых" разработчиков) ее прямой конкурент PandaBoard (175$, в России до 400$) на TI OMAP4430 и Snowball на ST-Erricson Nova 9000 (~230$). Все три SoC базируются на ядре Cortex-A9 - самом что не на есть последнем из доступных на рынке.
[x] close
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Ассемблер SPARC, SPARC64

Сообщение frp »

Нет, вот тут вы не правы. Я то-же сначала так думал, вот сейчас начал читать и понял. Там простой набор команд, не всмысле что их мало, в том смысле что например чтобы в x86 сделать:

Код: Выделить всё

ECX=EAX+EBX


Нужно будет провернуть:

Код: Выделить всё

push EAX
add EAX, EBX
mov ECX, EAX
pop EAX

Или:

mov ECX, EAX
add EAX, EBX
xchg EAX, ECX

Вообще-то достаточно двух инструкций:

Код: Выделить всё

mov ecx, eax
add ecx, ebx

В SPARC что-то подобное будет выглядеть так:

Код: Выделить всё

add %g0, %g1, %g2

Что намного проще, очевиднее и красивее ИМХО (и компилятору меньше извращаться нужно, чтобы сгенерировать, и спарковая инструкция занимает всего 4 байта).
Я бы не сказал, что у того-же PPC базовый набор команд меньше чем у x86.

У PPC - не знаю, а у спарков - точно меньше. А еще у интелла, дабы компенсировать заложенную в архитектуру сложность и медленность, есть куча расширений, которые усложняют и так сложную архитектуру. А еще у интелла куча "плодов эволюции" (взгляните хотя бы на структуру дескриптора :)), а у SPARC-а и PPC таких проблем нет.
BratSinot писал(а):
10.08.2011 14:17
Ой как вы заблуждаетесь

Где? Покажите, в каком месте SPARC сложнее/запутаннеее/неочевиднее x86.
BratSinot писал(а):
10.08.2011 14:17
Знаете что на PPC из памяти в регистр и из регистра в память нужно переносить информаию блоками по 16-бит? Итого, на 32-битном хосте нужно будет выполнить 2 инструкции, на 64-битном 4 инструкции. Как по вашему, это очевидно?

Это на PPC. Это не очевидно, но для таких моментов есть документация. И у спарков и паверов это довольно коротенькая книжечка, а у интелла - многотомный справочник, что как бы намекает на его "простоту и очевидность".
deadhead писал(а):
10.08.2011 14:40
[ON] Узкая специализация ведет к потере навыков программирования ?
ИМХО, смысл в знаниях есть всегда.

Да я не спорю, но SPARC - путь НАИБОЛЬШЕГО сопротивления :) Сам когда-то хотел осилить чисто ради расширения кругозора - qemu задрал своей крайней медленностью после нескольких хелловорлдов.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian
Контактная информация:

Re: Ассемблер SPARC, SPARC64

Сообщение rm_ »

ее прямой конкурент PandaBoard (175$, в России до 400$)

$175*29 = 5075 р.
$400*29 = 11600 р.
http://www.ogo1.ru/market/noutbuki/34454-T..._AC100-117_T250 "5 350.- Есть в наличии"
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: Ассемблер SPARC, SPARC64

Сообщение deadhead »

rm_ писал(а):
10.08.2011 15:29
"5 350.- Есть в наличии"

а COM-порт, JTAG разъем, Ethernet, обновляемый bootloader, и слоты расширений тоже "в наличии"? :-)
[x] close
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian
Контактная информация:

Re: Ассемблер SPARC, SPARC64

Сообщение rm_ »

deadhead
автор не упомянул, что какие-то из этих вещей ему требуются.
Зато там в наличии замечательный 10" экран, если что и ругают в обзорах AC100, то только не его. :)
А на Асме ведь можно писать не только низкоуровщину, но и демки (см. demoscene).
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Ассемблер SPARC, SPARC64

Сообщение BratSinot »

Народ, я ЗАДАЛ КОНКРЕТНЫЙ ВОПРОС, если хотите яйцами помахать бобалаболить, идите из этой темы к черту!

Да я не спорю, но SPARC - путь НАИБОЛЬШЕГО сопротивления Сам когда-то хотел осилить чисто ради расширения кругозора - qemu задрал своей крайней медленностью после нескольких хелловорлдов.

Я уже не раз говорил о том, что надо не qemu-system-sparc или qemu-system-sparc64 использовать, а кросс binutils и qemu-sparc, qemu-sparc64.
А еще мы говорили о RISC, а не о SPARC. Я и привел вам пример, что на RISC-процессорах интуитивно и очевидно далеко не всегда.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: Ассемблер SPARC, SPARC64

Сообщение frp »

BratSinot писал(а):
10.08.2011 17:00
Народ, я ЗАДАЛ КОНКРЕТНЫЙ ВОПРОС, если хотите яйцами помахать бобалаболить, идите из этой темы к черту!

На ваш вопрос уже давно ответили (см. начало темы). ИМХО обсуждения, не являющиеся ответами на вопрос ТС, вполне допустимы в темах, где изначальный вопрос решен.
BratSinot писал(а):
10.08.2011 17:00
А еще мы говорили о RISC, а не о SPARC. Я и привел вам пример, что на RISC-процессорах интуитивно и очевидно далеко не всегда.

Насчет RISC в целом согласен. У тех же ARM-ов синтаксис не интуитивный и не очевидный (хотя документации по ARM-у - маленькая книжечка, у привычного интела же огромный многотомный справочник). А конкретно у спарков ИМХО один из самых человеческих ассемблеров.
Спасибо сказали:
shotdownsystem
Сообщения: 423
ОС: Basic command interpreter
Контактная информация:

Re: Ассемблер SPARC, SPARC64

Сообщение shotdownsystem »

BratSinot писал(а):
10.08.2011 17:00
Народ, я ЗАДАЛ КОНКРЕТНЫЙ ВОПРОС, если хотите яйцами помахать бобалаболить, идите из этой темы к черту!

Это форум, а не энциклопедия и небольшие отклонения от темы вполне естественны... ну в сад, так в сад.
puts ("Working, please wait...");while(1);
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: Ассемблер SPARC, SPARC64

Сообщение BratSinot »

shotdownsystem писал(а):
10.08.2011 17:48
Это форум, а не энциклопедия и небольшие отклонения от темы вполне естественны... ну в сад, так в сад.

Да, вот только вещи типа: "Зачем?" или "Иди используй это", не ликвидны, да и потом существует ряд тем, в которых отклонения делать нежелательно, а особенно если тот кто запостил не знает тему темы в которой отпостил.
Спасибо сказали:
Ответить