1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| multiplication :
CRLF
CMP recupnum, 0 ; booleen qui dit si les nombres ont été saisit ou non
JE recupnuminter ; je saute recupérer les deux nombres à multiplier entre eux
MOV AL, nb2+5
ADD AL, 0
AAA ; adjust ascii for addition
MOV res+6, AL
MOV AL, nb2+4
ADC AL, 0
AAA
MOV res+5, AL
MOV AL, nb2+3
ADC AL, 0
AAA
MOV res+4, AL
MOV AL, nb2+2
ADC AL, 0
AAA
MOV res+3, AL
MOV AL, 0
ADC AL, 0
MOV res+2, AL
CALL AJUST ; procédure qui converti les nombres en ASCII en décimal
MOV CL, res
go :
CMP CL, 0
JE next
DEC CL
MOV AL, nb1+5
ADD AL, nb1+5
AAA ; adjust ascii for addition : on converti les nombres pour l'addition
MOV res+6, AL
MOV AL, nb1+4
ADC AL, nb1+4
AAA
MOV res+5, AL
MOV AL, nb1+3
ADC AL, nb1+3
AAA
MOV res+4, AL
MOV AL, nb1+2
ADC AL, nb1+2
AAA
MOV res+3, AL
MOV AL, 0
ADC AL, 0
MOV res+2, AL
JMP go
next :
CALL AJUST
AFFICHMUL
JMP start ; start est le début du programme |
Partager