; ***********************************************************
; Programme: [Link] version PEP813
;
; Multiplication d'un nombre par 10, par 80, par 100
; par 1000 puis division du nombre *1000 par 7.
;
; auteur: Bernard Martin
; courriel: [Link]@[Link]
; date: Hiver 2011
; cours: INF2170
; ***********************************************************
; a) multiplication d'un nombre lu � l'�cran par 10
; en multipliant ce nombre par 4
; et en additionnant le nombre lu
; puis en multipliant le tout par 2
; (nombre * 4 + nombre ) * 2
;
; b) multiplication du nombre lu par 80
; en multipliant le nombre lu par 10
; et en le multipliant par 8
; (nombre * 10) * 8
;
; c) multiplication du nombre lu par 100
; en multipliant le nombre lu par 16
; et en additionnant le nombre lu multipli� par 8
; puis en additionnant le nombre lu
; puis finalement, en multipliant le tout par 4
; (nombre * 16 + nombre * 8 + nombre) * 4
;
; d) multiplication du nombre lu par 1000
; par additions successives
;
; e) division du (nombre lu * 1000) par 7
; par soustractions successives
; a) multiplication par 10
STRO demande,d
DECI nombre,d
STRO message,d
DECO nombre,d
CHARO 10,i ; saut de ligne
LDA nombre,d
ASLA ; * 2
ASLA ; * 4
ADDA nombre,d ; * 5
ASLA ; * 10
STA resultat,d
DECO resultat,d ; nombre * 10
CHARO 10,i ; saut de ligne
; b) multiplication par 80
LDX nombre,d
ASLX ; * 2
ASLX ; * 4
ADDX nombre,d ; * 5
ASLX ; * 10
ASLX ; * 20
ASLX ; * 40
ASLX ; * 80
STX resultat,d
DECO resultat,d ; nombre * 100
CHARO 10,i ; saut de ligne
; c) multiplication par 100
LDX nombre,d
ASLX ; * 2
ASLX ; * 4
ASLX ; * 8
STX resultat,d
ASLX ; * 16
ADDX resultat,d ; * 24
ADDX nombre,d ; * 25
ASLX ; * 50
ASLX ; * 100
STX resultat,d
DECO resultat,d ; nombre * 100
CHARO 10,i ; saut de ligne
; d) multiplication par 1000 par additions successives
LDX nombre,d ; Faire"nombre" tours de boucle
LDA 0,i ; Initialiser l'accumulateur
addition:ADDA 1000,i
SUBX 1,i
BRNE addition ; Faire un autre tour si non nul
STA resultat,d
DECO resultat,d
CHARO 10,i ; saut de ligne
; e) division enti�re positive, calcul du quotient et du reste
; par soustractions r�p�titives
LDA resultat,d ; dividende
LDX 0,i ; quotient
soustrai:ADDX 1,i
SUBA diviseur,d
BRGE soustrai
SUBX 1,i
ADDA diviseur,d
STX quot,d
STA reste,d
DECO quot,d
CHARO ";",i
DECO reste,d
STOP
demande: .ASCII "Entrez le nombre � multiplier: \x00"
message: .ASCII "\nVoici le nombre qui sera multipli� par 10, 80, 100 et 1000"
.ASCII "\npuis multipli� par 1000 / 7: "
resultat:.WORD 0
nombre: .WORD 0
quot: .WORD 0
reste: .WORD 0
diviseur:.WORD 7
.END