testfl macro z pushf lea dx,tf&z mov ah,9 int 21h popf pushf j&z ecr&z call ecr0 jmp suit&z ecr&z: call ecr1 suit&z: popf endm write macro y push ax push dx lea dx,&y mov ah,9 int 21h pop dx pop ax endm ecrit macro x push ax push dx lea dx,ent&x mov ah,9h int 21h pop dx pop ax push ax push dx mov ax,&x call calreg pop dx pop ax endm public voir prog segment 'code' ; debut du programme assume cs:prog,ds:prog voir proc far push ds ; sauve le ds push ax push bx push cx push dx push di push si pushf push ax mov ax,data ; position de la zone des donn‚es mov ds,ax pop ax ecrit ax ecrit bx ecrit cx ecrit dx ecrit di ecrit si lea dx,flags mov ah,9 int 21h popf testfl s ; presentation des flags testfl z testfl p testfl c lea dx,flags mov ah,9 int 21h pushf mov dl,0ffh ; interro clavier mov ah,6 int 21h jz suite mov ah,4ch int 21h suite: popf pop si pop di pop dx pop cx pop bx pop ax pop ds ;restaure le ds ret voir endp eflag proc near push dx mov dl,ah mov ah,2 int 21h pop dx ret eflag endp calreg proc near push ax push bx push dx mov bx,ax ;sauve ax mov al,ah ;recupere ah shr al,1 shr al,1 shr al,1 shr al,1 ;recupere 4 bits haut dans al bas call calcaff ;calcule et affiche ascii mov ax,bx ;recupere 4 bits bas de ah mov al,ah ;recupere ah call calcaff ;calcule et affiche ascii ; mov dl,' ' ; ; mov ah,2 ;ecrit un blanc entre ah et al ; int 21h ; mov ax,bx shr al,1 shr al,1 shr al,1 shr al,1 ;recupere 4 bits haut dans al bas call calcaff ;calcule et affiche ascii mov ax,bx ;recupere 4 bits bas de ah call calcaff ;calcule et affiche ascii pop dx pop bx pop ax ret calreg endp calcaff proc near ;s/p calcule et affiche and al,0fh ;nettoie 4 bits haut cmp al,10 ;ccompare a 10 jge hexa ; va en codage hexad‚cimal add al,30h ;codage ascii du chiffre jmp affich ;envoi a l'ecran hexa: add al,55 ;codage ascii du chiffre en lettre affich: mov dl,al mov ah,2 int 21h ;affiche caract‚re ret calcaff endp ecr0 proc near mov dl,'0' mov ah,2 int 21h ret ecr0 endp ecr1 proc near mov dl,'1' mov ah,2 int 21h ret ecr1 endp prog ends data segment entax db 0ah,0dh,'AX= $' entbx db ' BX= $' entcx db ' CX= $' entdx db ' DX= $' entdi db ' DI= $' entsi db ' SI= $' tfs db 'Signe= $' tfz db ' Zero= $' tfp db ' (1 si nul) Parit‚= $' tfc db ' (1 si Som des 1 est paire) Carry= $' flags db 0ah,0dh,'$' data ends end