Учебное пособие для иностранных студентов, страница 7
Описание файла
Документ из архива "Учебное пособие для иностранных студентов", который расположен в категории "". Всё это находится в предмете "архитектура эвм" из 2 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "Учебное пособие для иностранных студентов"
Текст 7 страницы из документа "Учебное пособие для иностранных студентов"
S = x1 + x2 +...+ x20
Распределение памяти: | Используемые регистры: |
0000 x1 | R0 0 |
0002 x2 | R1 1 |
* * * | R2 2 |
0026 x20 | R3 21 |
0028 S | R4 i |
002A 0 | R5 S |
002C 1 | R6 модификатор |
002E 1516 (=2110) | |
0030 2 |
Программа:
0100 | 00 0 0 002A | R0 := 0 | загрузка | ||
0102 | 00 1 0 002C | R1 := 1 | константных | ||
0104 | 00 2 0 0030 | R2 := 2 | регистров | ||
0106 | 00 3 0 002E | R3 := 21 | |||
0108 | 20 6 0 | R6 := 0 | |||
0109 | 20 5 0 | S := 0 | |||
010A | 20 4 1 | i := 1 | |||
010B | 01 5 6 0000 | S := S + x [R6] | |||
010D | 21 6 2 | R6 := R6 + 2 | |||
010E | 21 4 1 | i := i + 1 | |||
010F | 25 4 3 | i = 21? | |||
0110 | 82 0 0 010B | i 21, go to 0010B | |||
0112 | 10 5 0 0028 | сохранили S | |||
0114 | 99 0 0 | стоп |
В этой программе модификация адресов происходит только в одной команде 010B. Отметим, что во время работы программы модификатор R6 принимает значения 0, 2,4,...Значение R6 увеличивается на 2 на каждом шаге цикла, так как элементы массива занимают по две ячейки.
Можно использовать модификатор R6 для управления циклом. Тогда не потребуются команды, работающие с переменной i .
Пример 2. Вычислить сумму элементов массива x1, ..., x20..
S = x1 + x2 +...+ x20
Распределение памяти: | Регистры: |
0000 0 | |
0002 x1 | |
0004 x2 | R2 2 |
* * * | R3 38 |
0026 x20 | R5 S |
0028 S | R6 модификатор |
002А 2616 (=3810) | |
002С 2 |
Программа:
0100 | 00 2 0 002E | R2 := 2 |
0102 | 00 3 0 002C | R3 := 38 |
0104 | 20 6 3 | R6 := 38 адрес последнего элемента |
0105 | 00 5 0 002A | S := 0 |
0107 | 01 5 6 0000 | S := S + x [R6] |
0109 | 22 6 2 | R6 := R6 - 2 |
010A | 82 0 0 0107 | R6 0, go to 00107 |
010C | 10 5 0 0028 | сохранили S |
010E | 99 0 0 | стоп |
В этой программе элементы массива просматриваются, начиная с последнего. Поэтому начальное значение R6 — адрес последнего элемента. Для получения адреса предыдущего элемента из R6 вычитается 2 на каждом шаге цикла. После завершения выполнения программы значение R6 вышло за рамки массива и указывает на 0000.
При выполнении перехода по "не равно" процессор проверяет значение флага ZF (материал п1 §4). Команда 0109: 22 6 2 (R6 := R6 - 2) устанавливает такое же значение флага ZF, что и последовательность команд
22 6 2 (R6 := R6 - 2)
25 6 0 (R6 := 0).
В самом деле, числа (R6 - 2) и ((R6 - 2) - 0) могут равняться нулю только одновременно.
Следовательно, команду сравнения можно опустить.
Содержание
§1 Принципы фон-Неймана.
П.1. Свойства ЭВМ.
П.2. Принципы фон-Неймана.
§2. Структура ЭВМ.
П.1. Процессор. Такт работы процессора.
П.2. Оперативная память.
П.3. Внешние устройства.
§3. Представление целых чисел в ЭВМ.
П.1. Числа без знака.
П.2. Числа со знаком.
П.3. Способы получения дополнительного кода числа.
П.4. Арифметические операции (сложение и вычитание).
П.5 Арифметические флаги.
§4. Учебные машины.
П.1. Учебная трехадресная машина УМ-3.
П.2. Учебная двухадресная машина УМ-2.
П.3. Учебная машина с регистрами УМ-Р.
П.4. Учебная машина с модификацией адресов УМ-М.
29