begin process at 2012 05 24 02:39:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

divers

 > DATE ET SWITCH

DATE ET SWITCH


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :divers Niveau :Débutant Date de création :28/06/2002 Date de mise à jour :28/06/2002 00:00:11 Vu :3 238

Auteur : jeremyM

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

un petit code, mon premier en asm, qui montre comment récupérer la date et comment utiliser la méthode switch case...
Voila c pourris mais j'en suis fier...

Source

  • 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
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

 Conclusion

http://mydev.free.fr <<<< allez y faire un tour...


 Sources de la même categorie

Source avec Zip Source avec une capture MINI DEBUG par parki
Source avec une capture DESSIN DE RECTANGLES (POSITION, TAILLE, COULEUR, ÉPAISSEUR) par macsou01
RECHERCHE DES PALINDROMES D'UN TEXTE SAISI. par PCBill
Source avec Zip LIBRAIRIE GRAPHIQUE (ET PLUS) EN MODE RÉEL par epineurien
Source avec Zip Source avec une capture LIB PROGRESSBAR (PERSONNALISABLE , DÉGRADÉ DE COULEUR,POURCE... par knetus

Commentaires et avis

Commentaire de Int19h le 28/06/2002 20:27:55

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

Commentaire de BlackWizzard le 29/06/2002 18:42:34 administrateur CS

avec koi ça se compile ton truc?
G masm32 et ça fonctionne pas...:(

*** merci d'indiquer le compilateur dans le titre de la source! ***

Commentaire de jeremyM le 30/06/2002 13:09:10

je l'ai compilé avec tasm mais sa doit marché avec masm mais pas avec la version 32 car ya du 16 bits...
voila

Commentaire de t1664 le 02/07/2002 23:51:44

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

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales