Duda con saltos LOOP

Iniciado por 0xFer, 20 Julio 2015, 03:49 AM

0 Miembros y 1 Visitante están viendo este tema.

0xFer

En el libro que estoy estudiando(El de Irvine) dice que el destino a la que apunta una instrucción loop debe estar a una distancia entre -128 a +127 del origen.

Mi pregunta es ¿por qué? Creo se utiliza 8 bits para la dirección a la cual se quiere saltat, pero se¿ puede saltar a una mayor distancia?

¿Que hay de las instrucciones LOOPD Y LOOPW? Que diferencias hay? Son estas propias de MASM?

Un saludo!


Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

Eternal Idol

Exactamente, el opcode tiene un operando relative de 8 bits con signo:
http://pdos.csail.mit.edu/6.828/2006/readings/i386/LOOP.htm

Se puede saltar mas lejos con otras instrucciones como jump por ejemplo. No conozco ni encuentro documentacion sobre esos otros pero si crece el codigo lo mejor que podes hacer es implementarlo en una rutina que sea llamada por el bucle.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

0xFer

#2
Gracias!! :)
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

Eternal Idol

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón