Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Ensamblador > Comparar ascii
-Foros de debate

Ensamblador
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Comparar ascii
Enviado por kesh el día 21 de mayo de 2006

Hola buenas, tengo un programa totalmente terminado, pero algo falla. El programa consiste en que dada una cadena de caractéres, terminada con el código ascii 0(no el carácter \\\'0\\\', sino el byte de valor 0), debo encontrar cuántos números aparecen. Entonces, inicializo el vector de la siguiente manera:
string DB \\\'M\\\',\\\'u\\\',\\\'c\\\',\\\'a\\\',\\\'7\\\',\\\'n\\\',\\\'\\\\0\\\'
Esto es correcto? al correr el turbo assembler, no me da fallo ahí. Donde me da fallo, es al comparar cada uno de los caractéres, ya que voy pasando al registro AL, cada uno de los caracteres, y comparando con \\\'/0\\\' cada uno de ellos, para saber si es el final de la cadena. Además, también los comparo(los caracteres) con \\\'/48\\\' y con \\\'/57\\\', que son los números 0 y 9 en ascii. Lo hago de la siguiente manera:

MOV AL,[SI+BX]
CMP AL, \\\'\\\\0\\\'
JE FIN
CMP AL,\\\'\\\\48\\\'

Al compilar, en la comparación de \\\'\\\\48\\\', me dice: \\\"Value out of range\\\". Y en la comparación con \\\'\\\\0\\\', \\\"Constant too large\\\".
Por último sólo me queda decir, que SI, apesar de ser un registro de índice, lo uso como registro que tiene la cadena de caracteres en la subrutina. Y que bx, funciona como índice, el cual voy incrementando de 1 en 1, ya que son bytes.
Si alguien pudiera ayudarme... muchas gracias!!

 
Re: Comparar ascii
Enviado por aruma el día 29 de mayo de 2006

pues te recomiendo que pases todos a asccii y luego los compares. el binario asccii de los numeros es:
0011 0000 cero
0011 0001 uno
0011 0010 dos
0011 0011 tres
0011 0100 cuatro
0011 0101 cinco
0011 0110 seis
0011 0111 siete
0011 1000 ocho
0011 1001 nueve, osea del 30 al 39 hexadecimal

 


Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network