Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted by NEmo ( 16 years ago )
;On entre 3 lettres comprises entre a-zA-Z
;On affiche les 3 lettres dans l'ordre ALPHABETIQUES, CbA = AbC >>
;Ne joue plus sur la valeur hexa.
assume ss:pile,ds:donnees,cs:code
pile segment stack use16
db 1024 dup(?)
pile ends
donnees segment use16
tab DB 3 dup(?),'$'
stk DB 3 dup(?),'$'
msg db " --> $"
donnees ends
code segment use16
main:
;-------------------------;
; 1 : Entrées des données ;
;-------------------------;
mov ax,donnees
mov ds,ax
mov tab[3],'$'
mov ah,01h
int 21h
mov tab[0],al
mov ah,01h
int 21h
mov tab[1],al
mov ah,01h
int 21h
mov tab[2],al
;-------------------------------------;
; 1 : Initialisation ;
;-------------------------------------;
mov bx,0
mov si,0
mov di,0
mov cx,0
;-------------------------------------;
; Etape1 : Reperage minuscule ;
;-------------------------------------;
etape1:
cmp si,3
je zero1
cmp tab[si],'Z'
ja minuscule
inc si
jmp etape1
;-------------------------------------------;
; minuscule : stockage et conversion ;
; Bx contient la limite !!!! ;
;-------------------------------------------;
minuscule:
mov ch,tab[si]
mov stk[bx],ch
;on converti
sub tab[si],20h
inc si
inc bx
jmp etape1
;-------------------------------------;
; 2: remise à zero ;
;-------------------------------------;
zero1:
mov si,0
mov di,1
mov cx,0
;-------------------------------------;
; 3: Verification des majuscules ;
;-------------------------------------;
majuscule:
cmp di,3
je zero2
mov ch,tab[di]
cmp tab[si],ch
ja trimajuscule
inc si
inc di
jmp majuscule
zero2:
mov si,0
mov di,1
mov ch,tab[di]
cmp tab[si],ch
ja trimajuscule
jbe zero3
;-------------------------------------;
; 4: triage des majuscules ;
;-------------------------------------;
trimajuscule:
mov ch,tab[di]
mov cl,tab[si]
mov tab[di],cl
mov tab[si],ch
inc si
inc di
jmp majuscule
;-------------------------------------;
; 5: remise à zero ;
;-------------------------------------;
zero3:
mov si,0
mov di,0
mov cx,0
cmp bx,0
je affichage
mov dx,bx ;>>> dx contient la limite aussi.
mov bx,0 ;>>> s'en servir de i.
;-------------------------------------;
; 6: Verification ;
;-------------------------------------;
retri:
cmp bx,dx ;pour quitter la boucle/
je affichage
mov ch,stk[bx]
sub ch,20h ;pour comparer, retirer 20 afin de placer en maj!
;-------------------------------------;
; 7: recherche de la lettre coresp. ;
;-------------------------------------;
Dwhile:
cmp ch,tab[di]
je conversion
inc di
jmp Dwhile
;-------------------------------------;
; 8: Conversion ;
;-------------------------------------;
Conversion:
mov ch,stk[bx]
mov tab[di],ch
inc bx
mov di,0
jmp retri
affichage:
mov ah,09h
lea dx,msg
int 21h
mov ah,09h
lea dx,tab
int 21h
mov ah,4ch
int 21h
code ends
end main
Revise this Paste