Programación General > ASM (Ensamblador)
Re: CALCULADORA EN ENSAMBLADOR (+,-,*,/)
Patty:
HOLA:
NECESITO AYUDA URGENTE CON UN PROGRAMA QUE HAGA LAS OPERACIONES BASICAS DE UNA CALCULADORA.
TIENE QUE SE CON UN MENU Y YA QUE ELEGISTE LA OPCION PIDE LOS NUMERO Y DA EL RESULTADO. EL MENU YA LO HICE :jumpie:
PERO TENGO PROBLEMAS CON EL CODIGO YA QUE DESPUES DE CAPTURAR LOS NUMEROS ME DA RESULTADO DE PURAS COSAS RARAS.:think:
OJALA ALGUIEN TENGA UN PROGRAMA PARECIDO QUE ME PUEDA MANDAR O ME AYUDEN PORFAVOR ES PARA ESTE LUNES Y TENGO MAS PROYECTOS POR ENTREGAR:( NO NECESITO USAR PROCEDIMIENTOS. EL CODIGO DEBE SER DE LO MAS SENCILLO YA QUE ESTOY EMPEZANDO A APRENDER ENSAMBLADOR. GRACIAS :comp:
Super_G:
Introduces los numeros por teclado??
si lo haces ,¿los convertiste de ascii a binario antes de procesarlos?
y despues de ser procesados para mostrarlos deben estar en ascii otra ves, talves esos sean los problemas. Te recomiendo que para facilitar la programaicon solo introduscas numeros de un solo digito(decimal) y asi maximo tengas que mostrar resultados de 2 digitos.
Patty:
Si tienes razon introduzco los numeros por teclado y al parecer mi problema son las conversiones de ascii a binario y viceversa ya que no tengo mucha idea de como hacerlo a al parecer mi codigo no funciona :think:.
Bueno ojala pudieras ayudarme con eso de las conversiones ya que realmente no creo poder hacerlo sola, tambien he notado algo raro mi primer numero (de 3 digitos) lo introduzco guardandolo en AX con el SI hasta que sea igual a 3, se supone que en AX cuando uso el debug debe verse los numeros o solo el ultimo que capture ya que si introduzco el #1, se ve AX=0131 y a la siguiente vuelta el #2 y se ve AX=0132 y al parecer solo sustituye el ultimo valor y de donde salio el 013???:argh:.
Cuando capturo el valor 2 lo guardo en BX con DI y en TB no se ve que cambien los valores, siguen cambiando en AX.
Esto es normal????
Como ves estoy totalmente confundida y espero me ayudes pronto porque me dieron oportunidad de entregarlo el miercoles.:ahora:
Te agradezco tu atencion y ojala me puedas pasar el codigo de conversion.
Atte: PATTY :flower:
Super_G:
Para empesar los #s ASCII que representan del "0" al "9" son del 48 val 57(decimal); 30 al 39(en hexa).
Entoces cuado leas del teclado(una tecla), lo que se lee sera el codigo ASCII de la tecla pulsada[si se utiliza la interrupcion 21(int 21h) se puede usar la funcion#:1, poniendo AH=1, y el codigo ASCII del la tecla pulsada estara en AL]; esto significa que debe leer un digito o numero por ves, por eso aconsejaba el trabajar solo con numeros de un digito, el unico arreglo para trabajar con el dato introducido es restarle 48(decimal) o 30h(en exa); por lo tanto lo primero que recom¡niento es definei el tipo de numeros a ser procesados(tamaño):Byte,Word,Dword.., por ultimo aconsejo que por lo menos sean del tipo "Byte" o sea que el # mas grande seria 255, pero aun asi preferiria que el maixmo # sea 9, si tomamos lo del Byte aun asi se debe hacer varios controles como que para con una suma o multiplicacion que sobre pase el limite de Byte, en el mismo ingreso no se deberia, permitir el ingrso de numeros mayores a 255, aontinuacion pondre lo que pudiera ser un pequeño progrma para el ingrso de este numero sin controles como los mencionados antes:
;;********************************
;;el numero a ser procesado debera estar ;;en BL
;;priemor debe de ingresarse el digito ;;mas significativo ; eje: 265 1º el 2, 2º el 6,3º el 5
;; mov bl,0
mov cx,3 ;3 digitos
p0: mov ah,1
int 21h
sub al,30h;; CNV de Ascii
mov bh,al
mov ax,000ah;10 decimal
mul bl; digito anterior*10
mov bl,al
add bl,bh ;suma del ANT+el nuevo
loop p0
;;*****************************
debe de hacerse la prueva para verificar errores(en TD); para mostrar resultados en anteriores puse un programa que mostraba el numero contenido en AX.
Espero esto pueda servir.
Patty:
HOLA, SOLO ESCRIBO PARA AGRADECERTE TU AYUDA, SABES, SAQUE 90 EN MI PROGRAMA PUES LO ENTREGUE UN DIA DESPUES PERO LO QUE IMPORTA ES QUE FUNCIONO PERFECTAMENTE.:birthday:
ESPERO QUE SIEMPRE AYUDES A PERSONAS COMO YO QUE NECESITAN UN POQUITO DE AYUDA PARA SALIR ADELANTE.:good:
ATTE: PATTY :flower::gracias:
Navegación
[#] Página Siguiente
Ir a la versión completa