Я работаю на каком-то процессоре Tensilica и не понимаю процесса нормализации.
NSA - нормализованная величина сдвига
NSA при, как
NSA вычисляетвеличина левого сдвига, которая нормализует содержимое дополнения к двум адресам регистра адресов, и записывает эту сумму (в диапазоне от 0 до 31) в регистр адресов.
Если as содержит 0 или -1, NSA возвращает 31. Использование SSL и SLL для сдвига влево в результате результата NSA дает наименьшее значение, для которого биты 31 и 30 отличаются, если только не содержит 0.
Таким образом, в основном АНБ рассчитывает величину сдвига (0 ... 31) и записывает в регистр AT.
Вопрос в том, как он вычисляетчто значит нормализация двух дополнительных значений из AS?
Это не инструкция с плавающей запятой.В AS может быть значение со знаком на 32 бита (31 + знак)
Спасибо за разъяснения,
РЕДАКТИРОВАТЬ: должно быть так (спасибо Питеру Кордесу)
0x00000004 4 _______ number
|
0 0 0 0 0 0 0 1|
0000 0000 0000 0000 0000 0000 0000 0100
<--------------------------------> |
NSA = 28 bits |________ sign
0x00000003 3 ______ number
|
0 0 0 0 0 0 0 1 |
0000 0000 0000 0000 0000 0000 0000 0011
<---------------------------------->|
NSA = 29 bits |_______ sign
0x00000002 2 ______ number
|
0 0 0 0 0 0 0 1 |
0000 0000 0000 0000 0000 0000 0000 0010
<---------------------------------->|
NSA = 29 bits |_______ sign
0x00000001 1 _____ number
|
0 0 0 0 0 0 0 1 |
0000 0000 0000 0000 0000 0000 0000 0001
<----------------------------------->|
NSA = 30 bits |______ sign
0xFFFFFFFF 0 NSA = 31
0xFFFFFFFF -1 NSA = 31
0xFFFFFFFE -2 _____ number
|
F F F F F F F E |
1111 1111 1111 1111 1111 1111 1111 1110
<----------------------------------->|
NSA = 30 bits |______ sign
0xFFFFFFFD -3 ______ number
|
F F F F F F F D |
1111 1111 1111 1111 1111 1111 1111 1101
<---------------------------------->|
NSA = 29 bits |_______ sign
0xFFFFFFFC -4 ______ number
|
F F F F F F F C |
1111 1111 1111 1111 1111 1111 1111 1100
<---------------------------------->|
NSA = 29 bits |_______ sign
0xFFFFFFFB -5 _______ number
|
F F F F F F F B|
1111 1111 1111 1111 1111 1111 1111 1011
<--------------------------------> |
NSA = 28 bits |________ sign