||[wiki:description_dernieres_seances retour au descriptif des séances "système"]|| [[PageOutline]] {{{#!html

Boot et premier programme en mode kernel

}}} = 1. Premier programme en assembleur dans la seule section de boot == Codes {{{#!c .section .boot,"ax",@progbits // def. of a new section: .boot (see https://bit.ly/3gzKWob) // flags "ax": a -> allocated means section put in memory // x -> section contains instructions // type @progbits: contains somethings (not just space) boot: la $26, kinit // get address of kinit() function j $26 // goto kinit() }}} [attachment:tp2_hcpu.s] == Objectif - Affichage d'un message sur le terminal avec un programme en assembleur. == Compétences acquises - Savoir produire un exécutable à partir d'un code en assembleur. - Savoir comment afficher un caractère sur un terminal. == Questions - Dans quel fichier se trouve la description de l'espace d'adressage du MIPS ? - Dans quel fichier se trouve le code de boot et pourquoi l'avoir nommé ainsi ? - A quelle adresse démarre le MIPS ? - Que produit le compilateur C quand on utilise l'option -c ? - Que fait l'éditeur de liens ? - De quels fichiers a besoin l'éditeur de liens pour fonctionner ? - Dans quelle section se trouve le code de boot pour le compilateur ? - Dans quelle section se trouve le message hello pour le compilateur ? - Dans quelle section se trouve le code de boot dans le code exécutable ? - Dans quelle région de la mémoire le code de boot est placé ? - Comment connaît-on l'adresse du registre de sortie du contrôleur de terminal TTY ? - Comment sait-on que le message est fini et que le programme doit s'arrêter ? - Pourquoi terminer le programme par un `dead: j dead` ? = 2. Saut dans la fonction kinit() du noyau == Objectif de l'étape - Affichage d'un message depuis le code du noyau toujours en assembleur == Compétences acquises - Comment aller à une adresse définie dans un autre fichier - Création d'une section dans le code objet produit par le compilateur == Questions - Quel est le nom de la directive assembleur permettant de déclarer une section