Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Manual/Tutorial de ASM (Ensamblador) en castellano (https://www.clubdelphi.com/foros/showthread.php?t=10323)

DarkByte 16-05-2004 20:48:01

Manual/Tutorial de ASM (Ensamblador) en castellano
 
Hola, voy a intentar iniciarme en Ensamblador, aunque sea sólo para aprender lo básico. He estado buscando y todo lo que encuentro está en inglés (he probado a ver también textos de crackers, pues ellos utilizan ensamblador también).

Agradecería cualquier enlace o link...

Gracias, simplemente, por leerme.

kinobi 16-05-2004 21:54:30

Hola,

Cita:

Empezado por DarkByte
Hola, voy a intentar iniciarme en Ensamblador, aunque sea sólo para aprender lo básico.

Piensa también en iniciarte en conceptos de sistemas operativos a bajo nivel. El ensamblador por sí solo no tiene gran utilidad. Además, ensamblador es un término genérico para designar un conjunto simbólico de instrucciones que corresponden a una CPU concreta. Es decir, que tendrás que especificar para que CPU quieres documentación sobre "su ensamblador" (imagino que para alguno de la familia x86).

Cita:

Empezado por DarkByte
He estado buscando y todo lo que encuentro está en inglés

Sí, lamentablemente, en este tema y en otros la mayoría de las referencias (y las fundamentales) suelen estar en Inglés.

Cita:

Empezado por DarkByte
(he probado a ver también textos de crackers, pues ellos utilizan ensamblador también).

En el caso de estar interesado en adquirir ciertos conocimientos sobre programación (en este caso ensamblador), yo no tomaría como ejemplo un aspecto tan específico como es (hablando genéricamente) el análisis y explotación de agujeros de seguridad en sistemas informáticos. Además, el cracking no se limita puramente a la programación en ensamblador. Sería mucho más interesante, una vez alcanzado cierto nivel, estudiar por ejemplo las partes "más bajas" de un sistema operativo que deben hacerse, en muchos casos, en ensamblador por dependencias de la plataforma. Otro ejemplo pueden ser los controladores de dispositivos...

Cita:

Empezado por DarkByte
Agradecería cualquier enlace o link...

Una búsqueda en Google (ensablador) da miles de enlaces. Otro asunto es la calidad de los mismos.

Saludos.

marcoszorrilla 16-05-2004 21:56:49

Aquí te paso un par de direcciones:

http://homepage.mac.com/eravila/asmix86.html
http://www.angelfire.com/co/jeanra/ensam2.html

aunque la primera no llega más que hasta el 80286 para empezar y ver los conecptos básicos sobra.

Yo he programado muchísimo en ensamblador, pero hace tiempo que no lo toco por la mucha dependencia que tiene de la máquina.


Un Saludo.

DarkByte 17-05-2004 19:54:30

Vale, todo eso orientado a Intel, ¿y si tengo un AMD?

marcoszorrilla 17-05-2004 21:27:35

Normalmente te funcionará prácticamente todo.

Un Saludo.

eduarcol 17-05-2004 21:27:59

Mira lo que sucede es que las instrucciones ASM son especifcas por cada procesador, por eso se dice juego de instrucciones, lo que debes hacer es ubicar la pagina del fabricante y descargar el juego de instrucciones especifico para el procesadir que desees trabajar

DarkByte 17-05-2004 21:30:45

Gracias a todos :) creo que con esto y las preguntitas que le voy haciendo a cadetill va que chuta :)

roman 17-05-2004 21:38:58

La única rutina que hago en ensamblador es esta:

Código Delphi [-]
procedure DoAsm;
asm
  ret // de regreso a Delphi
end;

:D

DarkByte 17-05-2004 21:43:36

:o así se programa en ensamblador desde delphi?? se meten sentencias de esamblador?? como va eso?.

Gracias román.

marcoszorrilla 17-05-2004 21:48:00

