Ассемблер SPARC, SPARC64
Модератор: Модераторы разделов
Ассемблер SPARC, SPARC64
Доброго времени суток!
Есть ли ассемблер под GNU/Linux для архитектур SPARC/SPARC64 на Intel синтаксисе? Просто не хочется использовать диковатый AT&T синтаксис GNU Assembler'а.
Есть ли ассемблер под GNU/Linux для архитектур SPARC/SPARC64 на Intel синтаксисе? Просто не хочется использовать диковатый AT&T синтаксис GNU Assembler'а.
- Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
- Контактная информация:
Re: Ассемблер SPARC, SPARC64
Собсна, главное достоинство AT&T-синтаксиса состоит как раз в том, что он более-менее один для всех процессоров. Использовать синтаксис Intel для не-интеловских процессоров — это какая-то странная идея, имхо :)
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Re: Ассемблер SPARC, SPARC64
Так у спарков ведь свой синтаксис и свой набор комманд, не похожий на интелловский. А туториалы по нем на сайте sun/oracle, ЕМНИП, предлагают использовать обычный gas.
Re: Ассемблер SPARC, SPARC64
Просто мне не очень нравиться что, что-то типа:
Код: Выделить всё
EAX=EBX
Будет выглядеть как:
Код: Выделить всё
mov %(EBX), %(EAX)
Первый вариант гораздо более интуитивно понятен, ежели второй. Ну и всевозможные разименование(не знаю как это в ассемблере называется), на Intel-синтаксисе усе просто [tmp] и готово, на AT&T черт знает что!
-
- Сообщения: 423
- ОС: Basic command interpreter
- Контактная информация:
Re: Ассемблер SPARC, SPARC64
move %(EBX) in %(EAX). Все логично.))
Простите за праздный интерес, а что за необходимость в использовании ассемблера?
puts ("Working, please wait...");while(1);
Re: Ассемблер SPARC, SPARC64
Щаз, не EBX в EAX, а EAX в EBX.
Простите за праздный интерес, а что за необходимость в использовании ассемблера?
Пока необходимость в обучении. Что-то отличное от x86, amd64, IA-64.
-
- Сообщения: 423
- ОС: Basic command interpreter
- Контактная информация:
Re: Ассемблер SPARC, SPARC64
ну да, тогда move of EBX to EAX ))
А зачем асму обучатся ? из интереса?
puts ("Working, please wait...");while(1);
Re: Ассемблер SPARC, SPARC64
А зачем асму обучатся ?
Как минимум поймешь как работает процессор, и вообще как устроены, и как работают программы.
Как максимум, писать проги.
Re: Ассемблер SPARC, SPARC64
BratSinot писал(а): ↑09.08.2011 19:24Просто мне не очень нравиться что, что-то типа:
Код: Выделить всё
EAX=EBX
Будет выглядеть как:
Код: Выделить всё
mov %(EBX), %(EAX)
в интелловском синтаксисе это бы выглядело как mov eax, ebx. И ни в одном асме (во всяком случае без макросов и препроцессора) это не будет выглядеть как EAX=EBX
А в спарке подобное будет выглядеть mov %g1, %g0.
PS. И все таки - почему асм? И почему именно спарк? Если just for fun, то смысл парится со спарком, если его у вас все равно, скорее всего, нет? Хоть его синтаксис намного красивее и проще x86 (и в теории девайсы на нем должны быть быстрее), но на нем нет домашних девайсов (ноуты Tadpol-а стоят столько, что дешевле купить SPARC Enterprise Server себе домой ).
Для этого он малопригоден. Максимум - совсем низкоуровневые части ядра и немного более быстрые реализации некоторых алгоритмов. Хотя, на асме проще писать вирусы-полиморфники
Re: Ассемблер SPARC, SPARC64
frp писал(а): ↑09.08.2011 22:39BratSinot писал(а): ↑09.08.2011 19:24Просто мне не очень нравиться что, что-то типа:
Код: Выделить всё
EAX=EBX
Будет выглядеть как:
Код: Выделить всё
mov %(EBX), %(EAX)
в интелловском синтаксисе это бы выглядело как mov eax, ebx. И ни в одном асме (во всяком случае без макросов и препроцессора) это не будет выглядеть как EAX=EBX
... Я знаю, это был типо псевдокод, не так-ли?
PS. И все таки - почему асм? И почему именно спарк? Если just for fun, то смысл парится со спарком, если его у вас все равно, скорее всего, нет? Хоть его синтаксис намного красивее и проще x86 (и в теории девайсы на нем должны быть быстрее), но на нем нет домашних девайсов (ноуты Tadpol-а стоят столько, что дешевле купить SPARC Enterprise Server себе домой ).
Ну а про qemu и crosscompile вы слышали?
Re: Ассемблер SPARC, SPARC64
Слышал. Видел. Пробовал даже ради эксперимента поставить в него debian. SPARC64 в полуживом состоянии (ни линукс, ни солярка не запускаются). SPARC32 загружается и работает, но настолько медленно, что установка debian etch (последний, который умеет sparc32) заняла несколько часов. А загружается установленная система несколько минут. aptitude запускается больше минуты. В общем - медленно и абсолютно неюзабельно. Никогда не понимал людей, изучающих программирование исключительно ради эмуляторов.
-
- Сообщения: 423
- ОС: Basic command interpreter
- Контактная информация:
Re: Ассемблер SPARC, SPARC64
По таким критериям лучше ARM взять. Отладочная платы тыщи 3 стоит. На нем и все мелочь делают от мобильников до холодильников.
А актуальных задач на ассемблере с каждым годом все меньше и меньше. Ща рулят ХДЛи и Си.
puts ("Working, please wait...");while(1);
Re: Ассемблер SPARC, SPARC64
Я армами не занимался и в России ни разу не был, но, судя по Интернету, купить какой-нибудь BeagleBoard или PandaBoard в России просто нельзя. Можно только готовый продукт, типа SheevaPlug и его аналогов.
Re: Ассемблер SPARC, SPARC64
Еще как пригоден, на нем можно написать что угодно.
P.S. Извините, если что, но мне все равно ваше мнение по поводу программирования
frp писал(а): ↑09.08.2011 22:49
Слышал. Видел. Пробовал даже ради эксперимента поставить в него debian. SPARC64 в полуживом состоянии (ни линукс, ни солярка не запускаются). SPARC32 загружается и работает, но настолько медленно, что установка debian etch (последний, который умеет sparc32) заняла несколько часов. А загружается установленная система несколько минут. aptitude запускается больше минуты. В общем - медленно и абсолютно неюзабельно.
Сразу видно что не слышали. Вы не через qemu-system-sparc64 запускайте, а компилируйте, компонуйте прогу и запускайте бинарник через qemu-sparc64.
Никогда не понимал людей, изучающих программирование исключительно ради эмуляторов.
... Никогда не понимал людей без воображения. ОБУЧЕНИЕ вы такое слово слышали?
shotdownsystem писал(а): ↑09.08.2011 23:20
По таким критериям лучше ARM взять. Отладочная платы тыщи 3 стоит. На нем и все мелочь делают от мобильников до холодильников.
А SPARC станцию я могу за 5к купить и что?
А актуальных задач на ассемблере с каждым годом все меньше и меньше. Ща рулят ХДЛи и Си.
Я уже говорил, мне абсолютно ехало, болело ваше мнение. Я тут не мнение спрашиваю.
Re: Ассемблер SPARC, SPARC64
И да, насчет вашей отладочной ARM-пдатки, *nix то-же туда ставить будете?
Re: Ассемблер SPARC, SPARC64
Конечно. У BeagleBoard AFAIK самое популярное применение - ставить туда Linux (или андроид, который тоже Linux, для других целей довольно мощный процессор, видеокарта с 3d, куча разъемов и прочая ерунда просто не нужны).
Слышал. Много ли смысла учить ассемблер под архитектуру, под которую практически никто не пишет софта на ассемблере? Не пишут, ибо нет смысла: SPARC - это RISC, и там, в отличии от x86, набор комманд очень маленький, простой и очевидный => практически нет вещей, которые принципиально не может сгенерировать компилятор (а в x86 таких вещей более, чем достаточно). Будете кодить драйверы, компиляторы, ядра ОСей или свой libc с блэкджеком и ...? Если же это just for fun, то какой смысл выбирать архитектуру, железок с которой у вас нет и под которой ваши проги будут 100% никому не нужны?
Re: Ассемблер SPARC, SPARC64
А вы слышали такое, что расширение кругозора ведет к прозрению?
Не пишут, ибо нет смысла: 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.
простой и очевидный
Ой как вы заблуждаетесь Знаете что на PPC из памяти в регистр и из регистра в память нужно переносить информаию блоками по 16-бит? Итого, на 32-битном хосте нужно будет выполнить 2 инструкции, на 64-битном 4 инструкции. Как по вашему, это очевидно?
-
- Сообщения: 423
- ОС: Basic command interpreter
- Контактная информация:
Re: Ассемблер SPARC, SPARC64
тогда можете и не читать. или вас к монитору привязали?
Да, и это не проблема
puts ("Working, please wait...");while(1);
Re: Ассемблер SPARC, SPARC64
[ON] Узкая специализация ведет к потере навыков программирования ?
ИМХО, смысл в знаниях есть всегда.
[x] close
Re: Ассемблер SPARC, SPARC64
Я предлагаю быть реалистом и учить китайский обратить внимание на одну из тех архитектур, у которых есть будущее и есть на них реальные, достаточно массовые железки, которые прямо сейчас производятся и продаются.
Это либо упомянутый ARM, либо MIPS в лице Loongson'ов. Lemote Yeeloong 8101B
Насчёт "отладочной ARM платки" за 3к я вообще не понял юмора, какой в ней смысл (учитывая что характеристики будут из позапрошлого десятилетия), когда готовый нетбук AC100 или неттоп Genesi Efika можно купить за сравнимые с её ценою деньги. Или те же SheevaPlug'и, хотя с ними в России чуть посложнее.
Это либо упомянутый ARM, либо MIPS в лице Loongson'ов. Lemote Yeeloong 8101B
Насчёт "отладочной ARM платки" за 3к я вообще не понял юмора, какой в ней смысл (учитывая что характеристики будут из позапрошлого десятилетия), когда готовый нетбук AC100 или неттоп Genesi Efika можно купить за сравнимые с её ценою деньги. Или те же SheevaPlug'и, хотя с ними в России чуть посложнее.
Re: Ассемблер SPARC, SPARC64
Например, для OS-free задач, системных разработок. Обычно на таких платах есть возможность подключить аппаратный отладчик. Относительно характеристик не все так плохо - тот же AC100 на Nvidia Tegra 2xx (в природе имеется и соответсвующая плата, но! не за 3К а за ~300$ и не для "независимых" разработчиков) ее прямой конкурент PandaBoard (175$, в России до 400$) на TI OMAP4430 и Snowball на ST-Erricson Nova 9000 (~230$). Все три SoC базируются на ядре Cortex-A9 - самом что не на есть последнем из доступных на рынке.
[x] close
Re: Ассемблер SPARC, SPARC64
Нет, вот тут вы не правы. Я то-же сначала так думал, вот сейчас начал читать и понял. Там простой набор команд, не всмысле что их мало, в том смысле что например чтобы в 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 таких проблем нет.
Где? Покажите, в каком месте SPARC сложнее/запутаннеее/неочевиднее x86.
Это на PPC. Это не очевидно, но для таких моментов есть документация. И у спарков и паверов это довольно коротенькая книжечка, а у интелла - многотомный справочник, что как бы намекает на его "простоту и очевидность".
Да я не спорю, но SPARC - путь НАИБОЛЬШЕГО сопротивления Сам когда-то хотел осилить чисто ради расширения кругозора - qemu задрал своей крайней медленностью после нескольких хелловорлдов.
Re: Ассемблер SPARC, SPARC64
ее прямой конкурент PandaBoard (175$, в России до 400$)
$175*29 = 5075 р.
$400*29 = 11600 р.
http://www.ogo1.ru/market/noutbuki/34454-T..._AC100-117_T250 "5 350.- Есть в наличии"
Re: Ассемблер SPARC, SPARC64
а COM-порт, JTAG разъем, Ethernet, обновляемый bootloader, и слоты расширений тоже "в наличии"? :-)
[x] close
Re: Ассемблер SPARC, SPARC64
deadhead
автор не упомянул, что какие-то из этих вещей ему требуются.
Зато там в наличии замечательный 10" экран, если что и ругают в обзорах AC100, то только не его.
А на Асме ведь можно писать не только низкоуровщину, но и демки (см. demoscene).
автор не упомянул, что какие-то из этих вещей ему требуются.
Зато там в наличии замечательный 10" экран, если что и ругают в обзорах AC100, то только не его.
А на Асме ведь можно писать не только низкоуровщину, но и демки (см. demoscene).
Re: Ассемблер SPARC, SPARC64
Народ, я ЗАДАЛ КОНКРЕТНЫЙ ВОПРОС, если хотите яйцами помахать бобалаболить, идите из этой темы к черту!
Я уже не раз говорил о том, что надо не qemu-system-sparc или qemu-system-sparc64 использовать, а кросс binutils и qemu-sparc, qemu-sparc64.
А еще мы говорили о RISC, а не о SPARC. Я и привел вам пример, что на RISC-процессорах интуитивно и очевидно далеко не всегда.
Да я не спорю, но SPARC - путь НАИБОЛЬШЕГО сопротивления Сам когда-то хотел осилить чисто ради расширения кругозора - qemu задрал своей крайней медленностью после нескольких хелловорлдов.
Я уже не раз говорил о том, что надо не qemu-system-sparc или qemu-system-sparc64 использовать, а кросс binutils и qemu-sparc, qemu-sparc64.
А еще мы говорили о RISC, а не о SPARC. Я и привел вам пример, что на RISC-процессорах интуитивно и очевидно далеко не всегда.
Re: Ассемблер SPARC, SPARC64
На ваш вопрос уже давно ответили (см. начало темы). ИМХО обсуждения, не являющиеся ответами на вопрос ТС, вполне допустимы в темах, где изначальный вопрос решен.
Насчет RISC в целом согласен. У тех же ARM-ов синтаксис не интуитивный и не очевидный (хотя документации по ARM-у - маленькая книжечка, у привычного интела же огромный многотомный справочник). А конкретно у спарков ИМХО один из самых человеческих ассемблеров.
-
- Сообщения: 423
- ОС: Basic command interpreter
- Контактная информация:
Re: Ассемблер SPARC, SPARC64
Это форум, а не энциклопедия и небольшие отклонения от темы вполне естественны... ну в сад, так в сад.
puts ("Working, please wait...");while(1);
Re: Ассемблер SPARC, SPARC64
shotdownsystem писал(а): ↑10.08.2011 17:48Это форум, а не энциклопедия и небольшие отклонения от темы вполне естественны... ну в сад, так в сад.
Да, вот только вещи типа: "Зачем?" или "Иди используй это", не ликвидны, да и потом существует ряд тем, в которых отклонения делать нежелательно, а особенно если тот кто запостил не знает тему темы в которой отпостил.