Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Passaggio veloce indirizzo far

2 views
Skip to first unread message

Samuel

unread,
Jul 26, 2003, 4:30:54 PM7/26/03
to
Salve,
utilizzando la stack per il passaggio di parametri alla procedure, è
possibile passare un indirizzo far di una variabile mediante una sola
istruzione?

Se ad esempio definisco:

pippo DB ?

per passare segmento ed offset di pippo ad una procedura faccio:

PUSH SEG pippo
PUSH OFFSET pippo
CALL proc

c'è un modo per compattare le prime due istruzioni?

Grazie,
Samuel


Goul_duKat

unread,
Jul 26, 2003, 7:08:01 PM7/26/03
to
"Samuel" <x@y.z> ha scritto nel messaggio
news:2yBUa.205796$Ny5.5...@twister2.libero.it...

> PUSH SEG pippo
> PUSH OFFSET pippo
> CALL proc
>
> c'è un modo per compattare le prime due istruzioni?

sulla famiglia x86 no ... perche' hai che i registri interni della cpu
quasi mai contengono la word intera del bus indirizzi, quindi devi cmq fare
2 push dei due dati ...

come mai vuoi compattare quelle 2 push ???

ciao


Samuel

unread,
Jul 27, 2003, 4:24:51 AM7/27/03
to
Tutte le pricedure che scrivo hanno il passaggio di dati tramite Stack. Si
scrivono le procedure proprio per rendere più leggibile e snello il "main",
però se ogni volta che devo passare l'indirizzo di una variabile c'è da
ripetere quella filastrocca alla fine anche chiamare una procedura diventa
una cosa laboriosa.

Mi chiedevo se esisteva una funzione di PUSH sintetica. Allo stesso modo con
cui, mi sembra, dovrebbe esserci una particolare istruzione di PUSH che
salva tutti i registri del processore e che risparmia dal dover fare:

PUSH AX
PUSH BX
PUSH CX
......
PUSH ES
....
e così via.


Goul_duKat

unread,
Jul 27, 2003, 9:25:15 AM7/27/03
to
"Samuel" <x@y.z> ha scritto nel messaggio
news:n%LUa.206600$lK4.5...@twister1.libero.it...

bhe non penso ci sia un istruzione ... piu' che altro ci sara' una macro
dell'interprete asm che stai usando ... magari leggi il manuale e trova una
definizione di macro da definire, cosi' che tu nelle tue procedure scrivi
PUSH ALL e poi l'interpete in automatico va a sostituire tutti i comandi per
tutti i registri cosi che non li debba scrivere tu 30 volte magari.

ciao


il_fu_darth_pelo

unread,
Jul 27, 2003, 10:20:28 AM7/27/03
to
Samuel wrote:

PUSHA
ma riguardo alla tua domanda iniziale non sono in grado di aiutarti

ciao

Samuel

unread,
Jul 27, 2003, 12:39:53 PM7/27/03
to
Vi ringrazio, ma ero a conoscenza della possibilità di salvare tutti i
registri in una sola botta.
Il mio problema era, e resta, come buttare nella stack un indirizzo far.
Ma pare non si possa.

Vabbé


"il_fu_darth_pelo" <er...@lycos.it> ha scritto nel messaggio
news:McRUa.207215$lK4.5...@twister1.libero.it...

Oleg

unread,
Jul 28, 2003, 6:10:21 PM7/28/03
to
push pippo
call proc


pippo:
DB ?

"Samuel" <x@y.z> wrote in message
news:2yBUa.205796$Ny5.5...@twister2.libero.it...
> Salve,
> utilizzando la stack per il passaggio di parametri alla procedure, Х


> possibile passare un indirizzo far di una variabile mediante una sola
> istruzione?
>
> Se ad esempio definisco:
>
> pippo DB ?
>
> per passare segmento ed offset di pippo ad una procedura faccio:
>
> PUSH SEG pippo
> PUSH OFFSET pippo
> CALL proc
>

> c'Х un modo per compattare le prime due istruzioni?
>
> Grazie,
> Samuel
>
>


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.504 / Virus Database: 302 - Release Date: 7/25/2003

0 new messages