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

  FORUM HardWare.fr
  Programmation

  petite question facile en asm

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

petite question facile en asm

n°111629
the big be​n
Posté le 13-03-2002 à 15:46:13  profilanswer
 

en cpp j initialize un vecteur V[8] composé de int  
Ma ces 1 en ini a 3, ...
Ensuite qd je passe en asm, si je fait:
 
mov bx, V[1*2]
mov temp,bx
 
il n'y a aucun problème ! il me met dans temp la case 1 de V et de meme si je remplace le 1 par 2, 3 ,...
 
MAIS si je fait:
mov ax, 1
mov bx, V[ax*2]  
mov temp,bx
 
il me met dans temp la valeur 2786 ???  :fou:  
Quelqu un peu t il m expliquer ??????   :??:


---------------
Ben
mood
Publicité
Posté le 13-03-2002 à 15:46:13  profilanswer
 

n°111635
youdontcar​e
Posté le 13-03-2002 à 15:58:09  profilanswer
 

yep, il multiplie la valeur du pointeur, qui doit pointer vers qq chose comme [ds:ax*2].
 
il y a un truc magique avec lea, comme lea bx, [V+ax*2] ... mais ça doit marcher qu'en 32b.
 
solution :
 
mov si, offset V
mov ax, 1
shl ax, 1 // ton ax*2
mov bx, [si+bx]
 
// je sais même plus si ça marche si + bx ... :D
// sinon,
 
add si, bx
mov bx, [si]

 

[jfdsdjhfuetppo]--Message édité par youdontcare--[/jfdsdjhfuetppo]

n°111653
EarthTrAsh
kikou c moi ! :-)
Posté le 13-03-2002 à 16:53:49  profilanswer
 

vi mais je problème c k'on travaille sur 16 bits et ke le " lea " on connais po du tout. :gun:  :gun:  :eek2:  :eek2:  :cry:  :cry:


---------------
Ke jsuis movais en programmation
n°111665
youdontcar​e
Posté le 13-03-2002 à 17:14:26  profilanswer
 

le code que j'ai mis après 'solution' marche et n'utilise pas lea.

n°111721
EarthTrAsh
kikou c moi ! :-)
Posté le 13-03-2002 à 19:00:32  profilanswer
 

ok merci !!! :)  :)

n°112038
the big be​n
Posté le 14-03-2002 à 14:21:26  profilanswer
 

bheuuu ca va paaaaaaas

n°112068
youdontcar​e
Posté le 14-03-2002 à 15:11:03  profilanswer
 

et spécifiquement ?
 
mov si, offset V
mov bx, ds:[si]  
 
ça renvoie quoi ?
 
mov si, offset V
add si, 2 // 2 ème entrée
mov bx, ds:[si]
 
?

n°112087
bjone
Insert booze to continue
Posté le 14-03-2002 à 15:52:40  profilanswer
 

pour les .asm tu mets un:
.MODEL 386
et tu accès à des modes d'addressages évolués.
 
sinon la synthaxe standard serait plustôt:
 
mov ax,1
mov bx,WORD PTR[offset V+ax*2]
 
ou:
 
mov si,offset V
mov ax,1
mov bx,WORD PTR[si+ax*2]
 
mais tu fais de l'assembleur en ligne dans ton CPP ?
ou dans un fichier asm séparé ? (dans un cpp aparemment)


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

  petite question facile en asm

 

Sujets relatifs
[Delphi 6] Chtite question sur les images ![Flash] Question sur Flash et Java ?
[C/C++] question en terme de vitesse sur les operations de bases[XML/Schema] question philosophique sur Schema. -> prob. tech. Schema
Question de C[C] API32 ss MFC, question simple
Petite question de... design objet?oups pitite question
petite question facile pour vous !Petite question sur Flash ! pour les pro c facile
Plus de sujets relatifs à : petite question facile en asm


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