; ************************************************************** ; Programme: POLYNOME.TXT version PEP813 sous Windows ; ; Programme qui résout l'équation quadratique ; x^3 + Ax^2 + Bx + C. ; ; auteur: Bernard Martin ; code permanent: inexistant ; courriel: martin.bernard@uqam.ca ; date: Eté 2020 ; cours: INF2171 ; ************************************************************** ; STRO msgA,d DECI A,d STRO msgx,d DECI x,d STRO msgB,d DECI B,d STRO msgC,d DECI C,d ; ; calcul du polynome x3 + Ax2 + Bx + C ; ; extrait de MULTDIV3 pour l'algorithme de multiplications de nombres signés ; ; x^2 := x * x ; LDA 0,i LDX x,d ; Faire "nombre" tours de boucle BREQ zéro1 BRGE additio1 NEGX ; rendre positif le nombre de boucles LDA -1,i STA signe,d ; on conserve le signe négatif (0-positif,-1-négatif) LDA 0,i additio1:ADDA x,d BRV déborde SUBX 1,i BRNE additio1 ; Faire un autre tour si non nul LDX signe,d BREQ positif1 NEGA zéro1: NOP0 positif1:STA x2,d ; ; x^3 := x ^ 2*x ; LDA 0,i STA signe,d LDX x2,d ; Faire "nombre" tours de boucle BREQ zéro2 BRGE additio2 NEGX ; rendre positif le nombre de boucles LDA -1,i STA signe,d ; on conserve le signe négatif (0-positif,-1-négatif) LDA 0,i additio2:ADDA x,d BRV déborde SUBX 1,i BRNE additio2 ; Faire un autre tour si non nul LDX signe,d BREQ positif2 NEGA zéro2: NOP0 positif2:STA x3,d ; ; A * x^2 ; LDA 0,i STA signe,d LDX x2,d ; Faire "nombre" tours de boucle BREQ zéro3 BRGE additio3 NEGX ; rendre positif le nombre de boucles LDA -1,i STA signe,d ; on conserve le signe négatif (0-positif,-1-négatif) LDA 0,i additio3:ADDA A,d BRV déborde SUBX 1,i BRNE additio3 ; Faire un autre tour si non nul LDX signe,d BREQ positif3 NEGA zéro3: NOP0 positif3:STA Ax2,d ; ; B*x ; LDA 0,i STA signe,d LDX x,d ; Faire "nombre" tours de boucle BREQ zéro4 BRGE additio4 NEGX ; rendre positif le nombre de boucles LDA -1,i STA signe,d ; on conserve le signe négatif (0-positif,-1-négatif) LDA 0,i additio4:ADDA B,d BRV déborde SUBX 1,i BRNE additio4 ; Faire un autre tour si non nul LDX signe,d BREQ positif4 NEGA zéro4: NOP0 positif4:STA Bx,d ; ; poly := x3 + Ax2 + Bx + C ; LDA 0,i ADDA x3,d BRV déborde ADDA Ax2,d BRV déborde ADDA Bx,d BRV déborde ADDA C,d BRV déborde STA poly,d STRO msgpoly,d DECO poly,d BR fini déborde: STRO msgdeb,d fini: STOP msgdeb: .ASCII "\nDébordement\x00" msgA: .ASCII "Entrez la valeur de A: \x00" msgx: .ASCII "\nEntrez la valeur de x: \x00" msgB: .ASCII "\nEntrez la valeur de B: \x00" msgC: .ASCII "\nEntrez la valeur de C: \x00" msgpoly: .ASCII "\n\nLa valeur de x^3+Ax^2+Bx+C est \x00" A: .BLOCK 2 B: .BLOCK 2 C: .BLOCK 2 x: .BLOCK 2 poly: .BLOCK 2 x2: .BLOCK 2 ; #2d x3: .BLOCK 2 ; #2d Ax2: .BLOCK 2 ; #2d Bx: .BLOCK 2 ; #2d signe: .BLOCK 2 ; #2d .END