; algorithme de multiplication avec des nombres signés ; ; testé avec 14 * -3 ; LDA 14,i ; dividende dans le registre A LDX -3,i ; diviseur dans le registre X CALL MULTIPLI ; STRO msgprod,d STA temp,d DECO temp,d CHARO '.',i STOP ; ;MULTIPLI: effectue la multiplication par additions successives ; ; Passage des paramčtres par les registres ; ; IN: reg A : multiplicande ; reg X : multiplicateur ; ; OUT: reg A : produit ; reg X : 0 ; MULTIPLI:CPX 0,i ; Faire "multiplicateur" tours de boucle BREQ zér0 ; on n'a pas ŕ multiplier si le nombre est 0 STA MulcandE,d BRGT PositiF NEGA NEGX PositiF: STA MulcandE,d LDA 0,i ; Initialiser l'accumulateur additioN:ADDA MulcandE,d SUBX 1,i BRNE additioN ; Faire un autre tour si non nul zér0: RET0 STOP ; MulcandE:.BLOCK 2 ; #2d temp: .BLOCK 2 ; #2d msgprod: .ASCII "\nLe produit est \x00" .END