Duda en la subrutina barrel

Duda en la subrutina barrel

de Miguel Angel Martinez Recalde -
Número de respuestas: 4

Hola, la duda es la siguiente; en la subrutina barrel, se tiene que hacer simplemente un corrimiento de n posiciones o efectivamente una división por 2^n. La duda se da, porque si el contador (tanto de X o Y) toma valores negativos impares, hay que hacer el corrimiento de n veces y luego sumarle 1 (esto seria hacer la división por 2^n), pero si hacemos esto ultimo, no logramos ajustar la sensibilidad para ese caso; pero si hacemos simplemente el corrimiento de n veces, se logra el ajuste de sensibilidad, tanto si los contadores de X o Y toman valores positivos o negativos. 

En respuesta a Miguel Angel Martinez Recalde

Re: Duda en la subrutina barrel

de Roberto Carlos Barrera Torres -

Miguel:

Recordá que los desplazamientos de X e Y están expresados en complemento a 2, no en binario "común". ¿Eso lo tuvieron en cuenta?

En respuesta a Roberto Carlos Barrera Torres

Re: Duda en la subrutina barrel

de Miguel Angel Martinez Recalde -

Si, lo tuvimos en cuenta desde el principio, por eso dije, que si los contadores tomaban valores negativos hacíamos el corrimiento de n lugares y luego sumamos 1. Creemos, que lo que hicimos conceptualmente esta bien, pero en si no sabemos porque falla en la sensibilidad. Gracias, por la respuesta.

En respuesta a Miguel Angel Martinez Recalde

Re: Duda en la subrutina barrel

de Julio Perez -

Tienen que hacer la división por 2 a la n en complemento a 2 del nro de 16 bits. Eso NO se logra con el método de desplazar y sumar 1 que decís que están haciendo. Hay una instrucción para hacer eso con bros de 8 bits en un registro, tienen que pensar cómo hacerlo en 16 bits.