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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Solicito un poco de ayuda!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Solicito un poco de ayuda!  (Leído 3,273 veces)
furbi

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Solicito un poco de ayuda!
« en: 2 Abril 2019, 01:00 am »

Un saludo a todos, espero que alguien me pueda ayudar la duda que tengo. Explico:
Estoy empezando a estudiar lenguaje ensamblador y mi profesor pidió que hiciéramos un programa, en donde se llenara la pantalla de líneas, el cual con mucho trabajo pude hacer. Pero ahora me está pidiendo que las líneas salgan en forma diagonal y diagonal invertida, la verdad no me sale, por eso vengo a estos foros que muchas veces me a ayudado, aunque este es le primer mensaje que dejo.
 
Les pongo que ya había hecho, según yo solo hay que cambiar un par de líneas, pero por no me sale.

.MODEL SMALL
.STACK
.CODE
MOV  AH, 0Fh            
    INT  10h            
    PUSH AX            
    CALL MODO_GRAF
    CALL GRAFICAR
    CALL PAUSA
    POP  AX            
    MOV  AH, 0          
    INT  10h
    INT  20h
MODO_GRAF:
    MOV  AX, 0010H      
    INT  10h            
    MOV  AH, 0BH        
    MOV  BX, 000BH      
    INT  10H            
    RET
GRAFICAR:
    MOV  BX, 0          
    MOV  CX, 64        
    MOV  DX, 70        
G10:
    MOV  AH, 0Ch
    MOV  AL, BL      
    INT  10h
    INC  CX            
    CMP  CX, 576        
    JNE  G10
    MOV  CX, 64      
    INC  BL            
    INC  DX            
    CMP  DX, 280      
    JNE  G10
    RET
PAUSA:         
    MOV  AH, 10h
    INT  16h
MOV AH,4CH
    INT 21H
    RET
MOV AH,4CH
    INT 21H
END


Bueno espero alguien me pueda ayudar, de antemano, muchas gracias.


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Solicito un poco de ayuda!
« Respuesta #1 en: 4 Abril 2019, 23:13 pm »

Si te atascas, probablemente te sea cómodo hacerlo en un lenguaje de programacion, tipo C, C++... O el que sea que uséis. Luego, la lógica es la misma, solo hay que retocar los bucles y las condiciones.


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.156



Ver Perfil
Re: Solicito un poco de ayuda!
« Respuesta #2 en: 5 Abril 2019, 07:56 am »

Saludos,

- Vaya, me ha costado dos largas noches, buscando documentación, buscando emulador, etc  >:D

- Revisa este código que he desarrollado con el emulador emu8086:

Código
  1. org  100h
  2.  
  3. ; set video mode 13h - 320x200
  4. mov ah, 0
  5. mov al, 13h
  6. int 10h
  7.  
  8.  
  9. ; draw line
  10. mov cx, 0      ; Coord X
  11. mov bx, 0      ; Aux count coord X
  12. mov dx, 0      ; Coord Y
  13. mov al, 15     ; Pixel color White
  14.  
  15. print:
  16. mov ah, 0Ch    ; Put pixel
  17. int 10h
  18. add cx, 10     ; Diagonal separator
  19. cmp cx, 320 - 1; Check limit coord X
  20. jle print
  21. inc bx
  22. cmp bx, 10      ; Check limit diagonal
  23. jl  continue
  24. mov bx, 0      ; Reset aux cout coord X
  25. continue:
  26. mov cx, 0
  27. add cx, bx
  28. inc dx         ; Add +1 to Coord Y (next row)
  29. cmp dx, 200    ; Check if last row
  30. jne print
  31.  
  32. ;wait for keypress
  33. mov ah, 00
  34. int 16h
  35.  
  36. ; return to text mode:
  37. mov ah,00
  38. mov al,03 ;text mode 3
  39. int 10h
  40.  
  41. ret
  42.  



- Al final me ha servido más el emulador emu8086 ya que llega con una buena documentación de instrucciones e interrupciones, además de ejemplos, que me han servido para armar el código, supongo que no está muy optimizado y ordenado :xD

-- Un lío hallarlo, su página web oficial http://emu8086.com/ ya cerró, pero encontré uno alternativo en: https://aa.bbs.tr/lab/cen214-microprocessors/ [Download section]

-- Documentación en español muy completa Lenguaje Ensamblador para Computadoras Basadas en Intel 5ta edición: http://docshare01.docshare.tips/files/14358/143588422.pdf

-- Emulador para ejecutar los programas DOS: DOSBox: https://www.dosbox.com/ ya que emu8086 es lento debido a que ejecuta una a una las instruciones (dibujar pixel a pixel  :-X)
En línea

furbi

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: Solicito un poco de ayuda!
« Respuesta #3 en: 9 Abril 2019, 18:54 pm »

Muchas gracias por tu ayuda, gracias a ti pude completar lo que me faltaba  ;-) ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Solicito un poco de orientacion
Ingeniería Inversa
barbosah 6 4,258 Último mensaje 12 Febrero 2010, 08:44 am
por tincopasan
solicito una ayuda
Programación C/C++
santiagopaz 1 2,155 Último mensaje 8 Junio 2012, 17:49 pm
por STANHMAL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines