Jean Privat Universit du Qubec Montral INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 1 / 21 Plan 1 Arithmtique 2 Instructions Pep/8 Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 2 / 21 Plan 1 Arithmtique 2 Instructions Pep/8 Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 3 / 21 Arithmtique Dnition Science des nombres ( = nombre) Oprations traditionnelles Addition et soustraction Multiplication et division Exercices 1264 + 756 = ? 2567 - 666 = ? 345 - 1264 = ? Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 4 / 21 Arithmtique des ordinateurs Comme avec lcole primaire On travaille en binaire et en hexadcimal Exercices 1001110011 2 + 1010 2 = ? 95C 16 + E1 16 = ? Dirence : pas de soustraction Gestion dirente des signes : Arithmtique en complment La soustraction est un cas particulier de laddition Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 5 / 21 Arithmtique en complment Analogie : Compteur de voiture Dcrmenter un compteur de voiture ? 00003 00002 00001 00000 99999 99998 99997 Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 6 / 21 Arithmtique en complment Le complment dun nombre Le nombre de lautre cot du 0 Et les ngatifs alors Dcoupage (arbitraire) de lespace 00000 49999 : positifs 50000 99999 : ngatifs Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 7 / 21 Dbordement Nombre ni de chires Le domaine des nombres est ni Dbordement = Le rsultat dune opration est hors-domaine Exemple 49999 + 2 Dbordement du complment Un nombre est complment de lui-mme Un nombre na pas de complment Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 8 / 21 Arithmtique en complment en binaire 8 bits 00000000 01111111 : nombres positifs 10000000 11111111 : nombres ngatifs 16 bits 0000000000000000 0111111111111111 : positifs 1000000000000000 1111111111111111 : ngatifs Dtermination du signe Le bit de poids fort permet connatre le signe Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 9 / 21 Calcul du complment en binaire Mthode 1 compl(x) = 2 8 x Mthode 2 Inverser les 0 et les 1 Ajouter 1 au rsultat Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 10 / 21 Arithmtique en complment en hexadcimal 16 bits max (32767) : 7FFF min (-32768) : 8000 Dtermination du signe Premier chire : 0 7 0 ; 8 F < 0 Calcul du complment Soustraire chaque chire de F (15 10 ) Ajouter 1 au rsultat Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 11 / 21 Plan 1 Arithmtique 2 Instructions Pep/8 Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 12 / 21 Addition En Pep/8 : Instruction ADDr Oprande 1 en registre (A ou X) Oprande 2 en mmoire (ou dans linstruction) Rsultat rang dans le registre (oprande 1 crase) Exemple LDA 42 , i ; Range 42 dans A ADDA 999 , i ; Aj out e 999 dans A STA l a_bas , d ; Range A l a bas Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 13 / 21 Rsultats intermdiaires Combiner plusieurs tapes de calcul On accumule les rsultats dans laccumulateur Parfois on utilise des mots mmoire supplmentaires Exemple : t = x + y + z LDA x , d ; Range x dans A ADDA y , d ; Aj out e y dans A ADDA z , d ; Aj out e z dans A STA t , d ; Range A dans t Exercice Calculer x = a + b + c et y = a + b + d Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 14 / 21 Ngation En Pep/8 : Instruction NEGr Oprande en registre (A ou X) Rsultat rang dans le registre (oprande crase) Exemple LDA 42 , i ; Range 42 dans A NEGA ; A = A STA l a_bas , d ; Range A l a bas Exercices Calculer x = a-b Calculer y = (a+b)-(c+d) Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 15 / 21 Soustraction En Pep/8 : Instruction SUBr Oprande 1 en registre (A ou X) Oprande 2 en mmoire (ou dans linstruction) Rsultat rang dans le registre (oprande 1 crase) Exemple LDA 42 , i ; Range 42 dans A SUBA 999 , i ; S o u s t r a i t 999 dans A STA l a_bas , d ; Range A l a bas Exercice Calculer (a+b)-(c+d) Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 16 / 21 Code de condition Bits de status = info sur lopration N : le rsultat est strictement ngatif Z : le rsultat est nul (zro) V : il y a eu un dbordement (overow) C : le bit de retenue (carry) Attention Chaque instruction peut aecter N, Z, V et C sa faon (voir la documentation) Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 17 / 21 Dtection de dbordement Dbordement ssi lun des cas suivant Positif + Positif Ngatif Ngatif + Ngatif Positif Exercice Dmontrer que Positif + Ngatif est toujours sr Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 18 / 21 Limites Arithmtique ottante Bien plus compliqu (voir plus tard) Pep/8 Pas de multiplication ou de division il faudra les implmenter nous-mme Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 19 / 21 La semaine prochaine Programmer en assembleur Pep/8 Directives Instructions Symboles Adressages Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 20 / 21 Bibliographie Notes de cours Chapitre 4 : Introduction larithmtique sur ordinateur Livre Chapitre 4 et section 7.4 Programmes 03-sommes.pep 03-soustractions.pep Jean Privat (UQAM) 03 Arithmtique INF2170 Automne 2013 21 / 21