Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1833 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Variable 32 bits stoquée dans 2 varialbes 16 bits ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variable 32 bits stoquée dans 2 varialbes 16 bits ?

n°390682
mesta
Posté le 12-05-2003 à 16:49:57  profilanswer
 

Est-ce possible? Si oui comment faire...
 
En fait j'ai un logiciel que je compile avec turbo pascal 7, e til marche en 16 bits, or j'ai besoin de creer une variable dans laquelle j'affecterai un grand nombre.
 
Merci.

mood
Publicité
Posté le 12-05-2003 à 16:49:57  profilanswer
 

n°390687
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-05-2003 à 16:52:45  profilanswer
 

y a pas de longint sur 32 bits dans TP7 ? :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°390702
mesta
Posté le 12-05-2003 à 16:58:35  profilanswer
 

En fait, la variable que je cree en pascal, je la reutilise dans des procedure en ASM, et je ne peux pas pusher des variable 32 bits :/ donc je me suis dis k'avec 2 varaibles 16 bits ca marcherai pe etre ...

n°390720
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-05-2003 à 17:10:52  profilanswer
 

bah tu découpes ta valeur alors:
 
v1 = val and $0000FFFF;
v2 = val shr 16;


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°390727
mesta
Posté le 12-05-2003 à 17:16:10  profilanswer
 

Si tu pouvais m'expliquer en meme temps ca serait sympa ;)
 
and $00.. et shr 16 a quoi ca correspond ?
 
Et en pascal je fais ca comment ?


Message édité par mesta le 12-05-2003 à 17:22:16
n°390735
zion
Plop
Posté le 12-05-2003 à 17:22:35  profilanswer
 

antp a écrit :

bah tu découpes ta valeur alors:
 
v1 = val and $0000FFFF;
v2 = val shr 16;
 


 
hi et lo c'est peut être plus sympa pour un mec qui a pas l'air de piger les décalages de registres :D


---------------
Informaticien.be - Lancez des défis à vos amis
n°390763
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-05-2003 à 17:49:24  profilanswer
 

ouais et en plus c'est ":=" et pas "=" :o
bah en effet utilise Hi et Lo alors pour avoir chacune des deux parties ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°390785
mesta
Posté le 12-05-2003 à 18:16:23  profilanswer
 

