Domingo 22 de Diciembre de 2024, 13:06
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
ASM (Ensamblador)
(Moderador:
Eternal Idol
) »
Exe's
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Exe's (Leído 4432 veces)
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Exe's
«
en:
Martes 17 de Agosto de 2004, 17:39 »
0
HOLA CHICOS QUISIERA UNA AYUDA ESTOY APRENDIENDO A PROGRAMAR EN ASM Y CONOZCO CASI TODOS LOS COMANDO PERO TENGO 2 DUDAS:
1) COMO CREO EL EJECUTABLE?
2) COMO SE QUE DATOS HAY EN CIERTA DIRECCION ESO ES LO QUE MAS ME TIENE LOCO CON ESTE LENGUAJE DE PROGRAMACION OSEA ME EXPLICO:
CUANDO YO DIGO
MOV BX, AX
QUE DATOS HAY EN AX NO ENTIENDO TENGO UN TUTORIAL LO HE ESTUDIADO Y QUISIERA APRENDER MAS
GRACIAS CHAO
Tweet
El pasado son solo recuerdos, el futuro son solo sueños
deldar
Miembro activo
Mensajes: 93
Re: Exe's
«
Respuesta #1 en:
Martes 17 de Agosto de 2004, 18:21 »
0
1) ¿Qué compilador tienes? Por regla general esto funciona como en cualquier lenguaje primero compilas creando un programa intermedio y después linkas el programa intermedio creando el ejecutable si tienes un entorno integrado de desarrollo (IDE) seguramente puedas hacerlo todo de una sola vez.
2)Verás AX,BX,CX,DX... en el modelo 80x86 son registros, o sea zonas de memoria dentro del procesador, hay que tener en cuenta que tienen dos usos : De proposito general (podrias usarlos
casi
como variables), De proposito especifico (ej: ax en la division es el dividendo div bl --> es lo mismo que --> ax |
bl
).
El valor en un registro proviene , por lo general, bien de la pila (pop ax), de una inerrupción (que la interrupción lo use para devolucion de resultados), o de una operación anterior ( en el ej de "div bl" ah = resto al= cociente).
Un saludo y suerte.
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Re: Exe's
«
Respuesta #2 en:
Jueves 19 de Agosto de 2004, 17:44 »
0
OK ME DEJASTE IGUAL, NO ME RESPONDISTES NINGUNA DE LAS 2, PRIMERO USO TASM, SEGUNDO INDICAME LOS COMANDO PARA COMPILAR CUALES SON.
TERCERO CUANDO TE PREGUNTE LO DE LOS REGISTRO NO TE PREGUNTE NI SIQUIREA POR LA PILA Y TE ME FUISTES HASTA ALLA, CUARTO MI PREGUNTA ES:
CUANDO SE DICE MOV BX, AX; QUE VALOR TIENE AX ES LO QUE NO SE ESE VALOR DE MEMORIA QUISIERA SABER CUAL ES.
ME ENTIENDES O ES QUE NO ME EXPLICO Y SOY MUY BRUTO
GRACIAS CHAO
El pasado son solo recuerdos, el futuro son solo sueños
Oerr
Nuevo Miembro
Mensajes: 1
Re: Exe's
«
Respuesta #3 en:
Jueves 19 de Agosto de 2004, 17:48 »
0
hola, seguramente ya tienes tu programa (p.e.: miprog.asm), en mi caso uso el masm.exe para compilar (convierte *.asm a *.obj) y link.exe para generar el ejecutable, osea:
x:\>masm miprog.asm (enter)
x:\>link miprog.obj (enter)
Para los valores de AX, BX CX DX y otros puede ayudarte bastante saber que el DEBUG te muestra los valores iniciales y tienes la opcion de cambiar dichos valores: p.e.:
x:\>debug (enter)
-r (enter) ; te muestra todos lo valores p.e. AX=0000 ...
si quieres cambiar el valor a AX, escribe:
-rAX(enter) ; si no deseas hacerlo vuelve a pulsar enter
para salir:
-q
si deseas ver todas las opciones digita:
-?
Buena suerte.
deldar
Miembro activo
Mensajes: 93
Re: Exe's
«
Respuesta #4 en:
Jueves 19 de Agosto de 2004, 18:38 »
0
Comandos:
compilar: tasm miprograma.asm
linkar: tlink <opciones> miprograma.obj
Citar
ESE VALOR DE MEMORIA QUISIERA SABER CUAL ES.
Repito:
Citar
Verás AX,BX,CX,DX... en el modelo 80x86 son registros
Los registros del procesador NO SON VARIABLES por lo que no tienen dirección de memoria (Al menos a la hora de programar , si lo que estas es haciendo un desensamblador indicalo porque la cosa cambia)
En cuanto al valor, porque al decir "valor" preguntas por el contenido de ax, me remito a mi post anterior y al de Oerr.
Un saludo
.
Quien de verdad sabe de qué habla, no encuentra razones para levantar la voz.
ORDENALPHABETIX
Nuevo Miembro
Mensajes: 10
Re: Exe's
«
Respuesta #5 en:
Sábado 21 de Agosto de 2004, 12:58 »
0
Buenas,
Sobre los tipos de datos (segun MASM).
En ensamblador existen los siguiente a nivel de micro (REGISTROS):
AH/AL/BH/BL/CH/CL/DH/DL -> contienen datos de 8 bits P.ej:
mov AH, 0FFh ; Pon el registro AH = 255
mov Var8Bits, 0FFh ; Pon la variable Var8Bits = 255 (antes se ha de declarar en la seccion .DATA como: Var8Bits DB 0 )
AX/BX/CX/DX/SI/DI -> contiene datos de 16 bits P.ej:
mov AX, 0FFFFh ; Pon el registro AX = 65535
mov Var16Bits, 0FFFFh ; Pon la variable Var16Bits = 65535 (antes se ha de declarar en la seccion .DATA como: Var16Bits DW 0 )
EAX/EBX/ECX/EDX/ESI/EDI -> contienen datos de 32 bits P.ej:
mov eax, 0FFFFFFFFh ; Pon el registro EAX = ...... mucho
mov Var32Bits, 0FFFFFFFFh ; Pon la variable Var32Bits =......mucho (antes se ha de declarar en la seccion .DATA como: Var32Bits DD 0 )
Espero que te sirva un poco de orientacion respecto a lo que se espera encontrar en un lenguaje de alto nivel (enteros, etc).
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
ASM (Ensamblador)
(Moderador:
Eternal Idol
) »
Exe's