Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.217.73.187] |
|
Сообщ.
#1
,
|
|
|
Приветствую!
Задумал поупражняться в написании кода программ на ассемблере GNU AS. Подскажите, пожалуйста, самое простое пособие и задачи для тренировки. Мне рекомендовали в интернете использовать только набор инструкций для 8086. В дальнейшем хочу попробовать сделать уклон на параллельные программы. Какой набор инструкций попроще? Есть ли смысл сразу начинать писать для IA-64? В общем, буду рад любым советам. |
Сообщ.
#2
,
|
|
|
Приветствую в ответ!
Цитата Sunless @ Есть основной набор, скажем так. А есть набор расширений SSE, AVX, BMI и пр.Какой набор инструкций попроще? IA-32 (i386, x86) и Intel 64 (AMD64, x86-64, но не IA-64) – это не наборы, а архитектуры, отличаются регистрами, адресацией, есть некоторые отличия в инструкциях (какие-то не поддерживаются в Intel 64, какие-то не поддерживаются в IA-32, но в целом наборы почти одинаковы) и др. нюансами. А IA-64 – это Itanium, там своё набор, несовместимый с IA-32, вам это не нужно, скорее всего. Пособия см. в "полезных ссылках", прикреплённая тема. Можете начать с основного набора и IA-32, а потом на Intel 64 перейдёте, в Linux этот переход менее болезненный, чем в Windows (хотя и там терпимо). |
Сообщ.
#3
,
|
|
|
Основной набор - это 8086 instruction set? Почему переходы отличаются в ОС - разве ассемблер не переводится напрямую в машинные коды процессоров? Спасибо.
|
Сообщ.
#4
,
|
|
|
Напрямую не переводится. В зависимости от архитектуры переводы будут несколько отличаться.
|
Сообщ.
#5
,
|
|
|
Цитата Sunless @ Не только 8086, но и 80386, Pentium и пр.Основной набор - это 8086 instruction set? Цитата Sunless @ Какие переходы? Почему переходы отличаются в ОС |
Сообщ.
#6
,
|
|
|
Обработка транслятором кода на ассемблере для выполнения в каждой из ОС.
|
Сообщ.
#7
,
|
|
|
Sunless, почему это названо "переходами"?
Помимо машинного кода там есть ещё заголовки исполняемого (или объектного) файла и т.п. В каждой из ОС свои форматы исполняемых файлов. Добавлено А сами инструкции кодируются одинаково вне зависимости от ОС, в зависимости от архитектуры только отличия могут быть (16/32/64 бита). |
Сообщ.
#8
,
|
|
|
Про переходы - это наобум название подобрано, т.к. не спец я пока что.
Ссылки в Полезных ссылках смотрю. Буду рад, если сразу направите к описанию аппаратных возвожностей, из которых есть доступ напрямую из Ассемблера, т.к. с командами более-менее понятно, как работать. |
Сообщ.
#9
,
|
|
|
Цитата Sunless @ Я не линуксоид, но вряд ли в Линуксе будет доступно программирование какого-либо железа напрямую. Разве что при разработке модулей ядра. Буду рад, если сразу направите к описанию аппаратных возвожностей, из которых есть доступ напрямую из Ассемблера, т.к. с командами более-менее понятно, как работать. |