Mira este ejemplo:

Código:

implementation

{$R *.DFM}

function Base10(Base2:Integer) : Integer; assembler;
asm
  cmp    eax,100000000            // check upper limit
  jb    @1                      // ok
  mov    eax,-1                  // error flag
  jmp    @exit                    // exit with -1
@1:
  push  ebx                      // save registers
  push  esi
  xor    esi,esi                  // result = 0
  mov    ebx,10                  // diveder base 10
  mov    ecx,8                    // 8 nibbles (10^8-1)
@2:
  mov    edx,0                    // clear remainder
  div    ebx                      // eax DIV 10, edx mod 10
  add    esi,edx                  // result = result + remainder[i]
  ror    esi,4                    // shift nibble
  loop        @2                      // loop for all 8 nibbles
  mov    eax,esi                  // function result
  pop    esi                      // restore registers
  pop    ebx
@exit:
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(InTtostr(base10(41)));
end;

Un Saludo.

eduarcol 17-05-2004 21:48:27

Cita:

Empezado por DarkByte
Gracias a todos :) creo que con esto y las preguntitas que le voy haciendo a cadetill va que chuta :)

jajajaja, suena bien lo de un profesor particular, yo tambien ando buscando uno como hicistes para encontrarlo, ya no me digas seguro pusistes en practica lo de este hilo que decia como tener mi propio informatico ;) (no coloco el link porq no lo encuentro :rolleyes: )

roman 17-05-2004 21:53:01

Aquí hay otro ejemplito donde se ve como usar variables Pascal dentro el código ensamblador:

Código Delphi [-]
function Suma(X, Y: Integer): Integer;
asm
  mov eax,X
  add eax,Y
  mov Result, eax
end;

// Saludos

roman 17-05-2004 21:55:01

Ahora entiendo porque cadetill escribe menos. ¿Cómo se le hace para pedir cita con él? Yo también quiero asesoría.

:D

marcoszorrilla 17-05-2004 21:56:22

A título de aclaración verás que el lenguaje es un tanto críptico se trata de códigos mnemónicos que denotan que el lenguaje es de bajo nivel.
Código:

  cmp    eax,100000000            // check upper limit
  jb    @1                      // ok
  mov    eax,-1                  // error flag
  jmp    @exit

cmp----> compare
jb------>Jump if borrow
mov---->mover es decir colocar un valor en un registro.
jmp----->Jump salto incondicional parecido al GOTO del Basic.

Com verás procede hacerse con un manual con ejemplos y el juego de instrucciones del procesador en cuestión, yo aún conservo muchos libros pero ya desfasados pues éstos eran para las familias 8086-88-286-386.

Un Saludo.

__cadetill 17-05-2004 23:20:30

Cita:

Empezado por roman
Ahora entiendo porque cadetill escribe menos. ¿Cómo se le hace para pedir cita con él? Yo también quiero asesoría.

:D

eh! eh! menos cachondeo eh!!!! :D :D :D

DarkByte 18-05-2004 08:06:04

Cita:

Empezado por roman
Ahora entiendo porque cadetill escribe menos. ¿Cómo se le hace para pedir cita con él? Yo también quiero asesoría.

:D

Tampoco que digamos hablamos mucho sobre ensamblador (en total llevaremos hablados unos 7 min). Normalmente compartimos opiniones sobre el foro... nos echamos unas manitas con las webs... todo eso...

De todos modos, cualquier duda seria que tenga no dudo en ponerla en el foro si al cabo de los 5 min. no encuentro solución en Internet.

DarkByte 18-05-2004 08:13:06

Por cierto, me había olividado responder a los demás. Probaré el código y ya os contaré. Muchísmas gracias.

Mav 16-02-2008 01:20:57

Hola
 
Hola, aqui hay algo que a lo mejor, te gusta:


La franja horaria es GMT +2. Ahora son las 02:42:11.

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