Avoir le nom du jour de la semaine désigné

Contenu du snippet

Cette function renvoit le nom en toutes lettres du jour de la semaine désigné par la valeur donnée. Ainsi 0=dimanche, 1=lundi, etc.
J'ai écris cette fonction pour optimiser celle de Delphi. Ca a divisé par 2 le code ASM.

Source / Exemple :


Function  aDay(num:byte):ShortString; Assembler;
Asm
    //=- original code was 87 lines coded by Delphi . Now it's 43 lines -=
    push   esi
    push   edi
    jmp    @@PastThis

@Dimanche:  DB    8,'dimanche'
@Lundi:     DB    5,'lundi'
@Mardi:     DB    5,'mardi'
@Mercredi:  DB    8,'mercredi'
@Jeudi:     DB    5,'jeudi'
@Vendredi:  DB    8,'vendredi'
@Samedi:    DB    6,'samedi'

  @@PastThis:

    cmp    al,0
    je     @@Its0
    cmp    al,1
    je     @@Its1
    cmp    al,2
    je     @@Its2
    cmp    al,3
    je     @@Its3
    cmp    al,4
    je     @@Its4
    cmp    al,5
    je     @@Its5

    mov    esi,OFFSET @Samedi
    jmp    @@DoThis

  @@Its0:
    mov    esi,OFFSET @Dimanche
    jmp    @@DoThis
  @@Its1:
    mov    esi,OFFSET @Lundi
    jmp    @@DoThis
  @@Its2:
    mov    esi,OFFSET @Mardi
    jmp    @@DoThis
  @@Its3:
    mov    esi,OFFSET @Mercredi
    jmp    @@DoThis
  @@Its4:
    mov    esi,OFFSET @Jeudi
    jmp    @@DoThis
  @@Its5:
    mov    esi,OFFSET @Vendredi
    jmp    @@DoThis

@@DoThis:
    mov    edi,@Result
    xor    ecx,ecx
    mov    cl,[esi]
    inc    ecx
    rep    movsb

    pop    edi
    pop    esi
End;

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.