Vous êtes sur la page 1sur 4

-------------------------------------------------------------------------------

Object
Addr code Symbol Mnemon Operand Comment
-------------------------------------------------------------------------------
; *********************************************************
; Programme: DECIMAL.TXT version PEP813
;
; Programme qui lit un nombre � l'�cran.
; Ce nombre doit �tre num�rique et ne doit pas exc�der la limite de
32767.
;
; auteur: Bernard Martin
; courriel: martin.bernard@uqam.ca
; date: hiver 2011
; cours: INF2170
; *********************************************************
;
0000 410076 STRO bienvenu,d ; message de bienvenue � afficher
0003 C00000 LDA 0,i
0006 490183 lire: CHARI caract,d
0009 D10183 LDBYTEA caract,d ;analyse du caract�re lu
000C B0000A CPA 10,i ;caract�re "Enter" ?
000F 0A0051 BREQ finlire ;oui, on termine la saisie
;
; multiplication par 10 du nombre d�j� saisi
; et v�rification si le nombre exc�de 32767 (d�bordement)
;
; ex: 1234 est construit par 1*10+2=12, 12*10+3=123,
123*10+4=1234
;
0012 C9017F LDX nombre,d ;inutile de multiplier si le nombre est
�gal � 0
0015 0A002D BREQ pasmult
0018 1D ASLX ; * 2
0019 12006F BRV d�borde
001C 1D ASLX ; * 4
001D 12006F BRV d�borde
0020 79017F ADDX nombre,d ; * 5
0023 12006F BRV d�borde
0026 1D ASLX ; * 10
0027 12006F BRV d�borde
002A E9017F STX nombre,d
;
; le caract�re lu doit �tre compris entre 0 et 9
;
002D B00030 pasmult: CPA '0',i
0030 080069 BRLT pasnombr
0033 B00039 CPA '9',i
0036 100069 BRGT pasnombr
0039 800030 SUBA '0',i ;transformons le caract�re ASCII en
d�cimal
003C 71017F ADDA nombre,d
003F 12006F BRV d�borde
0042 E1017F STA nombre,d
0045 C10181 LDA nbcaract,d ;un caract�re num�rique lu de plus
0048 700001 ADDA 1,i
004B E10181 STA nbcaract,d
004E 040006 BR lire
;
0051 C10181 finlire: LDA nbcaract,d ;avons-nous au moins un caract�re
num�rique ?
0054 0A0063 BREQ vide
0057 4100BF STRO r�ponse,d ;affichage du nombre en d�cimal
005A 39017F DECO nombre,d
005D 410163 STRO normale,d ;fin normale du programme
0060 040075 BR fin
0063 410126 vide: STRO msgvide,d ;seulement le caract�re "Enter" a �t�
entr�
0066 040072 BR fina
0069 4100D3 pasnombr:STRO msgerreu,d ;caract�re non compris entre 0 et 9
006C 040072 BR fina
006F 4100FE d�borde: STRO msgd�bor,d ;nombre > 32767
0072 410148 fina: STRO anormale,d ;fin anormale du programme
0075 00 fin: STOP
0076 426965 bienvenu:.ASCII "Bienvenue � ce programme de lecture d'un
nombre.\n\n"
6E7665
6E7565
20E020
636520
70726F
677261
6D6D65
206465
206C65
637475
726520
642775
6E206E
6F6D62
72652E
0A0A
00A8 456E74 .ASCII "Entrez un nombre svp: "
72657A
20756E
206E6F
6D6272
652073
76703A
20
00BE 00 .BYTE 0
00BF 0A4C65 r�ponse: .ASCII "\nLe nombre lu est: "
206E6F
6D6272
65206C
752065
73743A
20
00D2 00 .BYTE 0
00D3 0A556E msgerreu:.ASCII "\nUn caract�re non num�rique a �t� entr�.\n\n"
206361
726163
74E872
65206E
6F6E20
6E756D
E97269
717565
206120
E974E9
20656E
7472E9
2E0A0A
00FD 00 .BYTE 0
00FE 0A4C65 msgd�bor:.ASCII "\nLe nombre exc�de la limite de 32767.\n\n"
206E6F
6D6272
652065
7863E8
646520
6C6120
6C696D
697465
206465
203332
373637
2E0A0A
0125 00 .BYTE 0
0126 0A4175 msgvide: .ASCII "\nAucun caract�re n'a �t� entr�.\n\n"
63756E
206361
726163
74E872
65206E
276120
E974E9
20656E
7472E9
2E0A0A
0147 00 .BYTE 0
0148 46696E anormale:.ASCII "Fin anormale du programme."
20616E
6F726D
616C65
206475
207072
6F6772
616D6D
652E
0162 00 .BYTE 0
0163 0A0A46 normale: .ASCII "\n\nFin normale du programme."
696E20
6E6F72
6D616C
652064
752070
726F67
72616D
6D652E
017E 00 .BYTE 0
017F 0000 nombre: .WORD 0
0181 0000 nbcaract:.WORD 0 ;nombre de caract�res lus
0183 00 caract: .BYTE 0
0184 .END
-------------------------------------------------------------------------------
------------------------------------------------------
R�sultats de l'ex�cution
------------------------------------------------------
Bienvenue � ce programme de lecture d'un nombre.

Entrez un nombre svp: 1234

Le nombre lu est: 1234

Fin normale du programme.


------------------------------------------------------
Bienvenue � ce programme de lecture d'un nombre.

Entrez un nombre svp: 123A

Un caract�re non num�rique a �t� entr�.

Fin anormale du programme.


------------------------------------------------------
Bienvenue � ce programme de lecture d'un nombre.

Entrez un nombre svp:

Aucun caract�re n'a �t� entr�.

Fin anormale du programme.


------------------------------------------------------
Bienvenue � ce programme de lecture d'un nombre.

Entrez un nombre svp: 33333

Le nombre exc�de la limite de 32767.

Fin anormale du programme.


------------------------------------------------------
Bienvenue � ce programme de lecture d'un nombre.

Entrez un nombre svp: 0000000000000001

Le nombre lu est: 1

Fin normale du programme

Vous aimerez peut-être aussi