frobinet
Messages postés64Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 décembre 2006
-
9 févr. 2004 à 11:15
ToutEnMasm
Messages postés587Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention13 décembre 2022
-
20 févr. 2004 à 18:01
Bonjour,
J'essaie de faire un programme simple en RS232 pour piloter
un modem et je bloque sur la structure du DCB qui comporte
le RECORD 'fbits' qui est renseigné comme suit :
BITRECORD RECORD fBinary:1, fParity:1, .....
Comment puis je faire pour renseigné l'option fParity ?
ToutEnMasm
Messages postés587Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention13 décembre 20223 20 févr. 2004 à 16:25
L'élément record défini les bits d'un registre de la même manière qu'une structure défini le contenu d'une zone mémoire.Charger le registre,et la valeur est affectée.
ToutEnMasm
frobinet
Messages postés64Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 décembre 2006 20 févr. 2004 à 16:56
oui j'ai bien compris le principe du RECORD mais je voulais
savoir si il étais possible de fixer directement les bits du
RECORD en faisant par exemple fbits.fbinary = 1 (ça ne fonctionne pas, bien sûr) plutôt que d'utiliser un systemes de masques.
et autrement qu'elle est le bit de poids faible
(ex fBinary ou le dernier de la chaine) ?
ToutEnMasm
Messages postés587Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention13 décembre 20223 20 févr. 2004 à 18:01
Un petit exemple vaut mieux qu'un long discours
Dans la section déclarations
Exemple RECORD Allons:6,voir:3,mignonne:3,sila:8,rose:3,est:5,fleurie:4
sigifie Allons a une étendue de 6 bits et ainsi de suite ,les bits allant du poids fort au poids faible.
L'étendue est un byte ,8 bits,un mot 16 bits ou un double mot 32 bits.
le total des étendues doit correspondre a un de ces trois chiffres.
La suite dans la section data .data
LErecord Exemple <45,4,1,10,1,5,2>
l'instruction fixe la valeur du dword LErecord que l'on pourra ensuite chargé dans un registre au moment du code.
mov eax,LErecord
Chaque valeur affecté aux étendues nommées ne doit pas dépasser la capacité du nombre de bits.
Par exemple voir compte 3 bits soit max 111b = 8