Je conais pas trop le pascal (de même pour l'ASM)
Ca marche comment Hi et Lo svp ?
 
Avant javais:

Code :
  1. Pascal...
  2. word sp_adt;
  3. Asm...
  4. push sp_adt;


 
Et comment vais je faire maintenant ?

n°390846
antp
Super Administrateur
Champion des excuses bidons
Posté le 12-05-2003 à 19:28:57  profilanswer
 

mesta a écrit :


Ca marche comment Hi et Lo svp ?


 
ça marche pas dans ton cas en fait, c'est Zion qui dit n'importe quoi je crois :D d'après la doc c'est pour couper un integer 16 bits en deux bytes...
 
t'as donc :
 
longint truc; (qui contient la valeur)
word sp_adt1;  
word sp_adt2;  
 
sp_adt1 := truc and $0000FFFF;
sp_adt2 := truc shr 16;
 
puis:
 
push sp_adt1;
push sp_adt2;
 
enfin, je suis pas sûr que ça marche, faut tester et vérifier qu'il découpe bien le truc...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°390852
zion
Plop
Posté le 12-05-2003 à 19:37:06  profilanswer
 

antp a écrit :


c'est Zion qui dit n'importe quoi je crois :D  


 
[:cupra]


---------------
Informaticien.be - Lancez des défis à vos amis
mood
Publicité
Posté le 12-05-2003 à 19:37:06  profilanswer
 

n°390856
bjone
Insert booze to continue
Posté le 12-05-2003 à 19:41:02  profilanswer
 

héhé:
 
en asm, tu mets db 66, et ça passe l'opérande en 32 bits...
 
exemple:
 
db 66h  
push ax
 
donnera "push eax"
 
idem
 
db 66h
add ax,bx
 
donnera "add eax,ebx"

n°390860
bjone
Insert booze to continue
Posté le 12-05-2003 à 19:42:47  profilanswer
 

exemple d'utilisation:
 
http://www.bsdg.org/swag/HARDWARE/0013.PAS.html
 
c'est chiant, mé ça marche, les démo-makers de l'ancien temps :D utilisaient bien ça :D

n°391336
mesta
Posté le 13-05-2003 à 09:19:07  profilanswer
 

Vi merci, mais dans mon cas je fais comment ?
 
db 66h
push sp_adt  
 
Cela ?
 
(avec sp_adt declaré en longint?)
 
ps:jy connais rien en asm.


Message édité par mesta le 13-05-2003 à 09:21:27
n°391507
mesta
Posté le 13-05-2003 à 10:43:06  profilanswer
 

:bounce:

n°392797
bjone
Insert booze to continue
Posté le 13-05-2003 à 23:57:59  profilanswer
 

tu veux quoi, mettre une variable 32bits dans la pile ?
 
donc à priori oui ce serait ça...

n°392962
mesta
Posté le 14-05-2003 à 09:46:00  profilanswer
 

oui c'est ca mettre une varialble 32 bits dans la pile ...
 
Mais plus loin il y a un pop in_nmb, ou in_nmb est une variable 16 bits :/ donc je dois faire
 
db 66h
pop in_nmb  
 
c bon ?

n°393023
mesta
Posté le 14-05-2003 à 10:32:12  profilanswer
 

Jai donc declaré ma variable sp_adt en longint, mais quand je fais db 66h; push sp_adt il me met toujours la meme erreur : Invalid combinaison of opcode and operands  

n°393136
bjone
Insert booze to continue
Posté le 14-05-2003 à 11:21:04  profilanswer
 

pop c'est prendre une variable sur la pile, et la mettre dans la destination...
 
tu veux faire quoi, pousser une variable sur le pile ? (push)
ou retirer une variable de la pile ? (pop)
 
si tu veux pousser un entier 32 bits sur la pile, je ferais ça:
 
longint truc
 
 
db 66h
push truc  
 
ou si TP geule:
 
push WORD PTR[truc]


Message édité par bjone le 14-05-2003 à 11:21:58
n°394103
mesta
Posté le 14-05-2003 à 18:33:14  profilanswer
 

En fait jai ca :
 
push    sp_adt; pop   in_nmb
 
C pour ca que je demandais ... sp_adt est en longint & in_nmb en word. jai donc fais ca push    WORD PTR[scan.sp_adt] ca passe mais kan je lance le soft ca plante ... normal ?

n°394321
bjone
Insert booze to continue
Posté le 14-05-2003 à 21:28:17  profilanswer
 

bin si tu dépiles pas ce que t'empile, oui....

n°394322
bjone
Insert booze to continue
Posté le 14-05-2003 à 21:28:56  profilanswer
 

file ton source...

n°394622
mesta
Posté le 15-05-2003 à 09:26:52  profilanswer
 

Ok tu as icq, aim, irc, msn pour que je puisse te parler, ca serait plus simple que par mail ou ici sur le forum.

n°395071
bjone
Insert booze to continue
Posté le 15-05-2003 à 14:24:26  profilanswer
 

bin le but du forum c'est que tout le monde en profite... :D

n°395078
mesta
Posté le 15-05-2003 à 14:26:48  profilanswer
 

Certes, mais ces sources ne sont pas "gratuites" donc je ne peux pas les mettre a disposition de tout le monde.
Comme tu veux...

n°395104
bjone
Insert booze to continue
Posté le 15-05-2003 à 14:34:10  profilanswer
 

ha ouki...

n°395146
mesta
Posté le 15-05-2003 à 14:56:35  profilanswer
 

Je peux te les envoyer quand même ou non ? tu as aim, .. ?

n°396100
bjone
Insert booze to continue
Posté le 15-05-2003 à 22:29:31  profilanswer
 

icq ou en MP je t'en voyes mon nom d'utilisateur aimesshaine...

n°396388
mesta
Posté le 16-05-2003 à 09:34:49  profilanswer
 

Ok.

n°396845
mesta
Posté le 16-05-2003 à 14:41:47  profilanswer
 

jtai envoye un msg sur icq ;)

n°397027
zion
Plop
Posté le 16-05-2003 à 15:36:44  profilanswer
 


Dites les gars, y a les privés pour discuter hein  :heink:


---------------
Informaticien.be - Lancez des défis à vos amis
n°399115
mesta
Posté le 19-05-2003 à 09:23:26  profilanswer
 

Oui desole je viens seulement de savoir ou et comment ca marchait :o

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Variable 32 bits stoquée dans 2 varialbes 16 bits ?

 

Sujets relatifs
Variable Javascript / session_register()Problème dans une variable..
Comment utiliser une variable globale avec un appletTronquer une variable?
attribuer une variable a une autre variable [ Its works ][JS-HTML] Problème de variable...
[C/C++] Thread et accès à une variable par 2 threads en même temps...Taille d'une variable de type "WORD"
recuperer une variable $PHP_AUTH_USERComment verifier qu'une variable n'est pas un nombre ? (JavaScript)
Plus de sujets relatifs à : Variable 32 bits stoquée dans 2 varialbes 16 bits ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR