Int19h
Messages postés58Date d'inscriptionjeudi 25 avril 2002StatutMembreDernière intervention19 juillet 2003
-
28 juin 2002 à 20:27
t1664
Messages postés7Date d'inscriptionmercredi 23 janvier 2002StatutMembreDernière intervention12 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.
t1664
Messages postés7Date d'inscriptionmercredi 23 janvier 2002StatutMembreDernière intervention12 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és85Date d'inscriptiondimanche 10 mars 2002StatutMembreDernière intervention17 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
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és58Date d'inscriptionjeudi 25 avril 2002StatutMembreDernière intervention19 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$"
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 ; ...
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