Формат входных, выходных и внутренних переменных, с которыми оперирует АЛУ.
Исходные данные (операнды) поступают в формате 16-разрядных двоичных чисел с фиксированной запятой, представленных в дополнительном коде [a0 a1 …a15]с, [b0 b1 …b15]с, причем нулевой разряд является знаковым и запятая фиксирована после знакового разряда. Соответственно, результат операции должен быть представлен в той же форме: [с0 с1 …с15]d
F- тип выполняемой операции (1- алгебраическая; 0- логическая) F’ - тип алгебраической операции (1- вычитание; 0- сложение)
OV – признак переполнения Z – признак нулевого результата. Алгоритм алгебраического сложения/вычитания: 1. Сначала нужно определить тип выполняемой операции (сложение или вычитание) 2. Если выполняется сложение, то операнды не переводятся в дополнительный код, так как дополнительный код положительного числа равен самому числу. 3. Если же выполняется вычитание, то нужно проверить какой из операндов имеет отрицательное значение (может быть отрицательным один операнд или оба операнда). 4. Производим сложение/вычитание операндов в зависимости от исходных значений. 5. Результат записывается в переменную С. 6. Анализируем знак результата, путем сравнения между операндами и результатом. 7. Формируем признак переполнения. Значение OV:= 0 устанавливается, безусловно, так как A и B дробные числа, поэтому при и всегда 8. При необходимости переходим от дополнительного кода результата к прямому коду.
Разработка алгоритма Конъюнкции: Конъюнкция определяется по следующей формуле:
Для наглядности построим таблицу истинности функции конъюнкции C:
На основе таблицы истинности построим алгоритм логической операции неравнозначности: 1. Сравниваем двоичные векторы A и B поразрядно, если A[15]= B[15], то продолжаем сравнение следующих соответствующих разрядов. 2. Для сравнения следующих разрядов сдвигаем вправо двоичные векторы: A:=П1(A) и B:=П1(B), сравнение производим до тех пор пока хотя бы раз условие A[15]= B[15] не выполнится, то есть если векторы будут отличаться хотя бы одним разрядом, то C:=0, в противном случае C:=1.
2.3. ГСА сложения/вычитания
Рис.2.1. Граф - схема алгоритма сложения/вычитания в дополнительных кодах
|