Je recherche des textes qui donnent un traitement détaillé des principes de programmation de montage et n'utilisent pas X86 comme architecture cible. Je n'ai trouvé aucun livre récent comme celui-là, mais je m'attendrais à ce qu'il y ait de bonnes rédigées dans les années 1970 et 1980, lorsque toutes les applications étaient encore écrites en montage. L'architecture utilisée doit également être l'une des conceptions plus propres, telles que le 6502 ou le VAX. P>
11 Réponses :
Ce n'est pas un livre classique (a été publié à l'origine dans les années 90), mais j'ai appris MIPS ASM de Organisation informatique et conception: l'interface matérielle / logicielle em> par Patterson et Hennessy (ISBN: 0123706068). Le livre n'est pas strictement sur l'assemblage; C'est un manuel d'architecture informatique. Mais Mips est une architecture décemment propre. P>
Bien que je suppose que si vous demandez un classique, vous recherchez probablement quelque chose qui va assez indépendant dans les travaux. P>
Knuths L'art de la programmation informatique fournit des exemples dans Mix ou MMIX , un langage d'assemblage hypothétique. P>
L'art de la programmation informatique (quand il est fini) sera assez complet! p>
Je pense que le marché des livres sur les années 1970 et les processeurs des années 1980 était minuscule et vous ne trouveriez que la documentation des fabricants, le cas échéant. P>
Je suis sûr que la plupart d'entre eux se sont terminés comme des décharges, mais peut-être une partie de celle-ci a été sauvée par des amateurs. P>
Il peut être intéressant de rechercher un matériau archivé au format PDF, de Motorola, de la technologie MOS, de la société d'équipement numérique, etc. p>
J'ai utilisé Ce livre à l'école . C'était pour Motorola 68000. P>
J'ai aussi trouvé gratuitement Programmation de l'assemblage de bras Réservez en ligne. P>
Je doute que c'est toujours en imprimé, mais mon diplômé de l'Université de départ CS classe en 1977 a utilisé le CDC Cyber A>, une des architectures de Seymour Cray. (Sainte Moly! C'est sur Amazon! ) est une très jolie langue d'assemblage décente. Il comprenait une fonctionnalité unique appelée Micros EM>, qui était une sorte de macros, mais plus flexible pour les trucs de cordes telles que la création de symboles En fait, à ce moment-là, des applications entières étaient un em> communément écrites en montage. Je connaissais un éditeur de texte qui était et de bonnes portions du système d'exploitation étaient certainement, mais peu d'applications. P>
Au-delà, je ne me souviens pas de bons livres de langues de montage. Mais mon exposition était limitée depuis la deuxième classe CS utilisée le nouveau Motorola 6800 - et qui a été documentée par une collection ad hoc de notes. Au cours des dernières années, nous avons utilisé C sur UNIX V6, mais il n'était pas nécessaire d'écrire l'Assemblée et seulement quelques exercices où il était utile de lire et de comprendre la langue de montage PDP-11, en particulier pour la classe de lecture du noyau, bien que 98% de Le noyau a été écrit en Après toute cette exposition, je savais suffisamment de processeurs et d'assembleurs qui faisaient rarement que j'ai besoin de plus que la référence d'architecture du processeur du fabricant et un assembleur, à l'exception des processeurs Intel. Un grand défi était le langage de sortie du compilateur fileté RSX de DEC qui consistait complètement d'une série de macros assembleuses. Mais la plupart des transformateurs étaient simples à comprendre et à programmer, y compris les instruments du Texas 9900, Motorola 68000 et 68010, Z80, 6502, VAX 750 et le TMS 16016/32032. P>
Les processeurs familiaux Intel étaient exceptionnellement difficiles à grok, à la fois la famille 8086 et la famille 8047/8052. Hautement non orthogonal et chargé de modes étranges: pourquoi peut-on label1 code> via
Label999 code> Trois lignes de source. P>
C code>. p>
hache code> et
bx code> être échangé directement, mais pas
ds code> et
es code>? Surtout après la sortie du 80386, le registre de segment en mode protégé a entraîné une pénalité de cycle d'horloge énorme. Ensuite, il y avait les instructions de pseudo de contrôle de segment étrange et des classes de segment et un localisateur de code - un post-traitement du code d'objet après la liaison. Beaucoup d'outils étranges et maladroits. P>
Alexander Stepanov, dans la conférence 1 de son Notes , parle de sa conversion à l'idée de la programmation de l'assemblée "structurée". Voulant faire un suivi sur cette idée, j'ai la recherche de livres avec des titres comme "Programmation de montage structuré à FOO". Mais ce que j'ai trouvé s'est avéré être une couverture de l'architecture du processeur plutôt que des principes de la conception du programme. La plupart des livres mentionnés dans d'autres réponses ici sont conformes à cela. P>
J'ai regardé l'AOCP de Knuth, et cela est certainement détaillé et utilise MMIXAL. Mais à part un petit morceau dans v. 1, ch. 1.4, il s'agit de la conception des algorithmes et non de la conception du programme. C'est donc vraiment dans une catégorie avec quelque chose comme Cormen, et. Al. "Introduction aux algorithmes". P>
Alors peut-être qu'il ne s'agit que de ce que je cherchais. p>
Je regarderais également l'ensemble de jeu de puces 6809 et 68000 pour "conception de nettoyage" basé sur ce que j'ai programmé à l'arrière puis dans l'assembleur. P>
Pour aller plus loin, j'ai trouvé l'ensemble d'assembleur IBM 360/670 pour être assez facile à coder. Textes spécifiques - Recherchez quelques vieux livres de texte pour que vous souhaitiez avoir une très bonne mise à la terre en gestion de registres, etc. J'en ai probablement un sur une étagère quelque part, regardera dans les coins poussiéreux lorsque j'ai une chance. P>
Je ne sais pas pourquoi mais je n'ai pas aimé le Z80 dans l'ancien PC Xerox, c'était une douleur pour une raison quelconque. P>
Consultez les microcontrôleurs populaires tels que le Série ATMEL AVR . C'est là que la programmation de l'assembleur est toujours un sujet brûlant. Il y a beaucoup de livres qui vous apprendra comment programmer de tels appareils, ainsi que prototypage Systems qui vous permettront de construire des gadgets vraiment cools. p>
ATMEL AVR Les microcontrôleurs ont une architecture propre, de même que les processeurs de bras. Évitez les périphériques PIC de microchip car ils utilisent la mémoire de la pagie. Vous avez besoin d'un microcontrôleur avec un espace d'adresse linéaire. P>
Le TI MSP430 est une très belle architecture, me rappelait la PDP11 la première fois que je l'ai vue. En ce qui concerne les livres, je ne sais pas que j'ai commencé à en écrire un mais jamais fini ... probablement pas le genre que vous recherchiez de toute façon. P>
Quelques livres classiques couvrant le 6502; Texte complet en ligne: P>
Langue de la machine pour les débutants (1983) P>
Le deuxième livre de la machine (1984) P>
Programmation de langue d'assemblage pour les ordinateurs Atari (1984) P>
Chris Torrence a récemment mis à jour de Robert Wagner's Lignes d'assemblage avec diverses corrections. Cela a été une grande aide pour me faire démarrer. P>
Le 6502 était une conception propre ???? Rire creux.
Eh bien, c'était plus propre que le 8080:]