Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > ASM y Microcontroladores
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 16-12-2010
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.242
Poder: 22
ElKurgan Va camino a la fama
Cita:
Empezado por LuisAlf:: Ver Mensaje
Lo que pasa es que tengo ciertas dudas con algunas sentencias como:
1. "Pushad".
2. push dword ptr [App ]??
3. push 0
4. mov [miHandle], eax:
Mi duda aqui es: si el registro eax se pasa al la variable manejado o como??
5. xor eax, eax: esta sentencia borra el registro "eax"?
6. mov al ,byte [edx]: mueve un caracter al registro "al"?
7. or al, al??
8. push edx
push 0
push eax: para que se utilizan estos push??
9. push 100: para que es?...
1. pushad - Pone todos los registros en la pila para guardar el estado y recuperarlos en cualquier momento. Suelen usarlo los programas que empaquetan o cifran el ejecutable

Las sentencias push suelen poner valores en la pila antes de llamar a funciones; serían el equivalente al paso de parámetros a una función. Esto sirve para todos los push posteriores:

2. push dword ptr [App ] - Pasa a la pila el valor de la variable App; el indicador ptr se usa en compiladores de ensamblador para Win32; no se usa, por ejemplo, en linux, y se acompaña del tipo de parámetro, cuando hay dudas de su valor (App puede valer, por ejemplo, 2, y no sabe si pasar al registro 2, 0002 ó 00000002; eso se le indica con el tipo, en este caso, dword)

3. push 0 - Pasa a la pila el valor 0 como parámetro

4. mov [miHandle], eax - Pasa el valor de la variable al registro eax

5. xor eax, eax - Es una forma elegante de poner a cero el valor de un registro

6. mov al ,byte [edx] - mueve el contenido de "al" a edx; como es el doble de grande, le indica el tipo de lo que tiene que guardar

7. or al, al - Cuando se hace esto suele ser para ver si el acumulador tiene un valor concreto. Antiguamente se usaba mucho para comprobar si una función devolvía un cero, porque ocupaba un sólo ciclo de reloj. Actualmente hay llamadas que ocupan lo mismo (un ciclo) y se usan tanto como OR (CMP, TEST).

8. push edx
push 0
push eax - Paso de parámetros a la pila antes de llamada a función

9. push 100 - Otro paso de parámetros. Le pasa el valor 100 a "sleep"

Creo que por ahí van los tiros. La verdad es que tengo bastante olvidado el TASM, asi que si he metido la pata en algo, lo siento, y espero que alguien más enterado te pueda sacar de dudas.

Saludos

Última edición por ElKurgan fecha: 16-12-2010 a las 08:44:45. Razón: error en un dato
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Delphi y ensamblador. rauros ASM y Microcontroladores 1 14-08-2008 16:07:42
Probando el ensamblador de Delphi 2 Mav Varios 5 31-10-2007 04:15:33
Delphi y las interrupciones de Ensamblador aeff Varios 9 27-10-2007 03:09:08
Ayuda con Ensamblador aeff Varios 3 12-12-2006 00:08:12
significado # anto1178 Varios 3 30-08-2006 21:13:32


La franja horaria es GMT +2. Ahora son las 09:03:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi