2012-06-05 2 views
0
.data  
    SUM DW 250h 
.text 
    push SUM 
    call func 
    .... 
func: 
     mov bp, sp 
     mov ax, [bp + 2] 
     inc ax 
     mov [bp + 2], ax 
     ..... 

Lorsque j'utilise l'instruction push, est-ce que je pousse la référence de SUM, ou la valeur? Et SUM change après que j'appelle func?L'utilisation de push en 16bit - tasm

+1

Il semble que ax aura la valeur que vous appuyez sur (l'adresse SUM), pas sûr de ce que vous essayez de faire après cela, mais vous êtes incrémenter l'adresse et la remettre sur la pile – eventi

+0

@eventi: ça ressemble à une réponse :) – Seki

+0

@seki Je ne pense pas qu'il y ait assez de réponses pour le moment :) – eventi

Répondre

0

Vous voulez probablement déréférencer l'adresse que vous passez à la fonction

.data  
    SUM DW 250h 
.text 
    push [SUM] 
    call func 
    .... 
func: 
    mov bp, sp 
    mov bx, [bp + 2] 
    mov ax,[bx] 
    inc ax 
    mov [bx],ax 
    mov [bp + 2], ax 
    ..... 

Cela semble vraiment rond-point, et je suis sûr qu'il ya un moyen plus facile, mais je n'ai pas une machine avec tasm à portée de main. Rond-point supplémentaire puisque vous ne pouvez pas utiliser [ax] :(

Questions connexes