Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ensamblador

Estas en el tema de Ensamblador en el foro de Programación General en Foros del Web. Hola a todos. Como ya muchos del foro saben yo soy programador C no muy avanzado e intento hacer que en el foro de programacion ...
  #1 (permalink)  
Antiguo 17/06/2003, 12:34
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Ensamblador

Hola a todos.

Como ya muchos del foro saben yo soy programador C no muy avanzado e intento hacer que en el foro de programacion halla mas posts sobre C\C++.
Ahora estoy haciendo una investigacion sobre el lenguaje ensamblador que segun veo no es presisamente un lenguaje de programacion pero se le podria llamar asi por su potencial de trabajar con el procesador.

Al grano......

Al punto que quiero llegar es que se pueda reunir suficiente informacion sobre este "lengueje" para que tambien se pueda aprender aqui.. Espero que todos coperen.

Mi investigacion fue esta.

Con el lenguaje ensamblador trabajas con comandos que se ejecutan directamente en el procesador.

Se usan opcodes(Operation codes) con estos comandos

Manejas directamente las interrupciones.

Una interrupcion es una señal que manda el hardware y segun su valor es lo que indica lo que se va a hacer( Cortesia de mithrandir )

Existen en el procesador ciertos registros que actuan como variables y almacenan ciertos valores.

Ensamblador permite trabajar con estos registros como variables.


.................

Posiblemente haya informacion erronea porque posiblemente mi investigacion no fue lo suficiente mente amplia.

Si alguien puede poner mas caracteristicas de este lenguaje. Lista de comandos, etc.......estare muy agradecido.....
  #2 (permalink)  
Antiguo 17/06/2003, 12:49
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Ahi va mi coperacha pa' la causa...

Como hablas del C, indico como enlazar C con ASM:

Solo es necesario colocar u bloque asm dentro de tu código (que tiene el codigo ensamblador que quieras).

int main( void) {
... //mi codigo de C
asm{ //todo el ensamblador que quieras
MOV AX
PUSH RX
.... //codigo de ensamblador
}
... //mas codigo de C
}

Saludos
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 19/06/2003, 12:10
 
Fecha de Ingreso: junio-2003
Ubicación: concepcion
Mensajes: 3
Antigüedad: 20 años, 10 meses
Puntos: 0
PEQUEÑO APORTE

Pongo a disposicion una pagina del curso de Arquitectura de Computadores. Se trata no profundamente el lenguaje ensampblador y tiene algunos ejemplos basicos, pero muy buenos, y un editor para simulador de leng assembly. www.die.udec.cl/~arqcomp
esop
  #4 (permalink)  
Antiguo 19/06/2003, 13:01
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 4 meses
Puntos: 11
Karpoff tiene un buen site sobre Assembler.
solo no recuerdo su site, pero en el google seguro lo hallan
__________________
Jorge Mota
Blog
Gubiz estafa
  #5 (permalink)  
Antiguo 19/06/2003, 14:37
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,
Cita:
que segun veo no es presisamente un lenguaje de programacion
<broma>
Sacrilego, como se te ocurre decir esto, tu que programas en C. Habria que excomulgarte.
</broma>
Ahora en serio, ensamblador es un lenguaje de programacion en toda regla. Es el lenguaje de programacion de mas bajo nivel, que interactua directamente con el hard. Por debajo de el en la escala de lenguajes solo queda el binario (ensamblador solo es una forma comoda para los humanos de escribir el codigo maquina). Como depende del hard donde se ejecuta, es distinto el ensamblador de lo x86 que el de los MIPs que el de los microcontroladores. Tienen distintos juegos de instrucciones, distintos registros y funcionan distinto.

Y C se creo para no tener que programar el sistema operativo UNIX totalmente en ensamblador, asi que C es una forma comoda para los humanos de escribir ensamblador.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 20/06/2003, 14:07
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Gracias por la correcion josemi.
Lo que no mencione pero queria tratar en este post era sobre el lenguaje ensamblador pero de un x86 puede ser des de 80386 o aun mas abajo hasta los nuevos pentim 4 o amd atlon pero que sean lo mas general pposible.

Mas:

Para ejecutar codigo ensamblador se debe "ensamblar"
El ensamblador mas comun seria el de Microsoft pero hay otro que solo crea .com y esta en el sistema operativo
Ejecutar\Debug

En la linea de comandos Debug.


Saludos
  #7 (permalink)  
Antiguo 20/06/2003, 15:01
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Para ejecutar un codigo escrito en ensamblador (codigo fuente), lo tienes que compilar y linkar, como en C, para crear el ejecutable.

No se a que te refieres con el "ensamblador de Micro$oft", supongo que te refiriras al compilador. Porque el lenguaje ensamblador es universal (dentro del mismo hard), como el C, pero puede que el compilador tenga ayudas en forma de preprocesadores del codigo y macros (¿te suena?). Ya hace tiempo que estoy desconectado de ensamblador (desde la programacion grafica en MSDOS, dios que viejo soy), pero compiladores me suenan el TASM y el MASM (ambos creo que sigen en activo, seria cuestion de usar google). En el mundo x86, claro.

Y el debug, si esta en MSDOS tambien es de Micro$oft.

La diferencia de .exe y .com no estan en el compilador, sino en la estructura del codigo. En el codigo debes indicar que quieres hacer un .com dando ciertos valores a ciertas caracteristicas (siento ser tan abstracto, pero no tengo los datos exactos).

Y ahora me toca preguntar a mi. ¿Por que este subito interes en ensamblador? ¿Es que es una moda retro? Lo digo porque el ensamblador tiene principalmente dos funciones: trabajar directamente con el hard y crear codigo superoptimizado. Pero estas dos funciones se pueden hacer con ayuda de compiladores para otros lenguajes (normalmente C, por su proximidad al ensamblador). Los compìladores actuales de C pueden generar codigo mas optimizado de lo que puede crear un programdor a mano. Y en C siempre ha habido funciones para acceder al hard. Y si no siempre puedes meter codigo ensamblador dentro del codigo C, como puso Mithrandir y dejar que el compilador haga el resto.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 20/06/2003, 18:06
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
OK, tu aportacion esta bien.

Puse este post para que aprendieramos ensamlador en este foro ya que casi no se habla. Ya eu para mi entre mas cerca de la fuente este, mas exito tendras en tus proyectos. Asi que espero que no te soprendas cuando ponga un post sobre como aprender el lenguaje binario .


Espero y sigas aportando

  #9 (permalink)  
Antiguo 21/06/2003, 15:53
 
Fecha de Ingreso: enero-2003
Mensajes: 122
Antigüedad: 21 años, 4 meses
Puntos: 0
este enlace les puede servir

http://kickme.to/asm1
  #10 (permalink)  
Antiguo 04/08/2008, 23:09
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Ensamblador

Hola, alguno tiene idea de como hacer un reloj analógico en Ensamblador?

Gracias
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 05:22.