Ensamblador - Problemas con ligas en Pascal

 
Vista:

Problemas con ligas en Pascal

Publicado por Mauricio Ramírez (2 intervenciones) el 18/09/2002 20:37:51
Hice una liga en emsablador para Pascal 7.0, despues de corregir varios errores logre que la misma compilara. pero simplemente a la hora de el ret el programa se cae. Use un ret 4, ret 2 y ret pero igual se cae. Necesito ayuda urgentemente.
Muchas Gracias
Mauricio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con ligas en Pascal

Publicado por Googol (61 intervenciones) el 18/09/2002 21:26:35
Si no recuerdo mal, en el convenio de llamadas en Pascal es el procedimiento el que debe extraer los parámetros de la pila. Si el procedimiento al que llamas desde Pascal (escrito en ensamblador) tiene parámetros, antes de hacer el ret (cercano o lejano) tendrás que sacar tantos bytes como ocupen los parámetros.

Espero que te valga para algo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con ligas en Pascal

Publicado por Mauricio Ramirez (2 intervenciones) el 19/09/2002 17:43:54
Te agradesco tu respuesta pero sigo sin entender claramente te lo voy a exponer. Este es el codigo en ensamblador, pero no funciona.

public cursor

code segment para public 'code'
cursor proc far
assume cs:code
push di si bp ds ss
mov bp, sp

mov si, [bp + 8]
mov dh, [si]

mov si, [bp + 6]
mov dl, [si]

mov ah, 02h
mov bh, 0
int 10h

pop ss ds bp si di
ret 4
cursor endp
code ends
end

Si me puedes ayudar te lo agradeceria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con ligas en Pascal

Publicado por Chanto (2 intervenciones) el 21/09/2002 04:34:50
Mae! Has intentado manejar los parametros con un registro de activacion? A veces es mas sencillo de entender el comportamiento de la pila por este medio!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar