На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Изучение GAS с GCC
    Приветствую!
    Задумал поупражняться в написании кода программ на ассемблере GNU AS. Подскажите, пожалуйста, самое простое пособие и задачи для тренировки. Мне рекомендовали в интернете использовать только набор инструкций для 8086. В дальнейшем хочу попробовать сделать уклон на параллельные программы. Какой набор инструкций попроще? Есть ли смысл сразу начинать писать для IA-64? В общем, буду рад любым советам. :)
      Приветствую в ответ! :)

      Цитата 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 (хотя и там терпимо).
        Основной набор - это 8086 instruction set? Почему переходы отличаются в ОС - разве ассемблер не переводится напрямую в машинные коды процессоров? Спасибо.
        Сообщение отредактировано: Sunless -
          Напрямую не переводится. В зависимости от архитектуры переводы будут несколько отличаться.
            Цитата Sunless @
            Основной набор - это 8086 instruction set?
            Не только 8086, но и 80386, Pentium и пр.

            Цитата Sunless @
            Почему переходы отличаются в ОС
            Какие переходы?
              Обработка транслятором кода на ассемблере для выполнения в каждой из ОС.
                Sunless, почему это названо "переходами"?
                Помимо машинного кода там есть ещё заголовки исполняемого (или объектного) файла и т.п. В каждой из ОС свои форматы исполняемых файлов.

                Добавлено
                А сами инструкции кодируются одинаково вне зависимости от ОС, в зависимости от архитектуры только отличия могут быть (16/32/64 бита).
                  Про переходы - это наобум название подобрано, т.к. не спец я пока что.
                  Ссылки в Полезных ссылках смотрю.
                  Буду рад, если сразу направите к описанию аппаратных возвожностей, из которых есть доступ напрямую из Ассемблера, т.к. с командами более-менее понятно, как работать.
                    Цитата Sunless @
                    Буду рад, если сразу направите к описанию аппаратных возвожностей, из которых есть доступ напрямую из Ассемблера, т.к. с командами более-менее понятно, как работать.
                    Я не линуксоид, но вряд ли в Линуксе будет доступно программирование какого-либо железа напрямую. Разве что при разработке модулей ядра.
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0306 ]   [ 15 queries used ]   [ Generated: 29.03.24, 07:43 GMT ]