[MASM32] Comment utiliser RECORD ?

frobinet Messages postés 64 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 décembre 2006 - 9 févr. 2004 à 11:15
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 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 ?

Merci !

frobinet.

3 réponses

ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
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
0
frobinet Messages postés 64 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 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) ?

Merci !

frobinet.
0
ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
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

Voila ça doit être suffisament clair,j'espère
ToutEnMasm
http://perso.wanadoo.fr/luce.yves/
0
Rejoignez-nous