0% ont trouvé ce document utile (0 vote)
160 vues2 pages

Mult Div

Ce document décrit des opérations mathématiques pour multiplier un nombre entré par l'utilisateur par 10, 80, 100 et 1000 puis diviser le résultat par 7 en utilisant des instructions assembleur PIC16. Le document contient les étapes pour effectuer chaque opération mathématique.

Transféré par

Jason
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
160 vues2 pages

Mult Div

Ce document décrit des opérations mathématiques pour multiplier un nombre entré par l'utilisateur par 10, 80, 100 et 1000 puis diviser le résultat par 7 en utilisant des instructions assembleur PIC16. Le document contient les étapes pour effectuer chaque opération mathématique.

Transféré par

Jason
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats TXT, PDF, TXT ou lisez en ligne sur Scribd

; ***********************************************************

; 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

Vous aimerez peut-être aussi