Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Уч.пос.для ПЗ OKO-2016.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
9 Мб
Скачать
☆

3.3 Контрольные вопросы

1. Объясните прицип работы логического сдвига.

2. Объясните принцип работы арифметического сдвига.

3. Объясните принцип работы модифицированного сдвига.

4. Объясните принцип работы циклического сдвига.

5. Сформулируйте алгоритм умножения младшими разрядами вперед, со сдвигом суммы ( ) вправо двоичныхбеззнаковых чисел.

6. Сформулируйте алгоритм умножения старшими разрядами вперед, со сдвигом суммы ( ) влево двоичныхбеззнаковых чисел.

7. Сформулируйте алгоритм деления целых двоичных беззнаковых чисел методом с восстановлением остатка.

8. Сформулируйте алгоритм деления целых двоичных беззнаковых чисел методом без восстановлением остатка

3.4 Примеры аудиторных заданий

Задание №1. Необходимо перемножить два беззнаковых числа ( ).

Решение. Для удобства возьмем длину разрядной сетки равную четырем битам, а именно:

- множимое;

- множитель;

- произведение.

Если ( ) и ( ) равняется четырем битам, то как было отмечено выше ( ) должно быть восьмиразрядным значением, т.е длина разрядной сетки произведения в два раза больше множимого и множителя.

Алгоритм умножения младшими разрядами вперед, со сдвигом суммы ( ) вправо приведен в табл. 3.1.

Таблица 3.1 - Алгоритм умножения младшими разрядами вперед, со сдвигом суммы ( ) вправо двоичных беззнаковых чисел

Регистр (В)

множимое

X

Регистр (С)

множитель

Y

Регистр (А)

произведение

Z

Счетчик тактов

(Сч.Т)

Комментарии

0

1

1

1

0

0

1

1

00000000

4

0111

множимое

01110000

1Я СЧП

→

0

0

1

00111000

3

1ЫЙсдвиг СЧП

0111

множимое

10101000

2Я СЧП

→

→

0

0

01010100

2

2 ОЙсдвиг СЧП

→

→

→

0

00101010

1

3 ИЙсдвиг СЧП

→

→

→

→

00010101

0

4ЫЙсдвиг СЧП

СТОП

Задание №2. Необходимо перемножить два беззнаковых числа ( ).

Решение. Для удобства возьмем длину разрядной сетки равную четырем битам, а именно: - множимое, - множитель, - произведение.

Если ( ) и ( ) равняется четырем битам, то как было отмечено выше ( ) должно быть восьмиразрядным значением, т.е длина разрядной сетки произведения в два раза больше множимого и множителя.

Алгоритм умножения старшими разрядами вперед, со сдвигом суммы ( ) влево приведен в табл. 3.2.

Таблица 3.2 - Алгоритм умножения старшими разрядами вперед, со сдвигом суммы ( ) влево двоичных беззнаковых чисел

Регистр (В)

множимое

X

Регистр (С)

множитель

Y

Регистр (А)

произведение

Z

Счетчик тактов

(Сч.Т)

Комментарии

0

1

1

1

0

0

1

1

00000000

4

00000000

1ЫЙ сдвиг СЧП

0

1

1

←

00000000

3

2ОЙ сдвиг СЧП

00000000

3ИЙ сдвиг СЧП

1

1

←

←

00000000

2

4ЫЙ сдвиг СЧП

00000000

5ЫЙ сдвиг СЧП

0111

множимое

00000111

1Я СЧП

1

←

←

←

00001110

1

6ОЙ сдвиг СЧП

0111

множимое

00010101

0

2Я СЧП

СТОП

Задание №3 Необходимо разделить два беззнаковых числа ( ).

Решение. Для удобства возьмем длину разрядной сетки равную четырем битам, а именно: - делимое; - делитель; - частное.

Если ( ) и ( ) равняется четырем битам, то как было отмечено выше ( ) должно быть восьмиразрядным значением, т.е длина разрядной сетки делимого в два раза больше делителя и частного. Алгоритм деления приведен в табл. 3.3.

Таблица 3.3 - Алгоритм деление целых двоичных беззнаковых чисел методом с восстановлением остатка.

Регистр (В)

делимое

X

Регистр (С)

делитель

Y

Регистр (А)

частное

Z

Счетчик тактов

(Сч.Т)

0

0

0

1

0

1

0

1

0

1

1

1

←0

←0

←1

