desbordamiento de reubicación cuando se realiza AND bit a bit (Asamblea SPARC)?
-
08-10-2019 - |
Pregunta
Estoy intentando realizar una operación AND en un registro, como una máscara de bits para eliminar el bit más significativo (que pasa a ser de 16 bits cuando se cuenta desde 0). Sin embargo, cuando intento compilar mi código utilizando gcc, me da los mensajes de error siguientes:
mensajes de ensamblador: 19: Error: desbordamiento reubicación
Mi conjetura es que esto tiene algo que ver con el tamaño del bit de máscara que estoy solicitando, porque cuando realizo la AND con dos registros que contienen pequeñas cantidades que no se produce el mismo error. El código en sí parece,
.global main
main:
save %sp, -96, %sp
clr %l1
clr %l2
set 0xffff, %l0
set 0xaaaa8c01, %l4
set 0xff001234, %l5
set 0x13579bdf, %l6
set 0xc8b4ae32, %l7
srl %l4, 31, %l1
srl %l0, 15, %l2
xor %l1, %l2, %l1
and %l1, 0x1, %l1
sll %l0, 1, %l0
add %l0, %l1, %l0
and %l0, 0xffff, %l0
mov 1, %g1
ta 0
Si alguien puede ofrecer alguna información sobre cómo resolver este problema sería muy apreciada.
Gracias,
badPanda
Solución
El bit más significativo es el bit 15 (en un entero de 16 bits, cuando los bits son cero basado).