Soyez le premier à donner votre avis sur cette source.
Snippet vu 4 600 fois - Téléchargée 28 fois
MODEL SMALL STACK 100h .DATA 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$" .CODE START: MOV AX, @DATA MOV DS, AX MOV AH,2Ah ; Fonction DOS 2Ah (retourne des infos sur la date) INT 21h ; Interruption DOS (le jour est dans AL) switch: Case1: CMP AL,0 ; CMPare AL avec 0 JNZ Case2 MOV DX, OFFSET Dimanche ; JMP Endswitch Case2: CMP AL,1 JNZ Case3 MOV DX, OFFSET Lundi JMP Endswitch Case3: CMP AL,2 JNZ Case4 MOV DX, OFFSET Mardi JMP Endswitch Case4: CMP AL,3 JNZ Case5 MOV DX, OFFSET Mercredi JMP Endswitch Case5: CMP AL,4 JNZ Case6 MOV DX, OFFSET Jeudi JMP Endswitch Case6: CMP AL,5 JNZ Case7 MOV DX, OFFSET Vendredi JMP Endswitch Case7: MOV DX, OFFSET Samedi Endswitch: MOV AH,9 ; Fonction d'affichage d'une chaine de caractère INT 21h MOV AX, 4C00h ; Retour INT 21H END START
2 juil. 2002 à 23:51
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
30 juin 2002 à 13:09
voila
29 juin 2002 à 18:42
G masm32 et ça fonctionne pas...:(
*** merci d'indiquer le compilateur dans le titre de la source! ***
28 juin 2002 à 20:27
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
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.