.model small .code public facto public puissance public binaire facto proc near push cx ; cx=n (contient le nombre dont on doit calculer le factoriel) mov ax,1 ; sortie: ax=factoriel de n lbl: cmp cx,1 jbe fin mul cx dec cx jmp lbl fin: ret facto endp puissance proc near push cx push dx mov cx,bx ; bx=exposant mov dx,ax ; dx=nombre à élevé à la puissance mov ax,1 ; sortie: ax= puissance boucle: mul dx loop boucle pop dx pop cx ret puissance endp binaire proc near ;bx=nb entier à afficher en binaire push cx push dx push si mov si,0 mov cl,2 mov dh,0 lblb1: cmp bx,0 je finb1 mov ax,bx div cl mov bl,al add ah,'0' inc si mov al,ah xor ah,ah push ax ;permet d'afficher à l'endroit jmp lblb1 finb1: cmp si,0 ; on affiche le nombre je finb2 ; si si=0, on sort de la boucle pop ax mov dl,al mov ah,2 int 21h dec si ; décrémente le compteur de nombre jmp finb1 finb2: pop si pop dx pop cx ret binaire endp end