Материалы для чтения на разных языках ассемблера? - PullRequest
5 голосов
/ 26 августа 2011

Это вопрос вики для сбора полезных ссылок для изучения языков ассемблера для различных архитектур.

Недавно я пытался прочитать исходный код для Basic Pdp-1 Lisp с 1964 года, и мне нужно было тщательно искать справочные материалы, чтобы получить хоть малейший смысл из кода.Я чувствую, что ссылки, которые я собрал, могут оказаться полезными для любого, кто пытается прочитать код такого же типа, как SpaceWar!

Так что хороший ответ должен содержать:

  • Название архитектуры
  • Нетривиальная программа на ассемблере
    (Это реальная цель вопроса: классическая программа, для изучения которой стоит изучить ассемблер.)
  • Справочники и справочники по пониманию программы

Я начну с моих сборников по чтению LISP Pdp-1.

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

x86 Сборка:

  • Здесь это руководство с более чем 1400 страницами и некоторыми упражнениями, некоторые главы посвящены таким вещам, как булева алгебра и организация системы
  • Документация и руководства Intel здесь , вам не нужно это через несколько лет;)
  • Руководство по оптимизации (довольно продвинутый материал)
  • Здесь вы можете найти ассемблер для разработки приложений win32, как в консоли, так и в окне. Он также включает Windows SDK и описание всех Win32 API
  • Это кажется хорошим руководством по GAS (GNU Assembler), если вы разрабатываете на Linux
  • Некоторые примеры (windows)
0 голосов
/ 26 августа 2011

Pdp-1 LISP

Pdf источника, включая пояснительную статью и списки символов: http://www.google.com/url?sa=D&q=http://www.computerhistory.org/collections/accession/102650371

Список источников ASCII: http://hack.org/mc/software/lisp.p2

Хороший обзор: http://en.wikipedia.org/wiki/PDP-1

Руководство по Pdp-1, включая ссылку на набор инструкций: http://www.bitsavers.org/pdf/dec/pdp1/F15B_PDP1_Handbook_1961.pdf

Руководство по макросам, описывающее, как инструкции формируются арифметикой: http://www.bitsavers.org/pdf/dec/pdp1/PDP-1_Macro.pdf

Альтернативное представление набора команд, иллюстрирующее компоновку команд смены и управления: http://simh.trailing -edge.com / Docs / architecture18b.pdf

Эта последняя ссылка очень важна для понимания таких трюков, как самая первая инструкция:

-/Lisp interpreter 3-20-64, part 1
 000004                 4/
-/go
 000004         go,
 000004 764607          hlt+cla+cli+7-opr-opr

Это можно было бы написать с меньшим количеством запутывания (но с меньшей семантической информацией) как:

opr 4607

Или с большей семантикой (и еще более запутанной) как:

hlt+cla+cli+clf+07-opr-opr-opr

Но так как clf == opr это было бы глупо.

Последний важный ресурс для программирования ассемблера 60-х годов - Кнут, том. 1 (1ed или 2ed). Это объясняет некоторые из более простых самоизвращений, которые демонстрирует код pdp-1.

...