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

 


Dernière réponse
Sujet : petite question facile en asm
bjone 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)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
bjone 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)
youdontcare 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]
 
?
the big ben bheuuu ca va paaaaaaas
EarthTrAsh ok merci !!! :)  :)
youdontcare le code que j'ai mis après 'solution' marche et n'utilise pas lea.
EarthTrAsh 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:
youdontcare 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]

the big ben 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 ??????   :??:

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)