SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: tirengarfio en Miércoles 20 de Febrero de 2008, 22:37

Título: El Rango De Db Y Sobre Los Numeros Con Signo
Publicado por: tirengarfio en Miércoles 20 de Febrero de 2008, 22:37
Hola,

en un codigo tengo este array:

Código: Text
  1. memo  DB 04h DUP (-4, 3h, 250, -250)
  2.  

Si es cierto que el rango de DB es [127, -128], ¿por que no me da error el poner numeros como 250 o -250 en mi tabla?.

Cuando supero 255 ó -256 si que se produce un error del tipo "Out of range".



Por otra parte, tengo un codigo que deberia contar el numero de datos negativos en mi tabla (-4 y -250) pero no lo hace. Es este:


Código: Text
  1.  
  2.   xor di, di
  3.  
  4. bucle2:
  5.  
  6.  
  7.   shl memo[di], 1
  8.   adc cl, 0; Al final del bucle, bl contendrá el numero de datos negativos
  9.  
  10.  
  11.   inc di
  12.  
  13.   cmp di, 04h
  14.   jnz bucle2
  15.  
  16.    
  17.   mov ch, 04h
  18.   sub ch, cl; Restamos el numero de datos negativos encontrados del  numero de
  19.    &#59; datos de la tabla (4). Así obtendremos el numero de datos positivos.
  20.  
  21.  



Un saludo

Javi
Título: Re: El Rango De Db Y Sobre Los Numeros Con Signo
Publicado por: Eternal Idol en Miércoles 20 de Febrero de 2008, 23:13
DB = define byte. Un byte tiene un rango de 0 a 255. Esos valores se pueden interpretar tambien como numeros negativos. Fijate que hay en memoria con el depurador ...

Te recomiendo que compres algun libro o leas tutoriales.

http://www.asmcommunity.net/board/index.ph..._Representation (http://www.asmcommunity.net/board/index.php?action=wiki;title=Data_Representation)

PD. No mire el codigo, en Internet hay mucho disponible.
Título: Re: El Rango De Db Y Sobre Los Numeros Con Signo
Publicado por: tirengarfio en Viernes 22 de Febrero de 2008, 11:50
Gracias Eternal.

Ok. Seguiré tu consejo.