Классические тексты ассемблера, не используя x86?

UML мертв, мертв, мертв: UML Действительно Мертвый, Или Только Каталептический?

Обмен информацией через электронную доску/Документация в порядке. Генерация кода от него? Кому нужно это и для какой?

8
задан wrp 27 November 2009 в 07:57
поделиться

10 ответов

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

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

3
ответ дан 5 December 2019 в 07:58
поделиться

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

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

3
ответ дан 5 December 2019 в 07:58
поделиться

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

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

1
ответ дан 5 December 2019 в 07:58
поделиться

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

Я уверен, что большую часть. в итоге превратился в свалку, но, возможно, часть его была спасена любителями.

Возможно, стоит поискать архивные материалы в формате PDF от Motorola, MOS Technology, Digital Equipment Corporation и т. д.

0
ответ дан 5 December 2019 в 07:58
поделиться

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

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

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

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

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

и TMS 16016/32032.

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

и TMS 16016/32032.

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

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

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

1
ответ дан 5 December 2019 в 07:58
поделиться

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

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

Так что, может быть, просто нет

0
ответ дан 5 December 2019 в 07:58
поделиться

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

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

3
ответ дан 5 December 2019 в 07:58
поделиться

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

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

1
ответ дан 5 December 2019 в 07:58
поделиться

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

1
ответ дан 5 December 2019 в 07:58
поделиться
8
ответ дан 5 December 2019 в 07:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: