elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Duda - Ensamblado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Duda - Ensamblado  (Leído 11,860 veces)
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Duda - Ensamblado
« en: 31 Julio 2009, 14:07 pm »

Hola, este este es mi primer intento de código en ASM, de seguro tiene millones de errores, o seguramente carece de sentido  :-[.

Código
  1. TITLE fibonnacci-10n
  2.  
  3. Include Irvine32.inc
  4. .data
  5. i byte 1
  6. j byte 0
  7. t byte 0
  8. .code
  9. main PROC
  10. mov cx,10   ;counter=10
  11. lblLooop1:
  12.        mov ax,i
  13.        add ax,j
  14.        mov bx,t
  15.        add bx,ax
  16.        mov i,j
  17.        mov j,t
  18.        mov dx,j
  19.        call DUMPREGS  
  20.        loop lblLoop1
  21. main ENDP
  22. END main

Esto creo que no es correcto verdad?:
Código:
        mov i,j
        mov j,t

Lo tengo en el editor de MASM, tengo la duda de como ensamblarlo.


« Última modificación: 31 Julio 2009, 14:14 pm por Seu¥ » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda - Ensamblado
« Respuesta #1 en: 31 Julio 2009, 14:12 pm »

ml.exe es el ensamblador de MASM:
ml archivo.asm


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Duda - Ensamblado
« Respuesta #2 en: 31 Julio 2009, 14:20 pm »

Como lo suponía Irvine32 me iba a traer errores...  :¬¬

En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda - Ensamblado
« Respuesta #3 en: 31 Julio 2009, 14:26 pm »

Sacalo y en lugar de usar ese DUMPREGS usa Debug.exe.

Usa un registro, del tamaño adecuado (en este caso 1 byte, 8 bits), para el mov:

Código
  1. mov cl, j
  2. mov i, cl
« Última modificación: 31 Julio 2009, 14:29 pm por Eternal Idol » En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Duda - Ensamblado
« Respuesta #4 en: 31 Julio 2009, 14:45 pm »

 :-[
Será que ASM no me quiere?

Código
  1. TITLE fibonnacci-10n
  2.  
  3. .data
  4.    i byte 1
  5.    j byte 0
  6.    t byte 0
  7.  
  8. .code
  9.    main PROC
  10.    mov cx,10   ;counter=10
  11.    lblLooop1:
  12.            mov ax,i
  13.            add ax,j
  14.            mov bx,t
  15.            add bx,ax
  16.            mov cl,j
  17.            mov i,cl
  18.            mov cl,t
  19.            mov j,cl
  20.            mov dx,j
  21.            loop lblLoop1
  22.    main ENDP
  23.    END main
Al ensamblar tengo 10 errores, 9 son:

Citar
Must be in a segment block

Y otro es:

Citar
fatal error... Unmatched block nesting:main


En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda - Ensamblado
« Respuesta #5 en: 31 Julio 2009, 15:26 pm »

¿Queres hacerlo en 16 bits? ¿Estas usando el MASM de 16 bits?

Ojo con usar cl sin restaurarlo, estas cambiando cx que es el contador del loop.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Duda - Ensamblado
« Respuesta #6 en: 31 Julio 2009, 15:30 pm »

Según tengo entendido, http://www.masm32.com/masmdl.htm, es de 32 bits.

Ahora bien, con respecto a lo de cl, es verdad. Mejor lo cambio por bl.
En línea

fuenteRea


Desconectado Desconectado

Mensajes: 2.709


Volver a ser un niño


Ver Perfil
Re: Duda - Ensamblado
« Respuesta #7 en: 31 Julio 2009, 15:35 pm »

El MASM dependera de la version, la ultima que yo use era de 16.

PD: Veo un error, tienes un registro tipo palabra y se la asignas a una variable tipo byte y lo haces muchas veces. pasalo o a la parte alta o a la parte baja del registro

un saludo!!

si no tienes mucha soltura, empieza por otro mas sencillo, aunque sea malo por ejemplo esta el emu 8086 tiene una especie de depurador que te permite ir paso a paso y ves donde te confundes. OJO si usas interrupciones no vas a poder porque son distintas, creo que la interrupcion del raton o la funcion de pedir la hora o puff no me acuerdo lo siento
« Última modificación: 31 Julio 2009, 15:40 pm por thedoctor77 » En línea

Una rosa es una rosa...
h0oke


Desconectado Desconectado

Mensajes: 2.059


Coder ~


Ver Perfil WWW
Re: Duda - Ensamblado
« Respuesta #8 en: 31 Julio 2009, 15:42 pm »

doctor77 en que parte ves lo de la asignación del registro?

La version que utilizo 6.14.8444
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.966


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Duda - Ensamblado
« Respuesta #9 en: 31 Julio 2009, 15:49 pm »

Si es de 32 necesitas mas directivas, asi lo vas a poder ensamblar, depuralo para ver como funciona :

Código
  1. .386
  2. .model flat, stdcall
  3.  
  4. .data
  5. i byte 1
  6. j byte 0
  7. t byte 0
  8.  
  9. .code
  10. main:
  11. mov cx,10   ;counter=10
  12. lblLoop1:
  13.        mov al,i
  14.        add al,j
  15.        mov bl,t
  16.        add bl,al
  17.  
  18. mov cl, j
  19. mov i, cl
  20.  
  21. mov cl, t
  22. mov j, cl
  23.  
  24.        mov dl,j
  25.  
  26.        loop lblLoop1
  27. end main
  28.  
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Compilacion: Fase de compilado y de ensamblado
Programación C/C++
Jomad205 2 3,788 Último mensaje 25 Noviembre 2012, 11:51 am
por Jomad205
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines