cs_MrNice
Messages postés2Date d'inscriptiondimanche 3 novembre 2002StatutMembreDernière intervention12 août 2003
-
12 août 2003 à 14:30
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 2011
-
6 janv. 2005 à 10:50
Lo le forum me revoila ave cun new prob...
donc en fait g une table de variable, je prends al=0 je fait un xlat et je compare ce resultat avec une entrée qui est aussi en binaire (provenant d'un ppi) donc je boucle jusqu à ce que l entrée soit egale a un nombre de mon tableau alors pour comparer je fait un cmp al,dl en sachant que al,dl sont en binaires.. alors est possible ?
voici une partie d emon code source...
.386
.DATA
;Zone de définition des variables
ZERO db 00000000b
UN db 00000001b
DEUX db 00000010b
TROIS db 00000011b
QUATRE db 00000100b
CINQ db 00000101b
SIX db 00000110b
SEPT db 00000111b
MESS1 db 'CODE SWITCH :$'
.CODE
;ouverture du segment de code
DEBUT: mov ax,DGROUP
mov ds,ax
ECRIO CTRL,CONFIG
bo1:
ECRIO PA,ZERO ;eteint tout les leds
LECPPI PB ;le resultat se trouve dans al
mov bl,al ;le resultat se trouve maintenant dans bl
mov cx,8 ;cx=8 = nbr de nbr contenu dans la table
xor eax,eax ;al=0 pour demarer au debut de la table avec xlat
bo2:
xlat ZERO ;al=table+al
/!\ cmp bl,al ;compare al à bl /!\ EST CE POSSIBLE
je ok ;si1 al=bl -> jump ok
inc al ;sinon on incremente al
loop bo2 ;et on boucle jusqu à ce que al=bl
ok: ;cas ou al=bl
ECRIO PA,al ;allume les leds correspondantes
AFFICH MESS1 ;affiche "CODE SWITCH :"
AFFICHNUM al ;affich le nombre a l'ecran
AFFICH CRLF ;on passe a la ligne
mov ah,06h ;lecture de caractère sans marquer d arret
mov dl,ffh ;lecture car dl=ffh sinon sortie du caractère dont le code ascii est dans dl
int 21h
cmp al,'s' ;verifie si le caratère = 's'
jne bo1 ;si caractère != 's' -> jmp bo1
ECRIO PA,ZERO ;sinon etient les leds
mov ax,4c00h ;et on quit le programme
int 21h
end Debut
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 13 août 2003 à 12:32
En fait ca ne pose aucun problème car le compilateur travaille dans une seule base. Les représentations binaire, décimal, octal, héxadécimal sont justes là pour aider le développeur.
misterzinzin
Messages postés112Date d'inscriptionvendredi 27 octobre 2000StatutMembreDernière intervention26 janvier 20112 6 janv. 2005 à 10:50
bo2:
> xlat ZERO ;al=table+al
> /!\ cmp bl,al ;compare al à bl /!\ EST CE POSSIBLE
> je ok ;si1 al=bl -> jump ok
> inc al ;sinon on incremente al
> loop bo2 ;et on boucle jusqu à ce que al=bl
...c'est pas un peu con d'utiliser des xlat dans un tableau avec des valeur qui se suivent ?
si al=0 et xlat zero... al=0
si al=1 et xlat zero... al=1
.... je vois pas trop l'utilité de xlat dans ce cas lol
moi j'aurais plutot fait:
mov al,-1
bo2:
inc al
cmp bl,al
jne bo2
... le meme code sans Xlat avec plein de valeur dans le .data...
maintenant ca se peut que je me soit planté et que j'aie pas compris le but de ton code
moi, le seul, l'unique, ZinZin