Programmation du sol vers le haut Jonathan Bartlett Sous la direction de Domini
Programmation du sol vers le haut Jonathan Bartlett Sous la direction de Dominick Bruno, Jr. Programmation du sol vers le haut par Jonathan Bartlett Edité par Dominick Bruno, Jr. Copyright © 2003 par Jonathan Bartlett Permission est accordée de copier, distribuer et/ou modifier ce document selon les termes de la GNU Free Documentation License, Version 1.1 ou toute version ultérieure publiée par la Free Software Foundation ; avec sans Sections invariantes, sans texte de première page de couverture et sans texte de couverture. Une copie de la licence est incluse dans l'annexe H. En outre, vous est accordée de plein droit d'utiliser les exemples de code pour n'importe quel but sans même avoir à créditer les auteurs. Toutes les marques sont la propriété de leurs propriétaires respectifs. Ce livre peut être acheté à http://www.bartlettpublishing.com/ Ce livre n'est pas un ouvrage de référence, c'est un livre d'introduction. Il n'est donc pas adapté par lui-même à apprendre comment au programme professionnellement dans x 86 assembly language, comme certains détails ont été laissées aux rendre l'apprentissage plus lisse. Le point du livre est d'aider l'élève à comprendre comment langage d'assemblage et la programmation des travaux, ne pas d'être une référence à l'objet informatique. Référence informations sur un processeur particulier peuvent être obtenues en communiquant avec la société qui le rend. Pour recevoir un exemplaire de cet ouvrage sous forme électronique, veuillez visiter le site Web http://Savannah.nongnu.org/projects/pgubook/ ce site contient les instructions pour télécharger un Copie transparente de ce livre, tel que défini par la licence de Documentation libre GNU. Table des matières 1. Introduction........................................................................................................1 Welcome to Programming ...............................................................................1 Your Tools........................................................................................................3 2. Computer Architecture .....................................................................................7 Structure de la mémoire de l'ordinateur...7 The CPU...........................................................................................................9 Some Terms ...................................................................................................11 Interpreting Memory......................................................................................13 Data Accessing Methods................................................................................14 Review ...........................................................................................................16 3. Your First Programs........................................................................................19 Entering in the Program.................................................................................19 Esquisse d'un programme de langage d'assemblage...22 Planning the Program.....................................................................................28 Finding a Maximum Value.............................................................................31 Addressing Modes .........................................................................................41 Review ...........................................................................................................45 4. All About Functions.........................................................................................49 Traitant de complexité...49 How Functions Work.....................................................................................50 Fonctions du langage assembleur en utilisant la Convention d'appel C...52 A Function Example......................................................................................59 Recursive Functions.......................................................................................64 Review ...........................................................................................................71 5. Dealing with Files.............................................................................................75 The UNIX File Concept.................................................................................75 Buffers and .bss ...........................................................................................76 Fichiers standards et spéciaux...78 Using Files in a Program................................................................................79 III Review ...........................................................................................................93 6. lecture et d'écriture des registres simples...95 Writing Records...........................................................................................100 Reading Records..........................................................................................104 Modifying the Records ................................................................................111 Review .........................................................................................................114 7. développer des programmes robustes...117 Where Does the Time Go?...........................................................................117 Quelques conseils pour l'élaboration de programmes robustes...118 Gérer efficacement les erreurs...121 Notre programme de fabrication plus robuste...123 Review .........................................................................................................126 8. partage de fonctions avec des bibliothèques de Code...129 Using a Shared Library................................................................................130 Comment partage les bibliothèques du travail...133 Trouver des informations sur les bibliothèques...134 Useful Functions..........................................................................................140 Construction d'une bibliothèque partagée...141 Review .........................................................................................................143 9. intermédiaire mémoire sujets...147 Comment un ordinateur vue (s) mémoire...147 La disposition de la mémoire d'un programme de Linux...149 Chaque adresse mémoire est un mensonge...151 Getting More Memory.................................................................................155 Un Simple gestionnaire de mémoire...157 Using our Allocator......................................................................................174 More Information.........................................................................................177 Review .........................................................................................................178 IV 10. compter comme un ordinateur...181 Counting.......................................................................................................181 Vérité, mensonge et nombres binaires...186 Le registre d'état de programme...195 Autres systèmes de numérotation...196 Nombre octal et hexadécimal...199 Order of Bytes in a Word.............................................................................201 Conversion de nombres pour l'affichage...204 Review .........................................................................................................210 11. High-Level Languages.................................................................................213 Langages compilés et interprétés...213 Your First C Program...................................................................................215 Perl...............................................................................................................218 Python..........................................................................................................219 Review .........................................................................................................220 12. Optimization.................................................................................................223 When to Optimize........................................................................................223 Where to Optimize.......................................................................................224 Local Optimizations.....................................................................................225 Global Optimization.....................................................................................229 Review .........................................................................................................230 13. Moving On from Here .................................................................................233 From the Bottom Up....................................................................................234 From the Top Down.....................................................................................234 From the Middle Out ...................................................................................235 Specialized Topics .......................................................................................236 Autres ressources sur le langage d'assemblage...237 v A. GUI Programming........................................................................................239 B. Common x 86 Instructions...257 C. Important System Calls................................................................................271 D. Table of ASCII Codes ...................................................................................275 E. C idiomes en assembleur...277 F. Using the GDB Debugger..............................................................................289 G. Document History.........................................................................................299 H. licence de Documentation libre GNU...301 I. Personal Dedication........................................................................................311 Index....................................................................................................................313 VI Chapitre 1. Introduction Bienvenue à la programmation J'aime la programmation. J'aime le défi de faire non seulement un programme de travail, mais de le faire avec style. La programmation est comme la poésie. Elle véhicule un message, non seulement à l'ordinateur, mais à ceux qui modifier et utiliser votre programme. Avec un programme, vous construisez votre propre monde avec vos propres règles. Vous créez votre monde selon à votre conception de la solution et le problème. Programmeurs magistrales créer des mondes avec des programmes qui sont très clairs et concis, comme un poème ou dans cet essai. Un des plus grands programmeurs, Donald Knuth, décrit la programmation pas comme indiquant à un ordinateur Comment faire quelque chose, mais dire à une personne comment ils le feraient Commandez un ordinateur pour faire quelque chose. Le point est que les programmes sont destinés à être lu par des gens, pas seulement les ordinateurs. Vos programmes vont être modifiés et mis à jour en d'autres temps après que vous passez à d'autres projets. Programmation n'est donc pas comme beaucoup sur la communication et un ordinateur qu'il communique à ceux qui viennent après vous. Un programmeur est un résolveur, un poète et un instructeur tout à une fois. Votre but est de résoudre le problème à la main, faisant avec l'équilibre et le goût, et enseigner votre solution pour les futurs programmeurs. J'espère que ce livre peut enseigner à moins une partie de la poésie et la magie qui fait le calcul passionnant. La plupart des livres Introduction à la programmation me frustrent sans fin. À la fin de eux vous pouvez toujours demander « comment l'ordinateur vraiment fonctionne? » et n'ont pas une bonne réponse. Ils ont tendance à passer sur les sujets qui sont difficiles, même s'ils sont important. Je vous emmènera à travers les questions difficiles parce que c'est le seul moyen pour passer à la programmation magistrale. Mon but est de vous emmener de savoir rien sur la programmation pour comprendre comment penser, écrire et apprendre comme un programmeur. Vous ne saurez pas tout, mais vous aurez un fond pour savoir comment tout se tient ensemble. À la fin de ce livre, vous devriez être en mesure de faire la suivant : 1 Chapitre 1. Introduction • Comprendre comment un programme fonctionne et interagit avec d'autres programmes • Lire les programmes d'autrui et apprendre comment ils fonctionnent • Apprendre de nouveaux langages de programmation rapidement • Apprendre les concepts avancés en informatique rapidement Je ne vais pas vous apprendre tout. L'informatique est un champ massif, surtout Lorsque vous combinez la théorie avec la pratique de la programmation informatique. Cependant, je vais essayer de vous aider à démarrer sur les fondations, ainsi vous pouvez facilement aller partout où vous voulez par la suite. Il y a un peu d'un problème de poulets et des œufs dans l'enseignement de la programmation, en particulier le langage assembleur. Il y a beaucoup à apprendre - c'est presque trop de choses à apprendre presque aussitôt, mais chaque pièce dépend de tous les autres. Par conséquent, vous devez être patient avec vous-même et l'ordinateur tout en apprenant à programmer. Si vous n'avez pas comprendre quelque chose la première fois, le relire. Si vous ne comprenez toujours pas elle, c'est parfois mieux de le prendre par la foi et y revenir plus tard. Souvent après plusieurs exposition aux idées de programmation fera plus de sens. Ne vous découragez pas. C'est une longue montée, mais très utile. À la fin de chaque chapitre sont trois séries d'exercices de révision. La première série est plus ou moins régurgitation - ils vérifient pour voir si pouvez vous donner en retour ce que vous avez appris dans le chapitre. Le deuxième ensemble contient les questions d'application - ils vérifient pour voir si vous pouvez appliquer ce que vous avez appris à résoudre des problèmes. L'ensemble final est de voir si vous êtes capable d'élargir vos horizons. Certaines de ces questions ne peuvent pas être responsable jusqu'au plus tard dans le livre, mais ils vous donnent quelques choses à penser. Autres questions nécessitent des recherches dans des sources externes pour découvrir la réponse. D'autres nécessitent simplement analyser vos options et expliquer une meilleure solution. Beaucoup de questions n'ont pas les réponses bonnes ou mauvaises, mais cela ne signifie pas ils sont sans importance. Les questions liées à la programmation, apprendre comment l'apprentissage à la recherche de réponses, et apprendre à regarder vers l'avant sont tous une grande partie d'un travail du programmeur. Si vous avez des problèmes que vous juste ne pouvez pas aller au-delà, il y a une liste de diffusion pour cela 2 Chapitre 1. Introduction livre où les lecteurs peuvent discuter et obtenir de l'aide avec ce qu'ils lisent. Le l'adresse est pgubook-readers@nongnu.org. Cette liste de diffusion est ouverte pour tout type de question ou de discussion dans le sens de ce livre. Vous pouvez vous abonner à Cette liste en vous rendant à http://mail.nongnu.org/mailman/listinfo/pgubook-readers. Vos outils Ce livre enseigne le langage assembleur pour x 86 processeurs et le GNU/Linux Système d'exploitation. C'est pourquoi nous donnerons tous les exemples à l'aide de la Ensemble standard d'outils GCC GNU/Linux. Si vous n'êtes pas familier avec GNU/Linux et le jeu d'outils GCC, elles seront décrites sous peu. Si uploads/Litterature/ programmation-du-sol-vers-le-haut.pdf
Documents similaires










-
51
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Sep 04, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.5509MB