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 |
|