Деление без восстановления остатка со сдвигом остатка — страница 6

  • Просмотров 4265
  • Скачиваний 300
  • Размер файла 785
    Кб

т.е. на наличие запрещенных комбинаций, если Да то на G00(Л3), иначе на B02(Л3). G00(Л3) Коррекция: СМ[25-28]:=СМ[25-28] + Рг.К[0-3]. B02(Л3) Проверяем СМ[32,33]=11, т.е. на наличие запрещенных комбинаций, если Да то на D02(Л3), иначе на C03(Л3). C03(Л3) Проверяем СМ[31,33]=11, т.е. на наличие запрещенных комбинаций, если Да то на D02(Л3), иначе на E02(Л3). D02(Л3) Коррекция: СМ[30-33]:=СМ[30-33] + Рг.К[0-3]. E02(Л3) Проверяем СМ[37,38]=11, т.е. на наличие запрещенных комбинаций, если Да то на G02(Л3), иначе на

F03(Л3). F03(Л3) Проверяем СМ[36,38]=11, т.е. на наличие запрещенных комбинаций, если Да то на G02(Л3), иначе на B04(Л3). G02(Л3) Коррекция: СМ[35-38]:=СМ[35-38] + Рг.К[0-3]. B04(Л3) Проверяем СМ[42,43]=11, т.е. на наличие запрещенных комбинаций, если Да то на D04(Л3), иначе на C05(Л3). C05(Л3) Проверяем СМ[41,43]=11, т.е. на наличие запрещенных комбинаций, если Да то на D04(Л3), иначе на E04(Л3). D04(Л3) Коррекция: СМ[40-43]:=СМ[40-43] + Рг.К[0-3]. E04(Л3) Проверяем Сч.3=0, если Да, то переходим на B04(Л2), иначе на

F05(Л3). F05(Л3) Проверяем Сч.3=1, если Да, то переходим на B02(Л2), иначе на B06(Л2). B04(Л2) Сдвигаем регистр СМ влево на 5 разрядов. В Сч.1 заносим 9. C04(Л2) Сч.1:=9. D04(Л2) Сложение делимого и делителя, делитель в прямом коде. F04(Л2) Сч.3:=1. Переход на коррекцию. B02(Л2) Проверяем СМ[40-43]=0000, если Да то на C02(Л2), иначе на C03(Л2). C03(Л2) Декремент Сч1 (отнимаем от текущей тетрады частного 1). C02(Л2) Инкремент Сч.2 (переход к следущей тетраде частного). Присваиваем Рг.В[0-3]

значение Сч1. Сдвигаем регистр Рг.В влево на 4 разряда. D02(Л2) Сдвигаем регистр СМ влево на 5 разрядов. В Сч.1 заносим 1. E02(Л2) Сложение делимого и делителя, делитель в дополнительном коде. G02(Л2) Сч.3:=2. Переход на коррекцию. B06(Л2) Проверяем СМ[40-43]=0000, если Да то на C06(Л2), иначе на C07(Л2). C06(Л2) Инкремент Сч1 (прибавляем к текущей тетраде частного 1). C07(Л2) Инкремент Сч.2 (переход к следущей тетраде частного). Присваиваем Рг.В[0-3] значение Сч1. Сдвигаем

регистр Рг.В влево на 4 разряда. D07(Л2) Проверяем Сч.2=0, если Да то на E07(Л2), иначе на C04(Л2). E07(Л2) Выводим частное, т.е. Z:=Рг.В. F07(Л2) Конец. 1.6 Описание моделирующей программы (Приложение В) Программа операции деления без восстановления остатка со сдвигом остатка с фиксированной точкой в коде 8421, 8421+6 выполнена на языке программирования ассемблера. В моделирующей программе регистрами Рг.А, Рг.В, Рг.К, а так же счетчиками СЧ.1 и СЧ.2 СЧ.3

являются регистры самой ЭВМ и оперативная память. Описание программы построчно: 1 – 22 – Связывание данных с сегментом данных DS, очистка экрана, приглашение к вводу двух чисел, запись введенных чисел по адресам в сегменте данных. 23 – 28 – Вычисление знака частного. 29 – 72 – Вычисление количества тетрад, подготовка под знак целой тетрады, вызов процедур преобразования из ASCII в байты делимого и делителя, пробное сложение, проверка на