PDA

Ver la Versión Completa : Manual/Tutorial de ASM (Ensamblador) en castellano


DarkByte
16-05-2004, 20:48:01
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,

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).

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.

(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...

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:


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:

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
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:


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.

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
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
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, aqui (http://www.clubdelphi.com/foros/showthread.php?t=49732)hay algo que a lo mejor, te gusta: