DATE ET SWITCH

Signaler
Messages postés
58
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
19 juillet 2003
-
t1664
Messages postés
7
Date d'inscription
mercredi 23 janvier 2002
Statut
Membre
Dernière intervention
12 novembre 2002
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/15202-date-et-switch

t1664
Messages postés
7
Date d'inscription
mercredi 23 janvier 2002
Statut
Membre
Dernière intervention
12 novembre 2002

Pour le switch ya plus simple et bcp plus rapide
ca consiste a faire un call tableau[BX]
avec dans le tableau les adresses des fonctions qui traiterons chaque cas
! prevoire un default si bx > a une valeur
cs_jeremyM
Messages postés
85
Date d'inscription
dimanche 10 mars 2002
Statut
Membre
Dernière intervention
17 novembre 2002

je l'ai compilé avec tasm mais sa doit marché avec masm mais pas avec la version 32 car ya du 16 bits...
voila
BlackWizzard
Messages postés
1277
Date d'inscription
mercredi 21 mars 2001
Statut
Modérateur
Dernière intervention
21 juin 2009
2
avec koi ça se compile ton truc?
G masm32 et ça fonctionne pas...:(

*** merci d'indiquer le compilateur dans le titre de la source! ***
Int19h
Messages postés
58
Date d'inscription
jeudi 25 avril 2002
Statut
Membre
Dernière intervention
19 juillet 2003

Olleh

Ca m'a rappeler une fonction que j'avais faite je sais plus pourkoi.

Dans ce genre de k, on peut aussi utiliser une table de 'variable'. Ca evite la serie de teste... C'est peu etre pas plus court (une fois compiler), mais c'est plus souple. On peut aussi l'adapter pour plein d'autre fonction (math par exemple, sin, cos, ...) :

Jmp start

; Chaine a afficher
Dimanche DB "Nous sommes dimanche$"
Lundi DB "Nous sommes lundi$"
Mardi DB "Nous sommes mardi$"
Mercredi DB "Nous sommes mercredi$"
Jeudi DB "Nous sommes jeudi$"
Vendredi DB "Nous sommes vendredi$"
Samedi DB "Nous sommes samedi$"

; Table des offsets des textes
Pos dw Offset Dimanche
dw Offset Lundi
dw Offset Mardi
dw Offset Mercredi
dw Offset Jeudi
dw Offset Vendredi
dw Offset Samedi

start:
mov ah, 2ah ; Fnt lecture Date courant
int 21h

xor ah, ah ; Efface ah (on en a rien a faire ;-)
shl al,1 ; al = al * 2
add ax, Offset pos ; ax = ax + Offset Pos
push ax ; Place ax dans la pile
pop bp ; place la pile dans bp

mov dx, [bp] ; on place l'offset dans DX (chaine a ecrire)
mov ah, 09h ; Fonction affichage Dos
int 21h ; ...

; Fin du programme
mov ax, 4c00h
int 21h

Compiler avec a86...

Question : int19h@caramail.com

int19h