Oppure

Loading
25/05/09 17:52
umberto1211
Raga cerco esperto di assembler...ho bisogno di una mano per questo problema....

creare una sub che fa la potenza...che riceve come parametri la base e l'esponente ( dallo stack )e dà la risposta al programma principale mediante i registri

in pratica devo passare base ed esponente tramite lo Stack...ed è questo il punto che non so fare...x poi dare il risultato tramite registri...
aaa
25/05/09 18:03
theprogrammer
Intanto dovresti indicare con quale famiglia di CPU lavori.

In ogni caso, quando chiami la funzione, utilizza delle push

carica la base in un registro
fai il push del registro
carica l'esponente in un registro
fai il push del registro

e nella funzione

fai le opportune pop (tenendo conto dell'indirizzo di rientro).
aaa
25/05/09 18:04
manvb.net
;ricorda l'ordine inverso
push BX   ;Secondo parametro
push AX   ;Primo parametro
call	proced
...
...
...
...
...
...
...
...       ;qui termina il programma
proced:
pop CX   ;IP
pop AX   ;Primo parametro
pop BX   ;Secondo parametro
...
...   ;qui calcoli 
push CX
...   ;e alla fine fai in odo che il risultato si trovi in un registro
ret


hai ragione non me ne sono accorto modifico
Ultima modifica effettuata da manvb.net 25/05/09 18:24
aaa
25/05/09 18:07
umberto1211
grazie per la risposta pronta..ma non era questo che intendevo in pratica devo creare un pusch e pop manuale..utilizzando SP e PC....in pratica non riesco a gestirli..
aaa
25/05/09 18:11
theprogrammer
Postato originariamente da umberto1211:

grazie per la risposta pronta..ma non era questo che intendevo in pratica devo creare un pusch e pop manuale..utilizzando SP e PC....in pratica non riesco a gestirli..


push non pusch ...

E che vuol dire "manuale" ?

E con quale CPU (e' la seconda volta che te lo chiedo ...)

@manvb.net ... in quel fai "casino" con l'indirizzo di rientro ...
Ultima modifica effettuata da theprogrammer 25/05/09 18:12
aaa
25/05/09 18:15
umberto1211
cmq lavoro con un emulatore 8086..

cioè devo gestire io il push ed il pop dello stack....il push e il pop in pratica lavorano puntanto con Sp e Ip lo stack , quindi in pratica devo passare la base della potenza sullo stack senza usare pop (con un istruzione mov tipo mov es:[sp+ip],5), e lo stesso vale per l esponente...poi li riprendo usando solo l istruzione Mov e metterli in normali registri per poi fare la potenza... non so se sono riuscito ad essere chiaro;)
Ultima modifica effettuata da umberto1211 25/05/09 18:19
aaa
25/05/09 18:18
theprogrammer
Ma non puoi dire semplicemente

"devo usare lo stack ma non posso usare le istruzioni push e pop"

?

E' cosi' ?
aaa
25/05/09 18:19
umberto1211
Postato originariamente da theprogrammer:

Ma non puoi dire semplicemente

"devo usare lo stack ma non posso usare le istruzioni push e pop"

?

E' cosi' ?



in parole povere si :rotfl: sorry
aaa