Tabla Anti-Log ($D000-$DFFF)
La tabla Anti-Log contiene datos usados para convertir exponentes base-2 en números no
signados.
La tabla Anti-Log consiste de 2,048 words no signadas que son los mas bajos 16-bits de una
mantisa de 17-bit (el bit 17 esta implicado y debe activarse separadamente). Para usar esta
tabla mueva los 11 bits superiores de la fracción exponente (bits 15..5) en los bits 11..1 y
separe. Sume $D000 para la tabla base Anti-Log. Lea el word en la localidad en el resultado-
esto es la mantisa. Despues, mueva la mantisa a la izquierda a los bits 30..15 y active el bit
31– el bit 17 faltante de la mantisa. El ultimo paso es mover el resultado a la derecha por 31
menos el exponente entero en los bits 20..16. El exponente es ahora convertido a un numero
no signado.
Aqui se muestra una rutina que convertirá un exponente base-2 en un numero no signado
usando la tabla Anti-Log:
' Convierte exponente a numero
'
' on entry: exp holds exponente 21-bit con 5 bits entero y 16 bits fraccionales
' on exit: num holds 32-bit valor no signado
'
expnum
mov
shr
como offset word
and
or
rdword num,num
shl
or
mantisa)
shr
4..0
xor
movimiento count
shr
expnum_ret
ret
en RDWORD)
num0
long
table_mask
long
table_antilog
long
exp
long
num
long
Appendix B: Math Samples and Function Tables
num,exp
num,#15-11
num,table_mask
num,table_antilog
num,#15
num,num0
exp,#20-4
exp,#$1F
num,exp
$80000000
$0FFE
$C000
0
0
'obtiene exponente en el numero
'justifica fraccion exponente
'separa tabla de bits offset
'suma direccion tabla anti-log
'lee mantisa word in un numero
'mueve mantisa a los bits 30..15
'activa bit superior (bit 17 de la
'mueve entero exponente a bits
'invierte bits para obtener
'mueve numero a posicion final
'47..62 ciclos
'(variacion debido a sic HUB
'bit 17 de la mantisa
'tabla mascara offset
'tabla base anti-log
'entrada
'salida
Propeller Manual v1.1 · Page 401