Foros del Web » Programación para mayores de 30 ;) » C/C++ »

De assembler a C

Estas en el tema de De assembler a C en el foro de C/C++ en Foros del Web. Muy buenas, a ver tengo que pasar este programa en C sabiendo que: • Los enteros son de 32 bits • Retorna el valor de ...
  #1 (permalink)  
Antiguo 29/05/2010, 13:09
Avatar de naitmeir  
Fecha de Ingreso: junio-2008
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta De assembler a C

Muy buenas, a ver tengo que pasar este programa en C sabiendo que:

• Los enteros son de 32 bits
• Retorna el valor de la funció al registro eax.
• La funcion es responsable de liberar el espacio de las variables locales
• Es responsabilidad de quien pone los parametros de la pila de liberar espacio.
• El registro eax no hace falta salvarlo con el estado de la cpu, dado que siempre se hace servir para el retorno del resultado

... pero el primer problema que me encuentro es que no entiendo que hace esta instruccion del procedimiento main
lea eax, [ebp–4]
ya que diria que en esa desplazamiento no se ha puesto nada... y ya a partir de ahi me pierdo, les dejo el codigo ...

Código:
.model large
.386
.stack 100h
.code
sum proc

push ebp
mov ebp, esp
push ecx
mov eax, dword ptr [ebp+8]
add eax, dword ptr [ebp+0Ch]
mov ecx, dword ptr [ebp+10h]
mov dword ptr [ecx], eax
xor eax, eax
pop ecx
mov esp, ebp
pop ebp
ret

sum endp

main proc

push ebp
mov ebp, esp
sub esp, 4h
lea eax, [ebp–4]
push eax
mov eax, 02h
push eax
mov eax, 03h
6
push eax
call sum
xor eax, eax
mov esp, ebp
pop ebp
ret

main endp
.startup
call main
.exit
end
No sabia donde poner el post, el moderador ya decidira donde va mejor, y gracias de antemano

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:56.