CHAPITRE 9. Les caractères

Documents pareils
Rappels Entrées -Sorties

Bases de programmation. Cours 5. Structurer les données

Rappels d architecture

Codage d information. Codage d information : -Définition-

1 Introduction au codage

Programmation système I Les entrées/sorties

Le langage C. Séance n 4

Structure d un programme

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Conversion d un entier. Méthode par soustraction

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

Logiciel de base. Première année ENSIMAG

Architecture matérielle des systèmes informatiques

Logiciel de Base. I. Représentation des nombres

Jeux de caracte res et encodage (par Michel Michaud 2014)


Programmation C. Apprendre à développer des programmes simples dans le langage C

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Licence Sciences et Technologies Examen janvier 2010

Cours Informatique 1. Monsieur SADOUNI Salheddine

La mémoire. Un ordinateur. L'octet. Le bit

Algorithmique et Programmation, IMA

Informatique Générale

Architecture des ordinateurs Introduction à l informatique

Représentation des Nombres

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Programmation assembleur : aperçu

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

IV- Comment fonctionne un ordinateur?

Une version javascript sera disponible directement dans le cours prochainement.

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

DM 1 : Montre Autoquartz ETA

Représentation d un entier en base b

Programmation impérative

2 Comment fonctionne un ordinateur, dans les grandes lignes

Architecture des ordinateurs

Les chaînes de caractères

Algorithme. Table des matières

Conception de circuits numériques et architecture des ordinateurs

V- Manipulations de nombres en binaire

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Conventions d écriture et outils de mise au point

Initiation à la Programmation en Logique avec SISCtus Prolog

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Microprocesseur + Logiciel

CODAGE DES SMS. 2 Commandes «AT» 25 3 Matériels utilisés 55 4 Interfacer un téléphone GSM 73 5 Réalisations électroniques 101

Glossaire des nombres

Organisation des Ordinateurs

Puissances d un nombre relatif

Compilation (INF 564)

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Chap III : Les tableaux


TP 1. Prise en main du langage Python

ASR1 TD7 : Un microprocesseur RISC 16 bits

Salle de technologie

UE Programmation Impérative Licence 2ème Année

IFT1215 Introduction aux systèmes informatiques

Concevoir son microprocesseur

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Architecture des ordinateurs

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Cours d Informatique

Langage Éric Guérin 5 octobre 2010

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Chapitre 10 Arithmétique réelle

Architecture de l ordinateur

Plan du cours. Historique du langage Nouveautés de Java 7

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Les opérations binaires

Cours Informatique Master STEP

Notions fondamentales du langage C# Version 1.0

Initiation. àl algorithmique et à la programmation. en C

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Programmation en langage C

Langages et Concepts de Programmation Introduction à la programmation en langage C

Les failles Format String

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Comment optimiser les encodages financiers?

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

Introduction au langage C

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Leçon 1 : Les principaux composants d un ordinateur

SUPPORT DE COURS. Langage C

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

Le codage informatique

Connexion sur REDLION G-308 avec le modem GSM GDW-11 pour envoi de SMS

UTILITAIRE BRM BACKING UP, RESTORING AND MOVING CONTENT

GPA770 Microélectronique appliquée Exercices série A

BTS IRIS Cours et Travaux Pratiques. Programmation C. A. Lebret, TSIRIS, Lycée Diderot, 1995/06. en conformité avec le référentiel du BTS IRIS

Transcription:

1 CHAPITRE 9 Les caractères

2 Les caractères Indispensable Permet la saisie Permet l affichage dans une forme compréhensible par les humains Chaque caractère doit être encodé dans une suite de «n» bits Il y a donc 2 n caractères pouvant être encodés sur «n» bits Le nombre représentant le caractère est l indice dans une table d encodage

3 Encodage Il existe différentes tables d encodage BCD 6 bits 64 caractères EBCDIC 8 bits 105 caractères ASCII 7 bits 128 caractères ASCII étendu 8 bits 256 caractères UNICODE 16 bits 65 536 caractères Unicode permet de représenter les ensembles de caractères de plusieurs langages naturels

4 ASCII Code Symbole Hexa Code Symbole Hexa Code Symbole Hexa 0 NUL 00 46. 2E 65 A 41 8 BS 08 47 / 2F 66 B 42 10 LF 0A 48 0 30 67 C 43 13 CR 0D 49 1 31 27 ESC 1B 50 2 32 89 Y 59 32 SP 20 51 3 33 90 Z 5A 33! 21 52 4 34 91 [ 5B 34 " 22 53 5 35 92 \ 5C 35 # 23 54 6 36 93 ] 5D 36 $ 24 55 7 37 94 ^ 5E 37 % 25 56 8 38 95 _ 5F 38 & 26 57 9 39 97 a 61 39 27 58 : 3A 98 b 62 40 ( 28 59 ; 3B 41 ) 29 60 < 3C 121 y 79 42 * 2A 61 = 3D 122 z 7A 43 + 2B 62 > 3E 123 { 7B 44, 2C 63? 3F 124 7C 45-2D 64 @ 40 125 } 7D

5 Parité Peut y avoir un bit additionnel Le bit de parité Souvent utilisé lors de la communication Des erreurs peuvent s introduire dans les bits Le bit de parité permet de détecter une erreur simple dans le code du caractère Le bit de parité est calculé en fonction du nombre de bits à 1 dans le code du caractère

6 Parité Parité paire 0 0 1 1 0 1 1 1 1 Parité impaire 0 0 1 0 0 1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1

7 Encodage Sauf pour UNICODE, tous les encodages utilisent un octet pour emmagasiner la valeur du code de caractère Tous les codes ne sont pas imprimables BS Représente la touche Retour arrière (backspace) ESC Le code de caractère ESCAPE, qui initie souvent une séquence de codes L encodage le plus répandu est ASCII

8 Encodage Dans le code ASCII, la différence entre les majuscules et les minuscules repose sur la valeur du bit 5 A = 0x41 = 65 a = 0x61 = 97 Différence de 32 = 0x20 = 100000 A : 0 1 0 0 0 0 0 1 a : 0 1 1 0 0 0 0 1

9 Instructions Certaines architectures proposent des instructions qui acceptent des chaines de caractères comme opérandes Ce n est pas le cas sur le SPARC Il faut donc considérer les caractères comme des suites de bits Il faut leur appliquer les opérations arithmétiques et logiques pour les manipuler

10 Instructions Transformer une lettre majuscule en minuscule setx adr, %l7, %l0 ldub [%l0], %l1 bset 0x20, %l1 stb %l1, [%l0] Transformer une lettre minuscule en majuscule setx adr, %l7, %l0 ldub [%l0], %l1 bclr 0x20, %l1 stb %l1, [%l0]

11 Lecture/Écriture Depuis le début du cours, on utilise printf pour l écriture à la console scanf pour la lecture printf permet d écrire des nombres directement Sans avoir besoin de les transformer en chaine de caractères scanf permet de lire directement une suite de chiffres et de mettre la valeur décimale en mémoire

12 Lecture/Écriture Lecture du nombre 465 Le résultat est une chaine de caractères contenant 4 = 0x34 6 = 0x36 5 = 0x35 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 On a besoin de la longueur de la chaine Chaque octet représente la valeur à une puissance de 10 (nbcar pos) où pos commence à 1 Pour avoir la valeur décimale du chiffre, on soustrait la valeur du code de 0 (0x30) On additionne ensuite chaque valeur pour obtenir le résultat

13 Lecture/Écriture 4 = 0x34 6 = 0x36 5 = 0x35 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 La chaine contient 3 caractères 0x34 0x30 = 0x4 = 4 4 10 3 1 = 400 0x36 0x30 = 0x6 = 6 6 10 3 2 = 60 0x35 0x30 = 0x5 = 5 5 10 3 3 = 5 400 + 60 + 5 = 465!

14 Lecture/Écriture Une chaine de caractères doit toujours se terminer par le caractère NUL (valeur 0) Pour calculer la longueur d une chaine, on parcourt chaque caractère jusqu à ce qu on rencontre le caractère NUL LgCh: lgc05: save %sp, -208, %sp clr %l0 ldub [%i1+%l0], %l1 brnz,a %l1, lgc05 inc %l0 ret restore %l0, %g0, %o0

15 Lecture/Écriture La conversion d un nombre binaire en une chaine de caractère pour l affichage fonctionne d une façon semblable Pour convertir Divisions successives par 10 Les restes sont les valeurs des chiffres de la chaine de caractères Il faut leur ajouter la valeur du caractère 0 pour obtenir le bon code Les caractères sont dans l ordre inverse Il faut inverse la chaine Il ne faut pas oublier le caractère NUL à la fin!

16 Lecture/Écriture Conversion du nombre 465 vers une chaine de caractères 465 10 = 46 et 465 modulo 10 = 5 46 10 = 4 et 46 modulo 10 = 6 4 10 = 0 et 4 modulo 10 = 4 5 + 0x30 = 0x35 6 + 0x30 = 0x36 4 + 0x30 = 0x34 0x34363500 «465NUL»

17 Lecture/Écriture Maintenant qu on peut convertir Un nombre binaire vers une chaine de caractères Une chaine de caractère vers un nombre binaire Il faut pouvoir afficher et lire, sans utiliser printf scanf

18 Les appels systèmes Un appel système est une interruption logicielle Appelée «trappe» Similaire à un sous-programme Possède des paramètres Lorsque l interruption est terminée, le code appelant continue en séquence Une interruption change Le mode de fonctionnement du processeur Esclave (programme) Maître (système d exploitation) L espace d adressage (donc le processus, le contexte, etc.)

19 Les appels systèmes L interruption logicielle appelle une fonction du système d exploitation Les fonctions sont propres à chaque système Fournissent souvent un ensemble de base équivalent Lecture au clavier Affichage à l écran Terminer un programme (exit) Créer des programmes Etc Permet d accéder aux fonctionnalités du système d exploitation, qui gère la machine

20 Les appels systèmes Sur le SPARC, on appelle une interruption logicielle avec l instruction txxx ta : Trap Always Effectue toujours l appel système tge : Trap Greater Les instructions «trappe» possèdent aussi des paramètres, comme les sous-programmes.

21 Les appels systèmes Sur le SPARC, l adresse de la trappe qui contient les appels système dont on a besoin est 0x40 L instruction est donc ta 0x40 nop

22 Les appels systèmes Chaque appel système fourni une gamme de service Chaque service possède un ensemble de paramètres ta 0x40 %g1 Service Paramètres 1 Sortie (exit) %o0 = code d erreur (0 pas d erreur) 3 Lecture (read) %o0 = 0 Lecture sur stdin %o1 = adresse du tampon de lecture %o2 = nombre de caractères à lire 4 Écriture (write) %o0 = 1 Lecture sur stdout %o1 = adresse du tampon d écriture %o2 = nombre de caractères à écrire

23 Les appels systèmes Écriture à l écran Main: setx msg, %l7, %o1! Adresse du message dans %o1 mov 10, %o2! Nombre de caractères dans %o2 mov 4, %g1! Le numéro de service est 4 (write) ta 0x40! L appel système 0x40 mov 1, %o0! On écrit sur stdout (1)