Распределение памяти
Тест, п = 10, 5 = 300. Программа
Расчет переходов: 1) Переход в случае / > п на конец программы. При выполнении этой команды счетчик адреса команд (согласно алгоритму работы процессора) имеет значение 0010. Попасть необходимо на команду с адресом 001С. Поэтому смещение будет таким: 001С - 0010 = ОС. 2) Безусловный переход (возврат) на сравнение / с п. Адрес должен смениться с 001С на 000С. Имеем 000С—001С=—10. Это смещение необходимо записать в дополнительном коде. Имеем: прямой код 10(16)=00010000(2); дополнительный код 11101111(2)+ 1(2) = 11110000(2)= Р0(16). Рассмотренная задача может быть решена и без использования цикла. В самом деле, полученная последовательность является арифметической прогрессией с разностью с! = 6. По формуле суммы первых п членов имеем с 2ах + й(п - 1) 2 3 + 6 (п - 1) - 2 = 2--------- -п = у -п = Ъп. Последней формулой и надо воспользоваться для расчетов. Вернемся к примеру 2 из предыдущей лабораторной работы. Как видно из представленного решения, задача более рационально должна быть решена с использованием цикла. Пример 7. В последовательных ячейках памяти расположены пять целых чисел. Получите произведение этих чисел. Содержимое памяти не изменяйте. Распределение памяти
Заданные числа будем хранить с адреса 0050. Тест
Ответ: 120(10) = 78(16). Программа
Расчет переходов: 1) 1А - ОЕ = ОС; 2) 08 - 1А = -12 (ЕЕ). Массивы Пример 8. Поменяйте местами первый отрицательный элемент массива и его максимальный элемент. Примечание. В массиве есть хотя бы один отрицательный элемент. Идея решения. Просматривая массив, необходимо запомнить адреса первого отрицательного элемента и максимального элемента. По окончанию просмотра совершить обмен. План решения: 1.1: = 2. 3. о*г: = 0. 5. Сравнить / с п. 7. Если ф']< 0 и о1х = 0, то к: = /, о*г: = 1. 9. /: = /+ 1. 11. У8р: = а[к\. 13. д[тах]: = У8р. Распределение памяти 2. тах: =1. 4. Если а[ 1] < 0, то к: = 1, о1г: = 1. 6. Если / > п, перейти к п. 11. 8. Если а[1]> а[тах], то тах: = /. 10. Перейти к п. 5. 12. а[к]: = а[тах]. 14. Стоп.
Тест Массив разместим с адреса 0080. Пусть п = 8.
|