Составители:
35
4.4.3. Формирование признаков результата
В арифметических операциях в регистре PSW формируются признаки
результата. Для формирования признаков в Cи определяется функция
PSWC( char *OP), где код OP= “add, subb , and, or, … ”,
1) PSW[7]=C перенос в операциях сложения или
заем в операции вычитания, сохраняется в командах ADD, ADDC,
SUBB, в SUBB формируется прямое значение заема /C.
A) Значение C в PSWC( “addc”) для Addc:
Вычисление значения признака в Си
PSW= ((RA+RB+(PSW>>7))>=0x100) ? PSW|0x80 : PSW&0x7F ;
В проекте MAXPlus перенос PSW[7]= Сn8 рис 4.3.
Б) PSWC(“subb”)
Вычисление признака в Си
PSW= ((RA - RB - ((PSW)>>7))<0x100) ? PSW|0x80 : PSW&0x7F ;
В проекте MAXPlus перенос Сn8 инвертируется. Выбирается
мультиплексором и записывается в PSW[7].
2) Признак переполнения PSW[6]=OV
A) Вычисление признака в PSWC( “addc” )
PSW= (~(RA^RB)& ((RA+RB+(PSW>>7))^PA)) ? PSW|0x40 : PSW&0xBF ;
В проекте MAXPlus в PSW записывается выход OVR ALU.
b)Вычисление признака в PSWC( “subb” )
PSW= (~(RA^RB)& ((RA+RB+(PSW>>7))^PA)) ? PSW|0x40 : PSW&0xBF ;
Б) Признак четности PSW[1]= P=F[7]+F[6]+ …F[0].
В MAXPlus используется программируемая макрофункция lpm_xor.
Функция в Си
For(i=0;i<8;i++) P^=(ACC<<1)&0x80;
PSW= (ACC&0x80) ? PSW|0x02 : PSW&0xED;
4.4.4. Схема умножения mul ab
Рекуррентная формула вычисления дробного произведения [1]
S
i+1
=2
-1
(S
i
+Ab
n-i
)
,
S
0
=0
Схема вычисления инвариантна к формату и может быть использована
как для вычисления 2n-разрядного дробного, так и 2n-разрядного целого произ-
ведения двух n-разрядных сомножителей.
Страницы
- « первая
- ‹ предыдущая
- …
- 33
- 34
- 35
- 36
- 37
- …
- следующая ›
- последняя »