DATE ET SWITCH

Int19h Messages postés 58 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 19 juillet 2003 - 28 juin 2002 à 20:27
t1664 Messages postés 7 Date d'inscription mercredi 23 janvier 2002 Statut Membre Dernière intervention 12 novembre 2002 - 2 juil. 2002 à 23:51
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
2 juil. 2002 à 23:51
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
30 juin 2002 à 13:09
je l'ai compilé avec tasm mais sa doit marché avec masm mais pas avec la version 32 car ya du 16 bits...
voila
Utilisateur anonyme
29 juin 2002 à 18:42
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
28 juin 2002 à 20:27
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
Rejoignez-nous