Fecha y hora actual: Sab 31 Jul, 2010 06:13 am
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Calculadora notacion polaca posfija en lenguaje ensamblador

Responder al Tema

Índice del Foro > Programación en general > Calculadora notacion polaca posfija en lenguaje ensamblador

Autor Mensaje
maxbrauer@hotmail.com



Registrado: 25 Nov 2009
Mensajes: 1

Mensaje Publicado: Mie 25 Nov, 2009 05:45 am

Título del mensaje: Calculadora notacion polaca posfija en lenguaje ensamblador

Responder citando

hola , disculpen las molestias, estoy empezando un proyecto para mi escuela y tengo dudas sobre algunas cosas de macros,

Estoy tratando de enviar a un macros, las coordenadas en x,y,rango,forma

x para la posicion en eje x
y posicion eje y
rango, cuantas veces se va a repetir en x la figura de un codigo ascii
forma , es la figura del ascii

Aqui en mi codigo, el caracter se impirme infinitamente, deberia de terminar de imprimirse ya quye le estoy enviando la direccion de donde apunta interfax, deberia encontrar el fin de cadena pero no lo encuentra.


Alguien que me ayude porfa.

Código:
;##############################################################################
;##############################################################################
;
;
;         [Universidad Nacional Autonoma de Mexico ]
;
; Facultad >> Ingenieria
; Carrera  >> Computacion
; Materia  >> Estructura y programacion de computadoras
; Semestre >> 2010 -2
; Profesor >> M.I. Miguel Barragan
;    Grupo >> 05
;    Clave >> 1429
; Alumno   >> Max Brauer
;
;
; Nombre del programa       >> Calculadora.asm
; Fecha inicio/fin          >> Fecha: Inicio  / 20 de Noviembre 2009
; Version                   >> 1.0.0
; Objetivo                  >> Es una calculadora que usa notacion polaca posfija, a esta se le
                introduciran comandos para realizar ciertas operaciones. Como suma
                resta, multiplicacion, logaritmo, tangente,seno, coseno, potencia.
                Debe tener una interfaz amigable con el codigo ASCII para que
                se puedan colocar las funciones, el reloj del sistema , la entrada
                de datos, los resultados y si es posible graficar la funcion
                mediante vga.
; Porque de la arquitectura >>
; Como funciona el programa >>
; Que necesita el usuario para usar el programa >>
;
;
; IDE                       >> DEV C++ 4.9.9.2
; Lenguaje de programacion  >> Lenguaje Ensamblador
; Ensamblado con            >> Turbo Assembler 5.0 (TASM), TLINK 3.0
; Funciona en arquitectura  >> Intel x86
; Probado con  SO           >> Windows Xp Professional Version 2002 Service Pack3 (32bits)
; Probado con procesador    >> Intel(R) Core(TM)2 Quad CPU
;
; Notas                     >>
;            
;            
; Bibliografias de apoyo    >>
;
;
;
;
;##############################################################################


;-----------------------------------------------------------------------
; GENERA LAS LINEAS DE LA INTERFAZ EN X
;-----------------------------------------------------------------------
; Se pasan los valores para que pueda determinar la coordenada en (x,y)
; y con el rango se determina cuantas veces se repetira en x.
;
LINEAX MACRO X,Y,RANGO,INTERFAZX
      mov ch,0
      mov cl,[RANGO]               ;Repite para crear el largo de una linea en X       
      GENERASHAPEX:
               mov bh,0
               mov ah,02
               mov dl,X     ;Determina la posicion de la columna
               mov dh,Y     ;Determina la posicion del renglon
               int 10h
               mov dx,INTERFAZX   ;DUDAAAAA NO ENCUENTRA UN FIN DE CADENA.
               mov ah,09h
               int 21h
               inc X       
               loop GENERASHAPEX
ENDM
;------------------------------------------------------------





;##############################################################################
;##############################################################################
;------------------------------------------------------------
; EMPIEZA PROGRAMA PRINCIPAL
;------------------------------------------------------------

;
     
page 60,132
title CALCULADORAPOSFIJAESPOSIBLE
    .model medium
    .data
        ;Coordenadas para graficar lineas en X
          xCordX      db 1,20
          yCordX      db 10,9
     rangoX      db 5,6
          interfazX   dw 177,'$',205,'$'   

          exCode     db 0
    .code
    INICIO:
        mov ax,@data
        mov ds,ax

        ;--------------------------------------------------------
        ;--------------------------------------------------------
        ; GENERAR TODA LA INTERFAZ
        ; Las variables quue va a usar son:
        ;
        ;      xCordX ->Coordenada en X
        ;               yCordY ->Coordenada en Y
        ;               rangoX ->Desplazamiento en x o y
        ;      interfazX -> Caracter ASCII para imprimir en las coordenadas
        ;             
               
          mov si,offset interfazX
          mov di,offset xCordX
          mov bx,offset yCordX
          mov bp,offset rangoX
         
          LINEAX di,bx,bp,si ; le paso los valores del contenido de donde apuntan los apuntadores si,bi,bp,bx



     
       ;--------------------------------------------------------
       ;--------------------------------------------------------
       ;NO DEJAR SALIR HASTA ESC
       ;
        mov ah,01h
        int 21h
        cmp al,1Bh
        jne INICIO

       ;--------------------------------------------------------
       ;--------------------------------------------------------
       ; SALIDA
       ;
        EXIT:
             mov ah,04ch
             mov al,[exCode]
             int 21h
           DIU proc far
                mov ax,3
           endp 

END INICIO

Volver arriba
Ver perfil del usuario Enviar mensaje privado
WhiteSkull
Moderador Global


Registrado: 20 Mar 2009
Mensajes: 890
Ubicación: y*width+x

Mensaje Publicado: Mie 25 Nov, 2009 15:33 pm

Título del mensaje: Re: Calculadora notacion polaca posfija en lenguaje ensambla

Responder citando

Antes que nada te aviso que las normas del foro son claras, hay que usar el bbcode para meter todo lo que sea código, por ésta vez lo corrijo, pero ya sabes para la próxima. Respecto a tu problema, aparentemente no veo ninguna anomalía en el bucle loop que comentas, podría estar el problema en el registro contador. Entonces te recomiendo que pruebes tres cosas.

    sustituye mov ch,0 por sub cx,cx ; es otra forma de poner a cero un registro.

    pasa el valor directamente a todo el registro, mov cx,[RANGO] ;

    Si habiendo probado los dos puntos anteriores el problema persiste, entonces te recomiendo que hagas una depuración. Vigilando para ello el registro contador CX. Cabe mencionar que al ser corrido en una máquina de 32 bits, esté usando registros de 32 bits, pero lo veo improbable. Sólo observando los registros mediante depuración, podrás resolver el problema.


suerte Ok


http://www.youtube.com/watch?v=DzLKIW86hmM
Volver arriba
Ver perfil del usuario Enviar mensaje privado Visitar sitio web del autor
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

¿Qué lenguaje de programación elijo para este p...

electrotime Temas generales 2 Sab 10 Jul, 2010 16:38 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Comando 'Paste' en ensamblador 8086

JNE Programación en general 5 Dom 23 May, 2010 15:04 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

ayuda con lenguaje ensamblador 8086

benedyt Programación en general 4 Lun 05 Abr, 2010 22:16 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Ayuda a hacer una calculadora...

Nagato Programación en general 7 Mar 16 Mar, 2010 08:02 am Ver último mensaje
El foro no contiene ningún mensaje nuevo

Alguien me recomienda lenguaje para voip

Tonitech Temas generales 2 Sab 31 Oct, 2009 14:01 pm Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,