• CHAPITRE VII

    ANNEXE B : LES NOMBRES

    '»••

    AVAmWOPOS SUR LES NOMBRES

    On ne saurait dire à quand date le concept de
    nombre. Mais on peut bien se figurer qu il ait
    commencé dès la création de l'humanité.

    Assemblons le code suivant dans le MS-DEBUG

    •a 100

    3408:0100
    3408:0103
    34D8:0106
    Î408:0108
    34D8:010B

    rnov ax, 0
    sub an, f
    not ax
    add ax, 1
    int 20

    Voyons l'état initial des registres
    avant de commencer l'exécution de
    ce code, avec la commande
    <r><cr>.

    Ax=OOOF BX=0000
    DS=34D8 ES=i408
    OÎ3B:010Û BflOOOO

    ?0000 OX=0000 SP=FFE8
    SS=34D8 CS=032B IP=0100
    MOV AX.OOOQ

    BP=OOQO 51=0000 DI=0000
    NV DP Dl PL NZ NA PE HC

    -t 4

    AX'OOOO anïoooo

    GS=Ï4Û8 ES=3408
    0326:0103 200FOO

    Cx^OOOO DX'OOOO SP=FFE8
    SS=34D8 CS=032fl IP=0103
    SUB Ax.OOOF

    BP=0000 S 1=0000 D1=0000
    HV UP Dl PL NZ NA PE ItC

    AX contenant zéro, l'exécution de
    l'instruction ci-dessus doit
    normalernent nous donner le
    nombre "moins 15" en
    hexadécimal, comme le montre
    l'affichage du DEBUG ci-dessous.

    Dans les nombres signés. FFF1
    représente le nombre "moins 15"



    lin0000 0000OODt +• 11110000 0000 1111 00010000 1110 0000 0001 10IUL;
    00002-0 2-1 2'2 2"5 0000 1111eu» = 1= 2 = 4 = 8 1"""15

    FFF1

    Inversion de tous les bits.
    on ajoute 1.

    Pourtant, l'inverse bitwise (bit à bit)
    de ce nombre ne donnera pas 1 5
    mais 14 comme nous le montre
    l'exécution de l'instruction ci-dessus
    dont le résultat se trouve dans
    l'affichage ci-dessous-

    AX=FFF1 BX=OQDO
    DS=34DB ES=Î408
    03ZB:01Q6 F7DO

    A)t=OOOE BX=0000
    DS=3408 ES=34D8
    032B:01Q8 050100

    Cx=0000 0X^0000 SP=fFE8
    SS=34Dfl CS=032B IP=0'106
    MOT AX

    CX^OOOO DX=0000 St>=FFE8
    SS^34D8 CS=032B 1P^0108
    ADD AX.0001

    BP=0000 SI=0000 Q1=0000
    NV UP 01 W NZ AC PO Cï

    BP'OOOO SI^0000 D1=0000
    NV UP 01 NG NZ AC PO CY

    A IA DÉCOUVERTE DU LANGAGE C && C + + • 64 / 24. 44. 57. 82. 99 - TOME Vil : Samedi 6 août 1994 12h24pml


    Nous devons ajuster le résultat
    ci-dessus en ajoutant 1 pour obtenir
    ie résultat escompté, comme le
    montre l'affichage ci-contre issu de
    l'instruction ci-dessus. En ajoutant 1
    à ce nombre nous devons donc
    retrouver le nombre 1 5d ou FH. .

    AX=OOOF BX=OOOO

    DS=34D8 ES=34D8
    032B:010B CD20

    CX=0000 DX=0000 SP^FFES
    SS=34D8 CS=032B 1P=010B
    1NT 20

    BP=0000 S 1=0000 Cl=0000
    NV DP 01 PL NZ NA PE MC

    C'est la méthode du complément à
    deux d'un nombre pour obtenir
    l'inverse arithmétique d'un nombre.
    Calculons donc l'inverse de 1 :

    -a 100

    03 'B 0100 mov ax,
    032B 0103 dec ax
    032B 0104 int 20
    032B 0106

    •r

    AX'OOOF BX=0000
    DS-34D8 ES=3438
    032B:0100 B800ÛO

    -t 2

    AX=0000 BX=0000
    DS^34D8 ES=34D8
    032B:0103 48

    CX=0000 DX=0000 SP=FFE2
    SS-34D8 CS=032S IP=0100
    MOV AX.OOOO

    CX=0000 DX^OOOO SP-FFE2
    SS^34DS CS=032B 1P=0103
    DEC AX

    BP=0000 S 1=0000 D1=0000

    NU UP DI PL NZ NA PE NC

    BP=0000 Sl^OOOO Dl-0000
    NV UP Dl PL NZ Nfl PE NC

    AX-FFFF BX=0000 CX=0000 DX=0000 SP=FFE3 BP=0000 SI=0000 01=0000

    DS=34D8 ES=34DS SS-34D8 CS=0328 IP=0104 NV UP DI NG NZ AC PE NC

    032B:0!04 CD20 INT 20

    Nous voyons que l'inverse de 1 est FFFFH (1111 1111 1111 1111B) pour un registre de 1 6-BITou FFFF FFFFH
    (1111 1111 1111 1111 1111 1111 1111 1111B) pour un registre de 32-BIT.

    Pour obtenir facilement l'inverse
    d'un nombre on peut se servir de
    l'instruction NEG :

    -a 100

    032B 0100 raov ax,
    032B 0103 neg ax
    032B 0105 int 20
    032B 0107

    AX=FFFF BX=0000
    DS=34D8 ES=34D8
    032B:0100 B80FOO
    -t 2

    Ai(=OOOF BX-0000
    GS=34D8 ES-3';D8
    032B;0103 F7De

    AX=FFf1 BX=0000
    DS=34D8 ES=34DS
    0328:0105 CD20

    CX=0000 DX=0000 SP=FFE2
    SS=34D8 CS=032B IP=0100
    MOV ,AX,OOOF

    CX=0000 DX=0000 SP=FFE2
    SS^î4D8 CS=032B IP=0103
    NEG AX

    CX=0000 DX=0000 SP-FFE2
    SS=34G8 CS=032B 1P^0105
    INT 20

    BP=0000 Sl=0000 DI=0000
    NV UP 01 NG NZ AC PE NC

    BP=0000 S 1=0000 D1=0000

    NV UP DI NG NZ AC PE NC

    BP=0000 Sl=0000 Dl=0000
    NV UP DI NG NZ AC PO Cï

    Nous retrouvons le résultat précédent.

    Trouvez ci-dessous quelques conversions de nombres d'une base à une autre. Voyez aussi au chapitre Vfll.
    en page 83, un programme <DEC13.ASM) pour convertir des nombres d'une base en une autre :



    t. F DANS LES F. MWEfff/VTFS BASESmners calculator ' ' ' '-
    ' MEX OCTAL B1NARY DECIMAL F 17un15 B[S1 ]

    B FE NON SIGNÉ DANS LES DIFFÉRENTES TAILLES DE REGISTRE

    Décimal de FE en nombre
    non signé 8-Bit :

    HEX
    OCTAL
    B1NARY
    DECIMAL

    FE
    376

    11111110
    254

    Décimal de FFFE en non
    signé 16-Bit :

    HEX
    OCTAL

    B1NARY
    DECIMAL

    FFFE

    177776

    1111111111111110

    65534

    ! Décimal de FFFF FFFE en non signé 32-Bit

    HEX
    OCTAL
    81NARÏ
    DECIMAL

    FFFFFFFE

    37777777776

    111111111111111-11111111111111110

    4294967294

    c LE /WS GRAND NOMBRE DANS UN REGISTRE
    1 L£ POSmF LE PLUS ÉLEVÉ DANS UN REGISTRE &BTr

    Nombre positif signé le plus
    élevé en 4-bit (quartet ou
    quadruptet "nybble") :

    Nombre négatif le plus grand en
    non-signe en 4-bit (quartet ou
    "nybble") :

    Nombre positif signé le plus
    éievé en 8-bit (octet ou
    "byte") ;

    HEX

    OCTAL
    B1NARY
    DECIMAL

    7

    111

    • [BEL]

    HEX
    OCTAL

    BINARï
    DECIMAL

    F

    17

    1111

    15 (MAXINT EN 4-BIT) B[SI ]

    HEX
    OCTAL
    BINARÏ
    DECIMAL

    7F
    177

    nnm

    127

    TOUT SUR LES NOMBRES 65 / 24, 44, 57. 82PCBR-SE FAIRE ENCADREUR EN LANGAGE MACHINE


    AVANT-l'KOl'OS SDR LUS NOMBRKS

    LES NOMBRES

    2. LE NÉGATIF LE PLUS ÉLEVÉ EN ABSOLU DANS UN REGISTRE 8-BIT <

    Nombre négatif le plus grand en non signé 8-BIT. •;, - •• .-• •

    HEX FF

    OCTAL 377

    B1NARY 11111111

    DECIMAL 255 tMAXINT EN 8-BIT)

    -•f:^

    3 LE POSmF IfrBTT LE PLUS ELEVE 4. LE NÉGATIF 1&BTT LE PLUS ÉLEVÉ

    HEX 7FFF

    OCTAL 77777

    B1NARY 111111111111111

    DECIMAI. 32767

    HEX
    OCTAL
    B1NARY

    DECIMAL

    FFFF
    177777

    65535 CMAXINT EN 16-B1T)

    5 LE POSTTTF 32Bn- LE PLUS ÉLEVÉ 6 LE NÉGATIF 32-BTT LE PLUS ÉLEVÉ

    HEX
    OCTAL
    B1NARY
    DECIMAL

    7FTFFFFF
    •\Î777777777

    1111111111111111111111111111111
    2I47483647

    HEX
    OCTAL
    B1NARY
    DECIMAL

    FFFFFFFF
    37777777777

    4294967295 (MAXIMT EN 32-B1T)

    Voila ce qui nous fait entrer dans le chapitre des nombres négatifs.

    .LES NOMBRES NÉGATIFS

    Ouvrons cette section en nous posant la question :'" Oů se place le signe '-'dans la représentation d'un nombre
    négatif dans le registre ou le microprocesseur".

    Le microprocesseur peut traiter les nombres aussi bien comme signés que comme non signés ; Vous deve?
    vous męme le lui spécifier par l'instruction que vous utilisez. Certaines instructions en effet (comme le MUL
    =• MULtiply) traitent les nombres comme signés, d'autres instructions (comme le IMUL = Inieger MULtiply)
    traitent les nombres comme signés.

    Faites les divisions suivantes, DfV et IDIV divisant le nombre 10d contenu
    dans le registre AX par un nombre signé négatif F001 qui, considéré comme
    signé est négatif, et considéré comme non signé est naturellement positif.

    Exécutez ce programme dans le debug.

    MOV AX, 10

    MOV BX, F001

    [OIV BX

    MOV AX, 10

    MOV BX,

    DIV BX

    1NT 20

    F001

    *t"100 : MOV AX, 10

    * t ; MOV BX, F001

    * t : IDIV BX

    Met 10h dans le registre AX

    Met F001 dans le registre BX

    Divise le nombre signé contenu dans le registre AX par le nombre signé contenu

    dans le registre BX, tes deux étant donc considérés comme nombres signés (Integer

    Division) et donne ce qui suit:

    AX
    DX

    -PL

    -PO

    0000
    0010

    AX contient le quotient de la division;

    DX contient le reste de la division;

    Flag du signe indique que le résultat est de signe Positif (sup ou égale ŕ 0).
    Le flag de parité indique IMPAIRE (ODD = PO) quand le nombre de bits ŕ valeur 1 est
    impaire dans le résultat ; il indique PAIRE (EQUAL) quand le nombre de bits = 1 est paire
    dans le résultat, dans ce cas le flag de parité devient PE (Signal de panty EQUAL) ;

    Le fiag des zéro est resté NZ, donc l'ordinateur considčre le nombre comme étant différent de zéro.

    • t

    • t

    • t

    MOV AX, 10
    MOV BX, F001
    DIV BX

    AX = 0000
    DX = 0010

    -NG

    -NA

    -NC

    Restaure AX ŕ 10h

    Restaure BX ŕ P001

    Divise le nombre non signé contenu dans le registre AX par ie nombre non signe contenu

    dans le registre BX. ies deux étant considérés comme nombres non signés (

    Division) et donne ce qui suit:

    AX contient le quotient de la division;

    DX contient le reste de la division;

    (Signal de signe NEGATIF) devient PL (Signal de signe POSITIF); indique donc que le
    résultat est un nombre positif;

    (Signal de report auxiliaire (Auxiliary Carry) No Auxiliary carry) devient AC (Signal de
    report auxiliaire ou Auxiliary Carry); Indique donc littéralement que le résultat n'a pas
    provoqué de "report auxiliaire"; —
    (Signai de regort N0 CARRY) devient CY (Signal de répori Carry Yes) ; indique donc que
    le résultat a plus de 1 6 bits.

    A LA DÉCOUVERTE DU LANGAGE C && C+ + - 66 / 24. 44, 57. 82. 99 TOME VII : Samedi 6 aoűt 1994 (2h24pm)



    AVANT-1'KOI'OS SUR I.KS NOMBRKS

    LES NOMBRES

    2 l£ NÉGATIF LE PLUS ÉLEVÉ EN ABSOLU DANS UN REGISTRE &BTT

    Nombre négatif le plus grand en non signé 8-BIT. •;., - ••'

    HEX FF

    OCTAL 377

    BINARY 11111111

    DECIMAL 25S (MAXiHT EN 8-BIT)

    3 LE POSmF 1&BTT LE PLUS ELEVE 4 LE NÉGATIF 16OT LE PLUS ÉLEVÉ

    HEX 7FFF

    OCTAL 77777

    BINARY 111111111111111

    DECIMAI. 32767

    HEX
    OCTAL
    BINARY

    DECIMAL

    FFFF

    177777

    65535 [MAX1NT EN 16-B1T)

    s LE POSmF 32Bn- LE PLUS ÉUEVÉ 6 LE NÉGATIF 32-BTT UE PLUS ÉLEVÉ

    HEX
    OCTAL
    BINARÏ
    DECIMAL

    7FTFFFFF

    17777777777

    1111111111111111111111111111111

    31i7iSS647

    HEX
    OCTAL
    3INARY
    DECIMAL

    FFFFFFFF
    37777777777

    4S949672Î5 (MAX 1 NT EN 32-Blt)

    Voila ce qui nous fait entrer dans le chapitre des nombres négatifs.

    » LES NOMBRES NÉGATIFS

    Ouvrons cette section en nous posant la question :'"Où se place le signe '-'dans/a représentation d'un nombre
    négatif dans te registre ou le microprocesseur".

    Le microprocesseur peut traiter les nombres aussi bien comme signés que comme non signés ; Vous devez
    vous même le lui spécifier par l'instruction que vous utilisez. Certaines Instructions en effet (comme le MUL
    = MULtipiy) traitent les nombres comme signés, d'autres instructions (comme le IMUL = Inieger MULtiply)
    traitent les nombres comme signés.

    Faites les divisions suivantes, DIV et IDIV divisant le nombre lOd contenu
    dans le registre AX par un nombre signé négatif F001 qui, considéré comme
    signé est négatif, et considéré comme non signé est naturellement positif.

    Exécutez ce programme dans le debug.

    MOV AX, 10

    MOV BX, F001

    IOIV EX

    MOV AX, 10

    MOV BX, F001

    DIV BX

    1NT 20

    *t-100 : MOV AX, 10

    * t ; MOV BX, F001

    * t : IDIV BX

    Met 10h dans le registre AX

    Met F001 dans le registre BX

    Divise le nombre signé contenu dans le registre AX par le nombre signé contenu

    dans Se registre BX, tes deux étant donc considérés comme nombres signés Onteger

    Division) et donne ce qui suit:

    AX
    DX

    -PL

    -PO

    0000
    0010

    AX contient le quotient de la division;

    DX contient le reste de la division;

    Flag du signe indique que le résultat est de signe Positif (sup ou égale à 0).
    Le flag de parité indique IMPAIRE (ODD - PO) quand le nombre de bits à valeur 1 est
    impaire dans le résultat ; il indique PAIRE (EQ.UAL) quand le nombre de bits = 1 est paire
    dans le résultat, dans ce cas le flag de parité devient PE (Signal de aarJty EQUAL) ;

    Le flag des zéro est resté NZ, donc l'ordinateur considère le nombre comme étant différent de zéro.

    • t

    • t

    •t

    MOV AX, 10
    MOV BX, F001
    DIV BX

    AX = 0000
    DX = 0010

    -NG

    -NA

    -NC

    Restaure AX à 10h

    Restaure BX à F001

    Divise le nombre non signé contenu dans le registre AX par ]e nombre non signé contenu

    dans le registre BX. les deux étant considérés comme nombres non signés ( .

    Division) et donne ce qui suit:

    AX contient le quotient de la division;

    DX contient le reste de la division;

    (Signal de signe NEGATIF! devient PL (Signal de signe POSITIF); indique donc que le
    résultat est un nombre positif;

    (Signal de report auxiliaire (Auxiliary Carry) No Auxiliary carry) devient AC (Signal de
    report auxiliaire ou Auxiliary Carry); indique donc littéralement que le résultat n'a pas
    provoqué de "report auxiliaire";

    (Signal de report N0 CARRY) devient CY (Signal de réport Carry Yes) ; indique donc que
    le résultai a plus de 1 6 bits.

    A LA DÉCOUVERTE DU LANGAGE C && C+ + - 66 / 24. 44. 57, 82. 99 - TOME VII : Samedi 6 août 1994 (2h24pm)



    LES NOMBRES

    LKS NOMHRKS NKCATIl-S

    Quand vous programmez dans l'assembleur, vous déterminez la nature de la multiplication ou de la division
    par l'instruction que vous utilisez (MUL ET DIV pour les nombres non signés. IMUL ET IDIV pour les nombres
    signés) et vous déterminez la nature du résultat par l'examen des signaux d'état (ou FLAG STATUSI contenus
    dans le registre F (ou registre des signaux d'état).

    Comment donc est-ce que le microprocesseur se rend compte que le nombre à 16-bits OFFB7H (65'463d) gui
    se trouve dans son Registre est un nombre signé, un nombre binaire non signé, un PBCD (Packed BCD = BCD
    compacté) ou un UBCD (Unpacked BCD = BCD non compacté),^! non pas le nombre négatif moins 73 (-73) ?
    .Le microprocesseur traite tous les nombres de la même façon qu'ils soient signés, non signés ou BCD, C'est
    pour cela qu'on ne peut dans la grande majorité de cas pas opérer directement sur deux opérandes Mémoires.

    Pour l'ordinateur, quand il s'agit de faire des opérations arithmétiques sur des nombres signés, il considère son
    biî le plus extrême à gauche, le hit du plus fort poids, le "Most Significant Bit ou MSB" (le 7è pour une opération
    de 8 bits, le 1 5è pour une opération à 1 6 bits, le 31 è pour une opération à 32 bits, etc. les bits étant numérotés
    de droite à gauche à partir de 0); Ce bit est appelé bit du signe: quand ce dernier bit à l'extrême gauche est
    l, le nombre est considéré négatif; quand ce bit est 0, le nombre est considéré comme positif.

    Le bit ie plus à gauche reste le bit du signe m, même dans tes BCD.

    1. Le Bit du Signe rappelle deux autres notions, celles du Bit de Parité et du Make/Break Cods, qui occupent la même position
    que le Bit ou Signe : \Q i>'t le plus à gauche.

    Le Bit cta Parité sert, dans les télécommunications Btdans certains programmes d'application, à vérifier qu'un r.ode (caractère)
    est ini.ict. Le princips est de se convenir que chaque code ou caractère doit avoir un nombre gaire ou Impaire de bit rie valeur
    . 1. C'est justement ça la PARITÉ. SI le code ou caractère a, sur les 7 bits de droite, un nombre impaire de bit de valeur 1, le
    7ème bit len tait le huitième si vous compter à partir de 1 de droite vers la gauche) prendra la valeur 1. Si le code ou caractère
    a, sur les 7 bits de droite, un nombre paire de Dit de valeur 1, le 7ème bit len fait le huitième) prendra la valtiur 0. Ainsi, si
    chaque fois qu'un test de parité sera effectue, si pour un code ou caractère on trouve un nombre impaire de bit rie valeur
    1, on sait qu'il v a eu ERREUR DE STOCKAGE ou DE, TRANSMISSION. La lettre 'A' et la lettre 'B' par exemple oui le code1 ASCII
    respectivement 65 et 66, et contiennent un nurnbfe paire de bit de valeur "1 (01000001 et 010000101, tandis que la lettre
    'C' d'ASCII 67 contient un nombre impaire de bit de valeur 1 (0100 00111. SI on veut encoder A, B et C en tenant compte
    du bit de parité, on va écrire A ^. 01000001d, B =- 01000010d, C = 11000011d, alors qu'en faisant abstraction du bit
    d» parité 1100 0011b signifierait 1 95d équivalent au caractère ]-. Faites donc attention quand vous configurez des logiciels
    de traitement de texte dans lequel on vous demande de spécifier vous-même s'il faut travailler en encodage 7 ou 8 bits, ou
    S'il faut tenir compte du bit de parité ou cas,

    Le Maka/Breah Coda est, dans les PCs, le B!T 7 (à partir de 0 à droite] du Scan Code. Le Make/Bwak Code détermine si une
    touche a été frappée {MAK£ CODE, BIT 7 =• 7) ou si elle a été relâchée [BREAK CODE, BIT 7 = 0}. Voir à ce h\\\f\ le TOIvIE V
    de la série À La Découverte du LANGAGE ASSEMBLEUR : TOUT SUR LES UNITÉS DE SAISIE.

    Mais. .!. faites gaffe ,1. : Les débogueurs (ou plutôt le processeur) ne tiennent pas compte du BIT-7 pouf statuer .sur la parité
    d'un résultat, lis compte eux-mêmes dans te résultat le nombre de bits qui ont la valeur 1.

    C:\COMP\OATA>debug
    -a 100

    279D 0100 mov ah 7ï
    £790 0102 add ah 0
    -2790 0105 add ah 1
    27ÎG 0108 mov ah f3
    2790 010A add ah 0
    2790 0100 add ah 1 •
    2790 0110 'nt 20
    2790 OU?

    073 H =

    Oonne toujours
    Donne 074 H =
    OF3H =

    Donne toujours
    Donne OF4H =

    0111 0011 b.

    0111 0011 b.

    OUI 0100 b.

    1111 0011 b.

    1111 0011 b.

    1111 0100 b.

    Pour sauvegarder ce fichier, nous devons lui donner un norn avec la commande 'N'. -M pariiy.scr

    Nous devons aussi spécifier (stocker) sa taille licf 12H = 112H - 100H, que l'on peut obtenir avec
    la commande Hexamhmétique 'H' qui donne la somme et la différence des deux nombres
    nexadécimaux que vous lui présentez) dans le couple BX;CX,

    -H 112 100
    0212 0012

    Voici avec la coiïmande 'R' les valeurs initialas
    que nous avons dans les registres BX et CX:

    AX=0000 BX^QQOO CX=QOOO DX=0000 SP=FFEE BP=0000 S 1=0000

    DI^OOOO

    DS-279D ES=2790 35=2790 CS=279D IP=0100 NV UP El PL N2 HA

    PO NC

    2790:0100 B473 . MOV AH,73

    Modifions maintenant avec la commande R REG
    les valeurs de BX et de CX,

    Comme BX contient dé|â 2éro, nous n'aurons qu'à
    ualidfif (avec un <cr>1 la valeur qu'il contient. •

    -r ex
    CX 0000
    ;12

    -r bx
    BX 0000

    suivre...

    TOUT SUR LES NOMBRES

    67 / 24, 44, 57. 82PSBR-SE FAIRE ENCADREUR EN LANGAGE MACHINE



    Quand le microprocesseur doit faire des opérations arithmétiques non signées, il considère automatiquement
    les nombres comme non signés. Les flags ou signaux d'états CARRY, AuXILfARY, et OVERFLOW apportent

    l'information nécessaire au programme pour déterminer la valeur exacte dans le système utilisé:

    *

    w Le flagd'OVERFLOW indique que le résultat dépasse la rangée (ou domaine} du système de numération signée.

    •» Le flag des CARRY indique qu'un report (carry) hors du plus haut bit a eu lieu.

    •» Le flag d'AUXILIARY CARRY (AUX) permet au processeur de faire de l'arithmétique sur les BCD, on ne peut
    pas l'utiliser directement car on ne peut même pas le tester.

    1.1...suite)

    Wci donc les nouvelles valeurs des registres, ainsi
    que les valeurs initiales des registres des signaux
    d'état dont le Ilag des parité (le deuxième à partir
    de la droite, qui est Ici initialement PO, ce qui
    signifie Parlty Odd, donc impaire), i



    -!• •
    AX-0000 B!<=0000 CX=0012 DX=0000 SP: FFEE
    D1=0000
    . r>S=27f[i ES=£79D SS=379D CS=279D 1P=H100
    PO NE
    279D;U100 B<i73 MOV AH, 73

    BP=0000 Sl-0000
    NV UP El PL Nï NA

    Exécutons maintenant ce programme pas à pas
    (avec des Traces ou "T'}, et voyons commRnt ce
    signal d'état (ou flag) va se modifier. La première
    instruction qui sefa exécutée est celle pointée rmr
    le pointeur d'Instructions'IP, donc à l'adresse
    100H. C'est l'instruction d'assignation
    "MOVAH, 73".

    AX=7300 a^OOOO CX-0012 DX=0000 SP=FFEE BP=0000 S 1=0000
    D1=0000

    DS=27W ES=,'7ÎD SS=279D CS=279D IP=0102 NV UP El PL HZ MA
    PO NC , •
    279D:Û102 iiOCiOO ADD AH, 00

    Cette instruction ne modifie pas l'état des fiags. Le fia;) vins pari!;'- "ht donc resté ODD |PO). Et dt: toutes le"-; façons le nombre
    73H (0111 0011 bl contient un nombre imoaire de hit - 1. Doni. Ir fidc] de parité ne pouv.lit donnur dinî ODD IPOt.

    'Continuons notre exécution avec des <-T>, ce qui
    va exécuter l'instruction ci-dessus (ÀDD AH, 00'.
    Le BIT aes parités (le plus à gauche! est toujours (J
    (donc PAIRE ou EVEN = PEl, mais le nambfe de
    bit à valeur 1 dans le'résultat est Impaire, Le flag
    de parité restera donc PO comme indiqué
    ci-dessous.

    fl^/SOO BX=0000 Ci('-0012 GX=OQOO SP=FFEE BP=0000 SI =0000 ,

    DI^OOQU

    DS--27TO FS=?79D SS"279D CS^ï-ÎD- IP=0105 NVUPEIPLNZMA

    PO NC

    279D-.010') SOC^OI ADD AH,01

    En additionnant 1 à la valeur en cours de AH, nous aurons 74H(01 1 1 0100 h) comme l'indique l'irTi'Hyn (If MS DEB'UG ci-dessous.
    donc un résultat avec un nombre paire de bits = 1. Li; flag des parités passera à PE iParity Equall pari:R que le nombre de bits
    = 1 est PAIRE, mais pas parce que le flag des parités est à 0.

    • Voyons maintenant ce qui se passe quand le
    résultat d'une opération est un nombre dont le bit
    le plus à gauche est impaire (11. On va donc loqer
    le nombre OF3H (1111 0011 b) dans un registr;.,
    le AH, comme t'Indique la prochaine Instruction.

    AX=7400 nï(-=OOOD [:X=001Z DX=0000 SP^FFEE BPïOOOO 51*0000

    D1=OUOU

    DS=279ll r.S-379D SS=279D CS-^?çD IP-0108 NV UP El PL N; NA

    PE NC

    279D:01i)8 B4F3 MOV AM,F3

    •t

    AX=F300 BX=0000 CX=0012 DX=0000 SP=FFEE BP=0000 Si=0000

    D 1=0000

    DS=279D ES:Z79D SS=279D CS-2790 IP^OlOA NV UP El PL NZ MA

    PE NC

    Z79D:010A 80C400 ADD AH,00

    Le bit de parité est donr. maintenant 1 (indiquant
    donc en principe une parité impaire -- POI, mais
    comme le résultat contient un nombre paire de bits
    = 1, le flag des parités Indique naturellement
    toujours une parité PAIRE (PE],

    En effectuant une opération qui donne un résultat
    à nombre de bits = 1 paire (on additionnpra par
    zéro pour ne pas modifier notre nombre qui
    contient déjà un nombre paire de bits = 1 : OF3H
    = 1 m 0011 b), le flag de parité restera PE, bien
    que le 81T de parité soit impaire (1 ).

    AX^FSOO B'(=0000 CX=0012 D)t=0000 SP=FFEE BP=0000 Sl=0000

    D1=0000

    DS^WD ES=Z79D SS=279D CS=279D ;P=010D MV UP El NG NZ NA

    PE NC

    279D:010D 80CÛ01 ADD AH,01

    Exécutons maintenant l'instruction ci-dessus qui
    donnera un résultat à nombre impaire de bits = 1

    Le flag de parité redeviendra ODD (impaire = PO),
    mais pas parce que le bit de parité est 1 (impairei,

    AX=FAOO • BK=0000 CX^OOIÎ DX=0000 Sf-FFEË BP=00(10 SI'0000

    DI'-OOOO

    DS=279D ES=2790 SS-=279D CS=279D IP=0110 NV UP El NG NZ MA

    PO NC

    ?790:U110 CD20 IMT 20

    A LA DÉCOUVERTE DU LANGAGE C && C+ + - 68 / 24, 44, 57, 82. 99 - TOME VII : Samndi 6 août 1994 (2h24pml



    LES NOMBRES________________________.__ •_______LUS NOMBRES NE«;ATiyS

    ^EXERCICE

    Comme maintenant vous semblez avoir tout compris des nombres, décriver brièvement un algorithme permettant
    de reconnaître si un nombre est paire ou non (impaire).

    m NOMBRES HEXADÉMAUX NÉGATIFS

    Passons aux nombres hexadécimaux négatifs.

    Faites ceci dans le MS-DEBUG : et vous aurez:

    H 2 3 : 0005 FFFF;

    Le nombre FFFF (la différence de 2 et 3) qui correspond normalement au décimal non signé 65535 représente
    donc le nombre signé négatif moins un (-1) dans le Registre de l'ordinateur à 16 bits. vrai ?

    Faites: •
    H 5 FF?F

    et vous aurez:

    0004 0006.

    FFFF représente donc moins un (-1t.

    A AiGORfTHME POUR OBTENIR LE NÉGATIF (L'OPPOSÉ) D'UN NOMBRE SIGNÉ

    \\ ne faut pas confondre "l'opposé (le négatif) d'un nombre" et "l'inverse (ie réciproque! d'un nombre".

    1 INVERSION DU Brr DU SIGNE (ΠMSB)

    Dans un octet, les nombres signés peuvent donc s'étendre

    de et de
    0000 OOOOb ou, Od ou OFh ,' 1000 QOOOb ou -128d ou 80h

    0111 lllfb ou 127d ou 7Fh : I 1111 llllb bu -Td ou Ffh.

    La simple inversion du signe donne un nombre de signe opposé, mais pas l'opposé du nombre de départ.

    2 L£ COMPLÉMENT À 2

    Prenez le nombre binaire 01001000 qui correspond au décimal 73. Pour obtenir son négatif faites :

    . MÉHIODE ARTHIMÉnQUE

    - inverser chacun de ses bits, les zéros d'"-enant des uns et les uns des zéros; nous obtenons 10110111;

    - ajouter à ce dernier binaire le nombre 1. et nous avons 10111000 qui correspond à 184 décimal. Dans un
    Registre à 8 bits 73d signé correspond à 184d non signé. . .

    La conversion en décimal dans ce cas-ci ne sert pas à quelque chose.

    additionnez 01001000 notre nombre de départ

    et 10111000 son néaaiif que nous avons calculé

    on a 100000000. ce qui correspond en décima! à 512.

    Mais ce nombre contient un nombre de bits supérieur à ce que peut contenir un Registre de 8 bits. Le Registre
    ne retenant que les 6 premiers bits de droite, il contient le nombre 00000000.

    Le "1 " tombe donc et n'est pas pris en considération, TRUCAGE ?! . •
    Comment avec ce trucage les résultats des calculs faits par l'ordinateur sont pour la plupart de temps corrects 7
    Tout simplement pr'rce que le; 1 d'extrême gauche n'est pas Totalement rejeté, mais mis dans un Registre spécial
    appelé CARRY FLAG, ou REG^STRË DES REPORTS et il est pris en considérations dans les opérations arithmétiques
    ultérieures effectuées dans l'ordinateur.

    Vérifiez avec le nombre 1, représenté par 00000001.
    Parcourons rapidement les différentes étapes pour trouver son négatif:

    00000001 notre nombre 1 de départ

    î111in0 ion invor*;"
    OOOOOOO! un l^i ajoute 1

    11111111 nous obten.Ji ; i;i.- nombre en hexadécimal FFFF.

    TOUT SUR LES NOMBRES - 69 / 24. 44. 57, 82pflBR-SE FAIRE ENCADREUR EN LANGAGE MACHINE



    b METHODE SCRIPTURALE

    Une autre technique consiste à réécrire le nombre en binaire de droite à gauche comme suit: tant qu'on n'a
    pas encore rencontré le premier 1, conserver le bit rencontré ; dès qu'on dépasse le premier 1, inverser systématiquement
    chaque bit rencontré. Le nombre 00000001 est ainsi appelé COMPLÉMENT À DEUX du nombre 11111111.

    c. MÉTHODE EXPONENTIELLE

    On peut aussi facilement représenter un nombre négatif dans n bits avec la formule 2" • x.

    1

    ^!
    |l

    s!

    9

    CALCULE L'OPPOSÉ DE NOMBRES.
    FINI LE 11:47am lî-Mai,1994.

    /* 1'ROGBAMME NBOPPOSE.C

    ECRIT LE 11:41am 19-Mai,1994.
    EDITE LE 12:37pni 19-Mai 1994.

    PAR DR DIASOLUKA NZOYIFUANGA LUÏALU.

    OPHTALMOLOGISTE DIPLOME, INFORMATICIEN AMATEUR. */

    lïincliJde "math.h"
    fhnclude "stdio.h"
    #include "stdlib.h"

    10

    11

    12

    13

    14

    15!
    16

    nb ,
    17[i /* Fin définition vold main(). •/

    void maint) {
    int nh;

    putsC'inverse d'un. nombre = 2 ' taille mot - nornbre");

    1 for(nb ï 1 ; absÇnb) < abs(Ox6FFF) ; nE *' 13)

    pnntfC'L'oppose de X 5.5d est % 5.5d\n", nb, <int)poM(?, loi



    C:\COMP\BC\B inverse d'ur IN'nbop nombre 3pOSs ï iî " tai
    nombre
    L oppose de 00001 est -00001
    L L LL L L opposé de opposé de oppose de opposé de opposé de oooosé de 00013 00169 02197 28561 -21933 ••23855 est est estest est est -00013 -0016Î -02107 -28561 21923 23855
    C:\tOMP\B[;\BIN>

    B. ETENDUE DES NOMBRES

    Pour un Registre de 8 bits...

    î. NOMBRES POSmFS SIGNÉS

    les nombres positifs signés vont de Od à 127d
    OOh ou oooo oooob ou Od

    7Fh ou 0111'nilb ou 127d

    2 NOMBRES NÉGATIFS SIGNÉS

    Les nombres négatifs signés vont de -1d à -128d

    80h ou 1000 OOOOb ou -128d

    Ffh ou nn'mib ou •1d.

    Remarquez que la représentation n'est pas la
    même dans la méthode à inversion de signe que
    dans la méthode du complément à deux.

    1111 IIHb donne -1 en complément de 2, mais
    -127 en inversion du bit du signe.

    Exercices:

    1 °) Trouvez l'opposé (le négatif) du nombre hexadécimal 8000h ou 1000 0000 0000 OOOOb ci-dessus;

    2°) Comment expliquer mathématiquement cette situation énigmatique infiniment extrême telle que les deux
    opposés soient identiques ?

    IV.

    LES NOMBRES DÉCIMAUX BINAIRES

    Une autre façon de coder les nombres décimaux est la forma de DÉCIMAUX CODÉS BINAIRES (DCB) ou BINARY
    CODED DEC'IMALS (BCD); dans cette forme, chaque digit (ou chiffre) décimal occupe en binaire soit un quarte!
    ou nybble pour les DCB compactés (PACKED BCD), soit un octet pour les DCB étendus (UNPACKED BCD).
    Dans les DCB on ne peut donc pas représenter les équivalents hexadécimaux des diniîs décimaux supérieurs
    à 9d (Ah, Bh, Ch, Dh, Eh, Fh ou de 1010b à 11 l.lb) qui sont interdits, en quelque sorte l'on ne retrouve que
    des digits décimaux; d'ailleurs la dénomination DECIMAL dit tout.

    A. ARmMÉTKÎUE DANS LE BCD

    L'arithmétique dans le BCD est basée sur le système décimal. Le processeur utilise 4 bits pour représenter un
    seul chiffre (ou digit) décimal. Quand vous faites des multiplications avec le BCD, il faut toujours utiliser le MUL
    et jamais le IMUL.

    î RACKED ET UNPACKED DÉCIMAUX BINAIRES

    Le microprocesseur peut donc représenter les nombres en formai "packed" (compacté : 2 digits par bvte ou
    1 digit par nybble) ou "unpacked" ( étendu : un seul digit par byte). Il peut aussi manipuler des chaînes de caractères
    d'une longueur allant Jusqu'à 64K alors que dans le système 360 de IBM on ne peut aller que jusqu'à 255 bytes,
    (Voyez aussi page(s) 70, 71 pour EBCDlC et ASCII).

    À LA DÉCOUVERTE DU LANGAGE C && C+ + 70 / 24, 44, 57.32. 99 TOME Vil : Samedi 6 août 1994 (2h24pml



    LES NOMBRKS DÉCIMAUX BINAlKKS

    LES NOMBRES

    •

    INTEL utilise les mnémoniques suivants:

    ASCII BCD pour les Unpacked BCD;

    DECIMAL BCD pour les Packed BCD.

    .. WCSŒD DECIMAUX BÏNAStES .

    Dans les DCB compactés, chaque octet contient 2 chiffres BCD, le chiffre le plus significatif occupant le quartet
    sur-prieur. Un octet de PBCD peut donc contenir les nombres décimaux de 00 à 99.

    \ UNWCKED DÉOMAUX BINAIRES ^

    Dans les DCB étendus, chaque octet contient un seul chiffre BCD, le chiffre occupant le quartet inférieur. Un
    octet de UBCD ne peut donc contenir que les nombres décimaux de 0 à 9. Les quatre LITS supérieurs ne peuvent
    contenir que des Ô pour les multiplications et les divisions, mais n'importe quel nombre pour les addttions et
    les soustractions.

    Malgré que la forme UBCD faît perdre apparemment inutilement le quartet de fort poids, elle est utile quand
    par exemple on doit travailler avec le CODE ASCII. (Voyez aussi page(s) 70, 71).

    B. CONVERSIONBCDEENBCDC

    Voici un programme qui vous permet de convenir
    un nombre BCD étendu en BCD compacté :

    TITLE PROGRAMME CONVERSION DES BCOEEN COMPACTES

    SCODE SEGMENT
    ASSUME CS: SCOBE
    ÛRG 100H

    Pour voir les effets de ce programme exécutez-le /
    avec le T du DEBUG en observant les vcriations •
    dans les registres, surtout le registre DX:

    c EXEMPLE

    START:

    CONTIH:

    scooe

    MOV

    MOV

    SHL

    LOOP

    OR

    XOR

    INT

    ENDS

    END

    DX, 0503H
    CX, 6
    DH, 1
    CDNTIN
    OL, DH
    DH, DH

    son

    STAHT

    ^%:SÏ&^SS::ï:^^S:?^^^

    ^ '~ '"^WRÈSSÊS"

    ÎM^^^^^'i^^^^i^iSÎ:!::^^'*^^^^^^1"^:::^^^^^.^^^^

    •iQ^pr^p^AMSi.^oiF^fâynëS^ôBM^n^N^

    BINAIRE NORMAL
    OCTAL -——-——.
    DECIMAI- -———
    HEXADECIMAL —
    ASCII ——————

    -" 0101 0001 bouy
    101 q ou o
    " 81 d ou l

    —"- 51-^..,

    ^. ^-

    BCDNC ——-——
    (dans un octet)

    BCDC ———--
    (dans un quartet)
    EBCDIC ----
    FDC ———.——

    0000 0101 00000001 b
    000000000101 0001 b

    -NAN n1.
    NAN

    v. EBCDIC

    EBCDIC signifie en anglais Extended Binarv Coded Décimal Interchange Code, une technique de codage qui
    permet de stocker les lettres de l'alphabet, les nombres ou les caractères spéciaux dans la mémoire de l'ordinateur
    en une série de 8 bits définis comme un byte.

    Un caractère représenté dans ce système de codage par un byte adressable est dit de FORMAT DÉCIMAL ZONE
    (Zoned Décimal Format des anglo-saxons).

    Dans le système de codage EBCDIC chaque bit de l'octet est numéroté de gauche à droite à partir de 0 jusqu'à
    7. Cette numérotation des bits permet aussi d'accéder à chaque bit individuellement. On peut ainsi se référer
    aux bits 0 à 3 quand on travaille avec le quanet le plus à gauche, ou aux bits 4 à 7 quand on travaille avec
    le quartet le plus à droita



    pos bit pds bit digit
    0 1 2 3 * 5 6 7 0 1 2 3 4 5 & 7
    8 /, 1 1 8 4 2 1 8 4 2 1 8il 4li 2 il 1
    0 1 0 1 1 0 0 1 1 0 0 P 1
    ZONE DIGIT ZONE DIGIT
    BÏTE PDS FORT BÏTE PDS FAIBLE

    Les quatre bits le plus à gauche du byte (qui
    constituent le quartet (ou nybble) super^ur ou les
    quatre bits du poids le plus élevé ou les plus
    significatifs) représentent la ZONE et les quatre
    bits les plus à droite (nybble le moins significatif)
    représentent le DIGIT même.

    1. NAN = Not A Numbef (pas un nomDrel-

    TOUT SUR LES NOMBRES - 71 / 24. 44, 57, S2peOR-SE FAIRE ENCADREUR EN LANGAGE MACHWE




    w Par exemple les lettres de l'alphabet A à 1 ont la valeur 1100b (12d) dans la ZONE, et les digits 0001b (1d

    pour le A» à 1001b (9d pour le l>. „„„... ,,. , „
    «• Les lettres de l'alphabet J à R ont la valeur 1101b (13d) dans la ZONE, et les digits 0001b (1d pour le J)

    à 1001b OdpourleR). , .
    w Les lettres de l'alphabet S à Z ont la valeur 1110b (14dt dans la ZONE. et les digits 0010b (2d pour te S»

    à 1001b (9d pour le Z).

    Dans le système de codage EBCDIC donc, le C est représenté par 1100 0011b, le J est rep.ésenté 1101 0001b
    et le Z est représenté 1110 1001b.

    Voici quelques équivalents EBCDIC par rapport aux
    autres représentations:

    Ordre de collation entre les deux systèmes ASCII
    et EBCDIC:



    Graph ique Binaire Hcxa ESC ;OIC ASCII
    î 0000 0 1111 0000 48d
    0001 1 1111 0001 49d
    2 0010 2 nu 0010 50d
    5 0011 3 1111 0011 51d
    0100 4 1111 0100 52d
    5 0101 5 nn 0101 53d
    6 0110 6 lin 0110 54d
    {' 0111 7 1111 0111 55d
    1000 8 1111 1000 56d
    9 1001 9 lin 1001 57d
    A 1000 000! 61 1100 1001 65d
    B • 1000 0010 42 1100 0010 66d
    • h • • •
    M mo'om 58 1110" 0111 88d
    ï 1110 1000 5° 1110 1000 açd
    Z 1110 1001 60 1110 1001 90ct

    ASCII

    bLfink •

    . l

    EBCDIC

    blank
    , (point)

    OÏ9

    ?
    A-Z

    a-z

    a-i

    *-iE

    o-ç

    Le système de codage EBCDIC est utilisé dans la plupart des machines IBM, alors que dans les PC on utilise
    le système de codage ASCII.

    v, LES CARACTÈRES DE COISTTRÔLE DANS LE SYSTÈME ASCII

    Les 31 premiers caractères disponibles dans le code ASCII sont des caractères non imprimables aussi appelés
    codes de contrôle (car on peut les obtenir en combinant la touche < CtrI > avec une autre touche, le plus souvent
    une des lettres de l'alphabet) et sorit utilisés dans les communications ou pour gérer (commanderl opérer Jes

    .TTi-t'

    imprimantes ou d'autres unités.

    ^'

    Certains de ces codes (comme le Retour-Chariot), ont un rôle fixe. Pour la plupart par contre, on leur attribue
    une multitude d'interprétations, au plus grand détriment de compatibilité matérielle. Le caractère d ASCII 127
    est aussi considéré comme caractère de contrôle, malgréqu'il ne faut pas appuyer la touche < CtrI > pour l'obtenir.



    S CODE ASCII GRAPHE <ctrl> MNÉMO | . ' ,,,„,; ' .^^UTIUTÉ
    |:DÉC1 HEXA
    ; 00 00 (NULL) -@ NUL Spacing Character. Caractère d'espacement. Sans signification. peut aussi servir pour des délais, comme le NOP.
    : 01 01 © "A SOH Stan Of Heading, Débute la transmission de blochs de données ou un nouueau fichier.
    :::::::;• 02- • 02. 9 72 STX Start Of Text. Marque le début du texte qui suit les données d'entêté.
    ; 03 '03.j, » "C ETX End Of Text. Peut marquer le début des données de détection ("check-ing") d'arreur.
    04 ,04 ; • •D EOT End Of Transmission. Code "Sign-Off"; dans certains cas marque seulement la fin de fichier.
    05 05 -1 * 'E ENQ ENQuiry. Sollicite informations d'état de station éloignée.
    06 06 « "F ACK ACKnowledge. Vérifie la réussite de communication entre station».
    ?:!:fOT:'. 07 • -G BELL Bell. Cloche. Sonne la cloche pour attirer l'attanfon.
    08 08 D *H BS BackSpace. Effacement arrière.
    - 09 09 0 *1 HT Horitontal Tab. Tabiilation Horizontale,

    A IA DÉCOUVERTE DU LANGAGE C && C + + - 72 / 24, 44. 57. 82. 99 TOME V» ; Samedi 6 août 1994 (2h24pm)






    CODE ASCII GRAPHE <ctrl> MNÉMO ::: UTILITÉ
    DÉCI HEXA
    10 OA^ B •J LF Lin» Faed-Avancem«ni d'une ligna.
    11 OB cî -K VT Varticol Tob-Tabulatkin Vertical».
    ...12^; OC ' 9 'L FF Form Feed, Chargemant d« papier.
    •'3 00 J' "M CR Carriaga Return. Retour-Chariot. ,
    14 0e ^ -N SO Shift Out. Change la jeu (sell d* caractère». •
    15 0F 0 "0 SI Shfft In. Chano* le Jau ls«t) da caractère».
    16 10 ^ 'P OLE Data Link Es cape. Modffie la signification tfas caractires subséquents (comme i'E*cl.
    :.,:17., -1Î1^ < "0 DC1 Device Control 1. Utilité cotii"i< XON pour •lgnalf «tation iloigni* i tranimttra.
    18 • • 12 :.:.•.. t *R DC2 Davic* Control 2. Signal* ON/OFF ("Toggla". * bMoula) d'uaafl* ganéral.
    19 ,,^3.;:i.' II 'S DC3 Davlea Control 3. Utilité comma XOPF pour *lflrflT •ftton tloJon** 6 rrpa* tfammatHe.
    20 14: 1 •T DC4 Device Control 4. Signale ON/OFF ("Toggle", è baccule) d'usage général.
    ::21 : - ''5 :..; S -u NAK Nagativa Acknowledge. Signale un échec de transmission.
    22 16 - •V SYN SynchhinouB Idia. Utilise •ntr« das blocs da données dans !•« communications •ynchronea.
    23 17 t -w TB End Of TransmiaBion Block. : Variante da ETX.
    , 24. 18 t "x CAN CANceJ. Signal» d'habitude erreur dans la (ransmission.
    25 19 « 'Y EM End of Médium. Signale la fin physique d'una source de donné«s.
    ^""26 • 1A,^ -* "z SUB SUBslituf. Remplace las caractifs invalides ou imposBibles ^ •fficher-
    27 ÏB A ; -1 ESC ESCape, Marqua las caractiras qui suivant oomm* étant un* sequanca da contrôl*.
    28 ••••••; 1C . i— A/, FS Fila Saparalor. Marque ta limita logiqua anUa fichiws,
    29 1D • * ' -„. *'l • GS Group Separator. Marqua la Rmit* logiqua entra groupas de données.
    30 1E * AA. RS Record Soparatof. Marqua lanmita logiqu* entra anri)lstrementB de données.
    31 1F T A US Unit Separwtor. Marque la (imita logique entre unités de donnéas.
    "''. . •*" ' • .:..... ... .*. ...
    127 7F û AUCUN DÊL Dalete. ÉRminB les autres catactèrea.

    CARACTÈRES IMPRIMABLES:

    32 • SP - Space

    33 - | — point d'Exclamation .

    t,
    127 OEL - Oetate En fait l'MCIl 127 (Effacement) est un caractère de contrôle.

    255 • Blw*.

    Par ailleurs, si vous voulez avoir le jeu complet des caractères dans le système ASCII, vous avez à votre disposition
    le programme ci-dessous. Arrangez-vous pour placer avant chaque caractère le code (nombre) ASCII correspondant:

    TOUT SUR LES NOMBRES 73 / 24. 44. 57. SÎTOBfrSE FAIRE ENCADREUfl EM LANGAGE MACHME


    TITLE ASCIIDOS.ASM

    AFFICHE LES DIFFÉRENTS CARACTERES
    DES CODES ASCII AVEC LE DOS

    Et le même programme faisant intervenir plutôt le
    BIOS que le DOS.

    TITLE ASCIIBIO.ASM

    SCOOE

    SEGMENT
    ASSUME CS:SCOOE

    , START, OHG 100H

    l! ^ S?; g56
    ,' MOV AH 2
    ' PRINTLINE:

    [T IHT ?1H
    Ij PUSH DX .
    i MOV DL, ' '
    •INT 2lft ,
    POP OX
    INC ÛL
    ft- . LOOP PRINTLINE

    ^" 1*" 20H
    QiCURSEû ENDS

    ,.EHD STABT

    AFFICHE LES DIFFÉRENTS CARACTERES
    DES CODES ASCII VIA LE BIOS

    SCOOE

    SEGMENT

    ASSUME CS:SCODE

    ORG 100H

    STAHT;

    MOV CX, 355
    "0V AH, OEH

    PRINTLINE:

    PUSH C^
    HOV AI:, 255
    SUB AL CL
    MOV CX; 1
    INT. 10H
    MOV AL, ' '
    INT lOfi
    POP CX

    LQOP PRINTLINE
    INT 20H

    a)CURSEG ENDS

    ENÛ START

    vyŒFCD

    FSrmat Décimal Compacté (PACKED DECIMAL FORM des anglo-saxons). Dans cette forme, qui rappelle le Packed
    Binary Décimal, deux digits décimaux sont stockés dans un seul byie, les bits 4 à 7 du bytu du poids le plus
    faible ("bits 4-7 of thé low-order byte", ou byte le moins significatif, ou byte le plus à droite».

    Par exemple le nombre positif suivant (598H} représenté dans le FORMAT DÉCIMAL ZONE (EBCDIC) en trois
    octets (la portion ZONE du byte de chaque nombre est remplie de 1) :

    positions du bit
    poids du bit
    digit



    0 1 2 3 4 5 6 7 0 1 2 3 4 6 7 0 1 2 3 4 5 6 7
    8 4 2 1 5 4 2 1 8 4 2 1 8 4 2 1 & i. Z 1 8 4 2 1
    1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0
    ZONE D1G1T ZONE U1G1T ZONE D1G1T
    BYTE POS + FORT BÏTE PDS MOYEN ^ÏTE PDS - FORT


    Pour les nombres signés les quatre
    bits les plus à droite (0 à 3) du byte
    le plus à droite représentent le signe.
    Pour les nombres positifs, ta portion
    ZONE du byte est remplie de 1. Les
    nombres dans le système de codage
    EBCDIC ont donc un poids plus élevé
    que les lettres; dans le système
    ASCII les nombres viennent avant les
    lettres dans la collation.

    Le nombre ci-dessus est converti en FORMAT DÉCIMAL COMPACTÉ 1 6-bit comme suit, les 4 bits du hyte le
    moins significatif représentant le signe positif pour le nombre contenu dans les 3 autres quanets qui le pœcôdf.-nt,

    positions du bit
    poids du bit
    digit



    tl«Mt«
    0 1 2 3 4 5 6 7 0 1 2 i 4 5 6 7
    8 A 2 1 8 4 2 1 8 4 2 1 8 4 2 1
    0 1 0 1 1 0 0 1 1 0 0 0 1i ^ 1
    ZONE D1G1T ZONE D1G1T
    BÏTE POS + FORT BÏTE PDS - FORT

    En FORMAT DÉCIMAL COMPACTÉ, pour les
    nombres signés, les quatre bits ies plus à drojfe (0
    à 3) du bvîe le plus à droite représentent IR Kiqrie.
    Pour les nombres positifs, la puriion ZONE du byte
    est remplie de 1. Les nombres dans le système de
    codage EBCDIC ont donc un poids plus élevé que
    les lettres; dans le système ASCII les nombrc's
    viennent avant les lettres dans la collation.

    vin AVANTAGE&DES BCD

    IDANS DES APPLICATIONS t/0
    IDANS LES ERREURS D'ARRONBI

    Dans les applications du CHIP cfr I/O, seule cette représentation est commode,
    Dans les calculs à virgule flottante, il y a souvent des erreurs d'arrondi
    entraînant parfois de faux résultats au niveau du dernier chiffre décimal
    conduisant au problème bien connu dans les milieux financiers des "centimes
    manquants" ( missing pennies").

    1. La numération basée sur le poids des digits en fonction de la position qu'ils occupent dans le nombre est appelé NUMÉRATION
    DEPOSITION. C'est la méthode avec les chrffres arabes. La numération utilisée par IBS romains et les grens est appelf^' NUMÉRATION
    ALPHABÉTIQUE.

    2. Les ERREURS D'ARRONDI sont aussi appelées ERREURS DE TRONCATURE.

    A LA DÉCOUVERTE DU LANGAGE C && C + + - 74 / 24, 44, 57. 82, 99 TOME VU : Samedi 6 août 1994 (2h24pm)

    ÏINSTRUCTIONS D'AJUSTAGE ASCII Dans les instructions d'ajustage ASCII (AAA, AAM, AAD, AASt utiles

    pour convertir les nombres d'une base à une autre.

    ÏCOPROCESSEUR MATHEMATIQUE Lescoprocesseursmathémàtiquesutilisent convenablement bien les BCD.
    XDEVELOPPEMENT DE COMPILATEURS LÈS instructions BCD sont aussi utilisées pour développer des compilateurs,
    des librairies de fonctions, et autres outils des systèmes.

    IX

    TRANSFORMATION DE NOMBRES D'UNE BASE À UNE AUTRE

    11 y a plusieurs bases (ou systèmes) de numération : les bases binaire, octal, décimal, hexadécimal, BCDC (Décimal
    Code Binaire Compacté), BCDNC (Décimal Codé Binaire Non Compacté ou Etendu), ASCII, EBCDIC, etc.

    Voici quelques équivalences d'une base de numérotation à l'autre :



    :; Décimal Binaire t8 biïs} .:':. Hexadécimal 'Octal BCDC BCDE ASCII •:.
    0 0000 0000 • 0 0 0000 0000 0000 0000 NULL
    !.. "1 ' 0000 0001 1 1 0000 0001 0000 0001 ©
    - 2 00.00 Q010 2 2 00000010 00000010 ®
    3 0000 0011 - 3 3 0000 0011 0000 0011 »
    4 0000 0100 4 4 00000100 00000100 «
    5 00000101 „ 5 5 00000101 00000101 *
    6 00000110 G 6 00000110 0000 0110 *
    : '7.'" 0000 0111 7 7 00000111 00000111 • BEEP
    8 0000 1000 8 10 0000 1000 0000 1000 . DLT
    9 0000 1001 9- 11 0000 100-1 0000 1001 0
    10 0000 1010 A 12 . 0001 0000 N.A. BLF
    11 0000 1011 B 13 0001 0001 IM.A. rf
    12 0000 1100 C 14 0001 0010 N.A. î
    -/:.. .13- ' 0000 1101 D 15 0001 0011 N.A. J- CR
    14 0000 nio, E 16 0001 0100 N.A. H
    15 0000 1111 F 17 0001 0101 N.A. 0
    16 • 0001 0000 10 20 0001 0110 N.A. ¥

    x REPRÉSENTATION DES NOMBRES DANS LEURS BASES

    En asscr"';;';;v.' on spécifie ia hase du système de numération avec un suffixe comme suit :

    T'



    r- . . - — . , ., . . rABll^l&ES BASES DENOMBRES ':'. — .: ..„• .: •.....„. •=
    BASE SUFFIXE ÉTENDU OU D1GITS VALABLES
    Binaire"' 2 Y ou B 0 1
    Octale^ 8 0 ou 0 01 234567
    r^-imal':'13' 10 T ou D 0123456789
    Hexadécimals"1' . 16 H 0123456789ABCDEF
    Nombres Réels R 0123456789.E+-

    1. Les nombres BINAIRES sont représentés en assembleur avec le suffixe B ou Y, :

    2. les nombres en base OCTALE sont représentés en assembleur avec le suffixe Q ou 0. ' :

    3. Les nombres de la ba'io DECIMALE peuvent avoir en assembleur le suffixe T ou D (le défaut quand non spécifié),

    4. Les nombres H£XADÉCI^-W)( doivent commencer en assembleur par un chiffra (digiti entre Od et 9d ; De ce fait, Ffh est considéré
    par l'a^'n.'cibifiij.' comi,.. .".• '.-.h].'li ...iWs i\w OFFh est con&id^'é comma l'équivalent hexadécimal -1 signé ou 255 non signé.
    ils peuvent emprunter lys digits A à F de l'alphabet, mais dans lequel cas le nombre hexadécimal doit être représenté avec
    un préfixe 0, et aussi de préférence un suffixe H,

    TOUT SUR LES NOMBRES 75 / 24. 44. 57. 82P69R SE FAME fflCADftEUR EN LANGAGE MACHINE



    A l£S NOMBRES HEXADÉCIMALIX

    Les nombres hexadécimaux servent à transposer facilement et lisiblement les nombres binaires car chaque digit
    hexadécimal (nybble) représente 4 digits binaires (on hits). De ce fait, ils sont commodément utilisés pour numéroter
    les cellules ou adresses (numérotation des segments et offsets) dans la mémoire, lire le contenu de ces adresses
    et des registres, etc.

    Par exemple l'instruction d'appel à l'INT est exécutée avec un byte d'instruction, ou code 8-bjt (CD> ; ce qui
    serait en binaire 1100 1101 b.

    Comment transformer 1 250d en Hexa 7
    Comment transformer 1250h en Déci ?

    On se sert de la technique de division par ta base et la retenue des restes comme suit:

    Pour convertir 1 250d en Hexa, on procède comme suit ;

    1250d / 16d = 78 (teste 0.125 ; 0.125 x 16 • 2(t - 2h-

    1—————————

    78d / 16d = 4 R»ste 0.875 ; 0.875 x 16 " Ud • Eh-

    4d / 16d * 0 Reste 4.000 ; 4.000 * 16 • 4d - ih-

    "1

    Pour convertir donc 1 250h en Déci, on
    procède comme suit;

    1250h / Ah " 1D4h Resta 8fi •
    1Dûh / Ah = 2Eh Heste 8h - 8ct-——i

    2Eh /Ah - 4h RMte
    ith / Ah - " Oh Rest»

    6h, - 6^—i

    tft

    Cette division étant par Ah 10d, le reste est toujours identique dans les deux bases f 10 et 1 6). Si la conversion
    se fait vers la base hexacédimale, le reste dort être exprimé en hexadécimale (un reste de 1 2d - > OCH).

    On peut aussi utiliser les instructions des BCD pour faire la conversion de nombres d'une base à l'autre, par
    exemple le programme suivant qui convertit un nombre binaire à 8 bits en un hexadécimal, et l'affiche à l'écran.

    TITLE PROGRAMME COMVBASE-ASM
    CODE SEGMENT

    ASSUME CS:COOE, DS:COOE
    START;

    35 H ,- 53D

    ; AJUSTE AU BCO 0503H
    AX

    3030H

    DL

    AL,

    MOV
    AAM

    MOV DK
    AOO DX
    XCHG DM
    MOV AH

    1NT
    INT
    HOV
    INT
    CODE

    END

    2ÏH
    20H
    AH,
    21H

    EMDS
    START

    4CH

    Pour bien voir les effets de ce programme, il faut
    l'exécuter avec le T du DEBUG. Rappelez-vous que
    dans les registres tous les nombres sont stockés
    en binaires (ou hexadécimal). Sachez aussi que
    dans les registres les nombres sont stockés tels
    que nous les lisons (high bvte avant ou dans le
    RH, et low bvte après ou dans le RL),
    contrairement à la mémoire où les nombres sont
    stockés low byte avant et high byte après (voir
    pageist 81).

    Essayez aussi un programme en remplaçant l'instruction des BCD AAM par les autres instructions BCD AAA,
    AAS, AAM, AAD. DAA, DAS, etc et vous verrez qu'elles ne donnent pas toutes les mêmes résultats.

    s. l£S WJJÎES I^SrVÎUCTIONS DES BCD



    C:\UP51\D ATA>debu g essai.co ffl
    -u
    9210;0100 B828QO HOV AK,00?8
    9210;0103 BB3500 MOV 8X ,0035
    9210:0106 0108 AOD AX, ,BX
    9210:0108 27 DAA
    ÏZ10;0109 B82800 MOV AX, ,0028
    9210!01 OC 0108 ADD AX, ,BX
    9Z1D:010E 37 AAA
    921Dî010F B82800 MOV AX, ,0028
    921D:0112 0108 ADD AXHfl, ,BX
    921D;01U 2F DAS
    921D:0115 B82800 MOV AX, ,0028
    921D;0118 0108 ADD AX, BX
    921D;011A 3F AAS
    931D;011B B82800 MOV AX, ,0028
    921D:011E 0108 ADD AX; ,BX
    921D:0120 OlOA AAM
    9210:0132 B82800 MQV AX, ,0028
    9210:0125 0108 ADD AX. .BX
    9210:0127 D50A AAD
    9210:0129 CD20 INT 20
    "r
    AX=0000 8X^0000 cx=ooaa DX=0000 SP=OE2E
    DS=9Z1D ES=9210 SS=921D CS=921D 1P=0100
    9210:0100 682800 •MOV AX,0028
    A5=0028 BX=0000 CX=002B OX=0000 SP=OE2E
    05=9210 ES=921D SS=921D CS=9210 IpiOlOî
    921Dî0103 BB3500 MOV BX,0035

    BP=0000 S 1=0000 D1=0000
    NV UP El PL NZ NA PO HC

    BP=0000 Sl=0000 01=0000
    NV UP El PL NZ NA PO NC

    A LA DÉCOUVERTE DU LANGAGE C && C+ + - 76 / 24, 44. 57. 82, 99 TOME VII : Samedi 6 aoQt 1994 f2h24pm)



    IŒPRKSKNTAT10N ttVS NOMBRES DANS LEURS BASKS

    LES NOMBRES



    AX=OOZ3 BX'OOiS CX=002B DX^OOOO SP=DE2E
    OS=921D ESï921D SS=921D CS^931D IP=0106
    ?21C:01G6 01D8 ADD AX, BX
    AX-0050 BX^0035 CX=003B 0X^0000 SP-'DE2E
    CS-Î210 ES=Î21D SS=921D CS^921D IP"0108
    WO:0'\OE 27 DAA
    AX=0063 BX=OQ35 CX=002B DX=0000 SP=DE2E
    DS-921D ES=921D SS-921D CS=?21D IP=0109
    9210:0109 B82SOO MOV AX, 0028
    AX=002S BX=0035 CX=002B DX=0000 SP=DE2E
    OS=921D ES='î21D SS=921G CS=921D IP=010C
    921D:010C 01G8 ADD AX, BX
    AX-005D BX-0035 CX=002B DX=0000 SP=DE2E
    OS=9210 ES=921D SS=921D I:S=921D IP-010E
    921D:010E 37 AAA
    AÎM103 BX^0035 CX=002B DX=0000 SP=DE2E
    DS=921D ES'9210 SS=921D CS=Î21D IP^OlOf
    921D:010F B82800 MOU AX, 0028
    A?=0028 BX=OOi5 CX=002B OX=0000 SP=DE2E
    DS=ÎZ1D ES=921D SS=921D CS=921D 1P=0112
    9210:0112 01D8 ADD AX, BX
    A^OOSD BX=0035 CX=002B DX=0000 SP=DE2E
    OS.=921D ES=9210 SS=9210 CS=921D IP=0114
    9210:0114 2F OAS
    AX=0057 BX-0035 CX-002B DX=0000 SP=OE2E
    DS-9210 ES=921D SS=921D CS=9210 IP=0115
    9Z1D:0115 B82800 MOV AX, 0028
    AX=0028 BX=0035 CX=OOZB DX-0000 SP^DESE
    DS^921D ES=921D SS=921D CS=921D ]P=0118
    9210:0118 01DS ADD AX, BX
    AX=005D BX=0035 CX=002B DX=0000 SP=CE2E
    DS-Î21D ES=921D SS=9Z10 CS=921D [P-011A
    921D:011A iF AAS
    AX^FF07 BX=0035 CX=002B DX=0000 SP=OE2E
    OS^9210 ES^921D SS=921D CS-921D 1P=011B
    921D:011B BB2800 MOV AX i ,0028
    Ax=0028 BX-OG35 CX=002B DX=0000 SP=DE2E
    OS-921D ES=921D SS=921D CS=Ï21D IP^OIIE
    ?21D:011E 01D8 ADD AX, ,BX
    AX^OOSD BX=0035 CXïQOïB DXîOOOO SP=DEZE
    DS^921D ES=921D SS=921D CS=9i'lD 1P=01ZO
    9210:0120 D40^ AAM
    AX=0903 B>!=0035 CX^002B DX=0000 SP-DE2E
    DS=921D ES=921D SS=Î21D CS=921D IP=0122
    ?21D:0122 B82800 MOV AX.002B
    tS-0028 BX=0035 CX=002B DX=0000 SP=DÉ2E
    DS^9210 ES-Î21D SS=921D CS-9211J IP=0125
    921D:0125 01D8 ADD AX,BX
    Aë-005D BX=0035 CX=002B DX=OOQO SP=DE2E
    DS=921D ES-921D SS=9Z1D CS=9210 IP=01Z7
    9210:0127 D50fl AAD
    AX=005D BX=0035 CX=002B DX=0000 SP=DEZE
    DS=9Z1D ES=921D SS-921D CS=921D 1P-0129
    9210:0129 CD20 INT 20

    BP=0000 SI^OOOO 01=0000
    NV UP El PL NZ NA PO NC

    'BP=0000 Sl=0000 01=0000
    NV UP El PL NZ NA PO NC

    BP-0000 Si-0000 Dl=0000
    NV UP El PL NZ AC PE NC

    BP=0000 Sl=0000 DI=0000
    NV UP El PL HZ AC PE NC

    BP=0000 S 1=0000 D1-0000
    NV UP El PL NZ NA PO NC

    BP=0000 Sl=0000 DI=0000.
    NV UP El PL NZ AC PE CY

    BP'OOQO SI^OOOO DI=QOOO
    NV UP El PL NZ AC PE CY

    BP-0000 SI=0000 Dl=0000
    HV UP El PL NZ HA PO NC

    BP^OOOO SI=0000 DI=0000
    NV UP El PL N; AC PO NC

    8P=0000 SI=0000 DI=0000
    NV UP El PL HZ AC PO NC.

    BP^OOOO SI=0000 01=0000
    NV UP El PL NZ NA PO NC

    BP-0000 51^3000 DI=0000
    NV UP El PL NZ AC PO Cl

    BP=COOO SI=0000 Dl=0000
    NV UP El PL NZ AC PO CY

    BP=0000 SI=0000 Dl-0000
    NV UP El PL NZ NA PO NC •

    BP'OOOO Sl=0000 01=0000
    NV UP El PL NZ NA PE NC

    BP=0000 SI=0000 DI=0000
    NV UP E! PL NZ NA PE NC

    BP'OOOO Sl'OOOO Dl=0000
    NV UP El PL NZ NA PO NC

    BP'OOOO SI=0000 DI=0000
    NV UP El PL N2 NA PO NC




    Chaque instruction d'ajustage est donc appropriée pour l'instruction arithmétique à laquelle elle est associée.

    1 DANS LES BCD ÉTHMDUS

    1

    CARRY FlAG ((CF) le signai de reports) et AUXIL1ARY CARRY FLAG l(AUX) le signa! de reports auxiliaires)
    se mettent à 1 si le nombre dans AL doit prêter/emprunter à/de AH.

    2 DAIS-S LES BCD COMTOCTES

    Avec tes BCD compactés l'instruction d'ajustage décimal n'affecte Jamais AH. .

    AUXIL1ARY CARRY FLAG «AUX» le signal de reports auxiliaires) se met à 1 si le nombre dans LES QUATRE
    BITS LES PLUS FAIBLES (le quartet du faible poids) doit prêter/emprunter au/du quartet de poids le plus élevé.

    CARRY FLAG (|CF) le signal de répons) se met à 1 si le nombre dans LES QUATRE BITS LES PLUS SIGNIFICATIFS

    (le quartet du poids le plus élevé) doit prêter/emprunter au/d'un autre byte.

    XI

    FORMATS D'ENCODAGE DES NOMBRES REELS

    II y a essentiellement trois formats d'encodage des nombres réels.

    Les anciennes versions de fvlASM utilisaient le format d'encodage binaire de Microsoft que l'on peut activer
    dans MASM 5.0+ > par la directive .MSFLOAT. La directive .MSTLOAT perturbe le stockage dans la mémoire
    des nombres en provenance du coprocesseur mathématique. .MSFLOAT désactive aussi les inctructions du

    TOUT SUR LES NOMBRES 77 / 24. 44. 57. 82P8BR-SE FAIRE ENCADREUR EN LANGAGE MACHINE


    coprocesseur.

    MASM 5.0+ > ainsi que les autres langages de Microsoft (C, FORTRAN, Pascal) ainsi que le Coprocesseur
    mathématique utilisent le format d'encodage binaire IEEE. Le MS-CodeView ne peut afficher que les nombres
    en format IEEE.

    Le format temporaire 10 byles est surtout et l'unique utilisé par le coprocesseur.

    A FORMAT CEE

    Permet d'encoder les nombres réels de 4 byies (short real) et 8 bytes (long real):

    i. RÉELS COURTS: 4 BYTES
    ».MANIJSSE

    Bits 0 à 22

    b.EXPONENT

    Bits 23 à 31

    c. SIGNE

    Bit 31 ,

    2 RÉELS LONGS: 8 BYTES
    «.AWV7ÎSSE

    Bits 0 à 51

    bEXPONENT

    Bits 52 à 62

    c. SIGNE

    Bit 63

    A. NUMÉRO SPÉCIAL (DR DIASOUJKA)
    AFRIQUE MEDICALE, 22e année. ^211 Juin-iiiillet 1983. pp 323-359. . .

    11 à 20 : NUMÉRO SPÉCIAL (DR DIASOLUKA Nu. Luy.ilu) - - ^
    I- rORTHOPISATION DANS LA MYOPIE DIASOLUKA Nz. Luyalu : pp. 323-328;

    2. Des INJECTIONS SOUS-CONJONCT1VALES BULBAIRES DIASOLUKA Nz. Liiyalu ; pp. 331-332;

    3. MYOPIE DÉGÉNÉRATIVE ET AGE D'APPARITION DIASOLUKA Nz- Luyalu ; pp. 333-335: ''

    4. l'ENVERGURE DE LA MYOPIE DÉGÉNÉRATIVE DIASOLUKA Nz. Luyalu : pp. 337-338;

    5. LA RIGIDITÉ SCLÉRALE DANS LA MYOPIE DIASOLUKA Nz. Liiyalu : pp. 343-345;

    6. L'IMPÉDANCE DE LA MYOPIE DIASOLUKA Nz- Luyaki : pp. 347-348:

    7. LA BIO-MATHÉMATIQUE DE L'ÂGE DANS LA MYOPIE DÎASOLUKA Nz. Luyalu : pp. 349-351;

    8. POINT DE VUE - CRYPTOCRITERES D'ÉVALUATION D'UN MÉDICAMENT DIASOLUKA Nz. Luyain : pp, 351

    9. Le MOMENT STATISTIQUE DIASOLUKA Nï. Luyalu : pp. 357; ^

    10. La PENTE DE PROBABILITÉ DIASOLUKA Nz. Luyalu : pp. 358-359;

    J

    11. LE DEGRÉ DE PRESBYTIE DIASOLUKA Nz. Luyalu : pp. 645 - 646;

    12. l'AGE ET LA MYOPIE DIASOLUKA Nz. Luyalu : pp. 649-654; ' .,

    À LA DÉCOUVERTE DU LANGAGE C && C++- 78/24.44,57,82,99 - TOME VII : Samedi G aoûl 1994 (2h24pml



    Bienvenu sur http://www.geocities.com/annudias
    « http://www.geocities.com/annudias/annudias.html »

    ________________________________________
    BIOGRAPHIES
    Ma-Ngudi Bio
    Dias-WBM
    Diasoluyalu
    diasoluyalu
    ophtdiasoluyalu

    INFORMATIQUE
    E-Mail Gratuit
    affichedisque
    aleat15arr
    aleat15cal
    aleat15cal

    aleatc0a15
    aleatc0a15
    aleatu0a15
    APL
    genmailaddresses

    implicinfoviequot

    votre commentaire
  • Les statistiques sont très utiles dans l'évaluation des résultats et dans certaines prédictions. Toutefois, il faut prendre avec beaucoup de prudences ses résultats, faute de sombrer dans des considérations périlleurses.


    Par ailleurs, aucun moteur de recherche n'est susceptible de retrouver juste le site dont on peut vraiment avoir besoin. C'est ça qui fait la force des annuaires <catégorisés>. Bien entendu, un site est un très bon moyen pour obtenir les coordonnées nécessaires à une correspondance. Le lien au LinkWare (annuaire < catégorisé >) en "libre Donnation" (Donationware) facilite à retrouver et/ou accéder à presque tous les sites utiles.


    Shiut... D'abord une question saugrenue. Quand on coupe un arbre, ressent-il de la douleur? Vous pouvez répondre en justifiant votre réponse.


    Une information: Savez-vous que la taille de la terre est pratiquement l'inverse de celle d'une cellule de plante ?

    Terre                     = 12.76 x 10+6 = 12'760'000 mètres de diam (12,76 millions mètres)
    Cellule de Plante = 12.76 x 10-6 = 0.00001276 mètres de diam (12,76 millionième de mètre)

    Ouvrons maintenant notre sujet.


    Dans un Service d'Ophtalmologie que j'ai dirigé pendant 8 mois, de février 1980 à novembre 1980, le tout premier malade reçu souffrait d'un Ulcer de Mooren.

    Pendant toute la première semaine, il n'y eu que ce seul malade, et ce fut l'unique cas sur les quelques 3000 malades reçus dans ce service.

    Voici ce que donne les statistiques pour la prévalence de cet Ulcer de Mooren :








































    Jusqu'à

    Prévalence apparente

    1 malade


    100,00%


    2 malades


    50,00%


    3 malades


    33,33%


    4 malades


    25,00%


    5 malades


    20,00%


    10 malades


    10,00%


    100 malades


    1,00%


    100 malades


    1,00%


    1000 malades


    0,10%


    2000 malades


    0,05%


    3000 malades


    0,03%



     


    Bref, dans une même institution hospitalière, les statistiques pour la même affection ont donc varié de 100,00% à 0,03% en huit mois, et on aurait peut-être continué au même rythme, puisque depuis lors jusqu'à aujourd'hui 23 juin 2005 je n'en ai plus reçu.

    Par inadvertance, on aurait conclu que la maladie est saisonnière ou qu'elle est favorisée par certains facteurs qui se manifesteraient à la période où le malade s'est présenté et qui influeraient sur sa prévalence, ou peut-être que cette affection est en voie de disparition/éradication. Mais ce cas vraiment évident nous montre qu'il n'en est rien.

    Par ailleurs, quand on dit qu'une probabilité est de X%, cela ne veut pas dire qu'absolument X fois sur 100 l'événement doit se produire, même quand X vaut 100. Il y a TOUJOURS un peu plus que 100-x pct de chances pour que l'événement ne survienne pas.

    Par réciprocité, quand on dit que la probabilité de l'inverse (ou complément) d'un événement est de (100-X)%, il y a plus de X% de chance qu'il se manifeste. Il y a donc nécessairement une zone [de confusion] qui recouvre dans la réalité la probabilité d'un événement et son inverse, faisant en fait que la somme des probabilités est plus de 100%.

    C'est ce que j'appelle les aléas statistiques.

    Quand on vous dit que telle circonstance est à 99.99% sûre, vous pouvez bien être parmi ceux qui constituent la probabilité inverse de 0,01% d'insécurité. Alors pour vous, la mort est survenue de façon certaine à 100% de cas, peu importe la grande probabilité globale des 99,99%.

     


    Comme quoi, tout est relatif.
    On revient toujours à la loi de la relativité,
    pour dire que rien n'est absolu, tout est relatif.


    jeandiasolu@hotmail.com


    votre commentaire
  • Revenez bientôt pour passer vos bons moments méditationnels.
    Merci.

    1 commentaire


    Suivre le flux RSS des articles de cette rubrique
    Suivre le flux RSS des commentaires de cette rubrique