Классические тексты на ассемблере, не использующие x86? - PullRequest
8 голосов
/ 27 ноября 2009

Я ищу тексты, которые подробно описывают принципы программирования на ассемблере и не используют x86 в качестве целевой архитектуры. Я не нашел ни одной недавней подобной книги, но я ожидаю, что есть некоторые хорошие книги, написанные в 1970-х и 1980-х годах, когда целые приложения все еще были написаны в сборке. Используемая архитектура также должна быть одной из более чистых конструкций, таких как 6502 или VAX.

Ответы [ 11 ]

8 голосов
/ 18 июня 2010

Несколько классических книг, охватывающих 6502; полный текст онлайн:

Машинный язык для начинающих (1983)

Вторая книга машинного языка (1984)

Программирование на ассемблере для компьютеров Atari (1984)

3 голосов
/ 27 ноября 2009

Кнутс Искусство компьютерного программирования предоставляет примеры на MIX или MMIX , гипотетическом языке ассемблера.

Искусство компьютерного программирования (когда оно будет закончено) будет довольно основательным!

3 голосов
/ 30 ноября 2009

Я бы также посмотрел на сборку чипсетов 6809 и 68000 для «чистого дизайна», основываясь на том, что я тогда запрограммировал на ассемблере.

Чтобы пойти дальше, я обнаружил, что набор ассемблера IBM 360/670 довольно легко кодировать. Конкретные тексты - ищите старые учебники для этого, если вы хотите получить довольно хорошее основание в управлении регистрами и т. Д. У меня, вероятно, где-то есть один на полке, я посмотрю в пыльных углах, когда у меня будет шанс.

Не знаю почему, но мне НЕ нравился Z80 в старом ПК Xerox, по какой-то причине это было болезненно.

3 голосов
/ 27 ноября 2009

Это не классическая книга (изначально была опубликована в 90-х годах), но я изучил MIPS asm у Организация и дизайн компьютеров: аппаратно-программный интерфейс , автор Паттерсон и Хеннесси (ISBN: 0123706068). Книга не только о сборке; это учебник по компьютерной архитектуре. Но MIPS - это довольно чистая архитектура.

Хотя я полагаю, что если вы спрашиваете о классике, вы, вероятно, ищете что-то, что достаточно глубоко вписывается в работу.

1 голос
/ 19 апреля 2010

TI msp430 - очень приятная архитектура, напомнившая мне pdp11, когда я впервые увидел его. Что касается книг, я не знаю, что начал писать одну, но так и не закончил ... Наверное, не тот, который вы искали.

1 голос
/ 29 января 2010

Ознакомьтесь с популярными микроконтроллерами, такими как серия Atmel AVR . Здесь программирование на ассемблере все еще остается горячей темой. Есть множество книг , которые научат вас программировать такие устройства, а также прототипирование систем, которые позволят вам создавать действительно крутые гаджеты.

Микроконтроллеры Atmel AVR имеют чистую архитектуру, как и процессоры ARM. Избегайте устройств Microchip PIC, поскольку они используют постраничную память. Вам нужен микроконтроллер с линейным адресным пространством.

1 голос
/ 27 ноября 2009

Я сомневаюсь, что он все еще печатается, но в моем начальном университетском классе CS в 1977 году использовалась CDC Cyber ​​, одна из архитектур Seymour Cray. (Holy Moly! Это на Амазоне! ) На самом деле это довольно приличный язык ассемблера. Он включал в себя уникальную функцию под названием micros , которая была похожа на макрос, но более гибкая для строкового обмана, например создания символов от label1 до label999 примерно в трех строках источника.

На самом деле, в то время целые приложения были un , обычно написанными на ассемблере. Я знал о текстовом редакторе, который был, и хорошие части операционной системы, конечно, были, но мало приложений.

Кроме того, я не помню, чтобы там были хорошие книги на ассемблере. Но моя экспозиция была ограничена, так как второй класс CS использовал новый Motorola 6800 - и это было задокументировано специальной коллекцией заметок. В последующие годы мы использовали C в Unix v6, но не требовалось писать ассемблер, и было только несколько упражнений, в которых было полезно читать и понимать язык ассемблера PDP-11, особенно для класса чтения ядра, хотя 98% ядро было написано в C.

После всего этого разоблачения я знал достаточно процессоров и ассемблеров, которые редко требовали большего, чем эталонная архитектура процессора производителя и ассемблер - кроме процессоров iNtel. Большой проблемой был язык вывода DEC для многопоточного компилятора RSX, который полностью состоял из серии макросов на ассемблере. Но большинство процессоров были просты для понимания и программирования, включая Texas Instruments 9900, Motorola 68000 и 68010, Z80, 6502, VAX 750 и TMS 16016 / 32032.

Процессоры семейства iNtel были исключительно трудными для работы, как семейство 8086, так и семейство 8047/8052. Сильно не ортогональны и загружены странными режимами: почему можно напрямую обмениваться AX и BX, но не DS и ES? Особенно после выхода 80386 - загрузка сегмента в защищенном режиме повлекла за собой огромные потери тактового цикла. Затем были странные псевдоинструкции управления сегментами, классы сегментов и локатор кода - постобработка объектного кода после компоновки. Много странных, неуклюжих инструментов.

1 голос
/ 27 ноября 2009

Я использовал эту книгу в школе . Это было для Motorola 68000.

Я также нашел бесплатное Программирование сборки ARM Книга онлайн.

0 голосов
/ 17 июня 2017

Крис Торренс совсем недавно обновил Assembly Lines Роберта Вагнера с различными исправлениями. Это помогло мне начать.

0 голосов
/ 30 ноября 2009

Александр Степанов в лекции 1 из заметки рассказывает о своем переходе к идее "структурированного" программирования на ассемблере. Желая развить эту идею, я искал книги с такими названиями, как «Структурированное программирование сборки в Foo». Но то, что я обнаружил, оказалось освещением некоторой архитектуры процессора, а не принципами проектирования программ. Большинство книг, упомянутых в других ответах здесь, соответствуют этому.

Я посмотрел на AoCP Кнута, и он, безусловно, подробный и использует MMIXAL. Но кроме небольшого в ст. 1, гл. 1.4, речь идет о разработке алгоритма, а не о разработке программы. Так что это действительно категория с чем-то вроде Cormen, et. и др. «Введение в алгоритмы».

Так что, может быть, нет ничего похожего на то, что я искал.

...