←1

4

1

0

0

1

3п.

2п.

1п.

0п.

1

0

1

0

<0

03п.

0

1

1

1

↑

1

0

0

0

1

↑

0

0

1

0

1

0

1

←

↑

1

0

0

1

↑

1

0

1

1

<0→

→0

→0

→0

→0

↑

3

0

1

1

1

02п.

1

0

0

1

0

↑

0

1

0

1

0

1

←

←

↑

1

0

0

1

↑

1

1

1

0

<0→

→0

→0

→0

→0

↑

2

0

1

1

1

11п.

1

0

1

0

1

↑

1

0

1

0

1

←

←

←

↑

1

0

0

1

↑

1

0

0

1

1

>0→

→1

→1

→1

→1

↑

1

0

1

1

1

←

←

←

←

10п.

1

0

0

1

↑

1

0

0

0

0

>0→

→1

→1

→1

→1

↑

0

СТОП

Задание №4 Необходимо разделить два беззнаковых числа ( ).

Решение. Для удобства возьмем длину разрядной сетки равную четырем битам, а именно:

- делимое;

- делитель;

- частное.

Если ( ) и ( ) равняется четырем битам, то как было отмечено выше ( ) должно быть восьмиразрядным значением, т.е длина разрядной сетки делимого в два раза больше делителя и частного. Алгоритм деления приведен в табл. 3.4.

Таблица 3.4 - Алгоритм деление целых двоичных беззнаковых чисел методом без восстановлением остатка.

Регистр (В)

делимое

X

Регистр (С)

делитель

Y

Регистр (А)

частное

Z

Счетчик тактов

(Сч.Т)

0

0

0

1

0

1

0

1

0

1

1

1

←0

←0

←1

←1

4

1

0

0

1

3п.

2п.

1п.

0п.

1

0

1

0

<0

03п.

0

1

0

0

1

0

1

←

↑

0

1

1

1

↑

1

0

1

1

<0→

→0

→0

→0

→0

↑

3

0

1

1

1

0

1

←

←

02п.

0

1

1

1

↑

1

1

1

0

<0

→0

→0

→0

→0

↑

2

1

1

0

0

1

←

←

←

11п.

0

1

1

1

↑

1

0

0

1

1

>0

→1

→1

→1

→1

↑

1

0

1

1

1

←

←

←

←

10п..

1

0

0

1

↑

1

0

0

0

0

>0

→1

→1

→1

→1

↑

0

СТОП

Задание №5 .Необходимо разделить два беззнаковых числа ( ).

Решение. Для удобства возьмем длину разрядной сетки равную четырем битам, а именно:

- делимое;

- делитель;

- частное;

- остаток.

Если ( ) и ( ) равняется четырем битам, то как было отмечено выше ( ) должно быть восьмиразрядным значением, т.е длина разрядной сетки делимого в два раза больше делителя и частного.

Как было отмечено выше последний частичный остаток должен быть больше нуля.

Если последний частичный остаток меньше нуля, его необходимо восстанавливать путем прибавления к нему делителя.

Алгоритм деления приведен в табл. 3.5.

Таблица 3.5 - Алгоритм деление целых двоичных беззнаковых чисел методом без восстановлением остатка.

Регистр (В)

делимое

X

Регистр (С)

делитель

Y

Регистр (А)

частное

Z

Счетчик тактов

(Сч.Т)

0

0

0

1

0

1

0

0

0

1

1

1

←0

←0

←1

←0

4

1

0

0

1

3п.

2п.

1п.

0п.

1

0

1

0

<0

03п.

0

1

0

0

1

0

0

↑

0

1

1

1

↑

1

0

1

1

<0

→0

→0

→0

→0

↑

3

0

1

1

1

0

0

02п.

0

1

1

1

↑

1

1

1

0

<0

→0

→0

→0

→0

↑

2

1

1

0

0

0

11п.

0

1

1

1

↑

1

0

0

1

1

>0

→1

→1

→1

→1

↑

1

0

1

1

0

00п.

1

0

0

1

↑

1

1

1

1

<0

→0

→0

→0

→0

↑

0

СТОП

Счетчик тактов равняется нулю деление окончено, но последний частичный остаток получился равен меньше нуля, поэтому необходимо выполнить коррекцию, путем прибавления к последнему частичному остатку делитель.

0

1

1

1

- коррекция

1

0

1

1

0

>0 - истинный остаток.