Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Определение памяти и регистров микропроцессора под выполнение программы




Разделение массивов выбранным методом происходит с помощью последовательной проверки знаков операндов. Для того что бы осуществлять последовательную проверку необходим указатель текущего адреса, который указывал бы на адрес в памяти, содержащий число для проверки, и инкрементировался после проверки. Такая задача подразумевает использование косвенной регистровой адресации. По этой причине для хранения указателя выбрана регистровая пара HL. Другой причиной выбора регистровой пары HL является возможность непосредственного перемещения содержимого этой пары в ячейки памяти командой SHLD и непосредственной загрузки командой LHLD.

Программа начинается с поиска первого положительного числа, по адресу которого будет перемещено ближайшее отрицательное число в сторону увеличения адреса. После перемещения следующий адрес теперь будет содержать первое положительное число в сторону увеличения адреса, на место которого так же будет производиться перемещение. Для этой задачи решено использовать косвенную регистровую адресацию. Адрес будет храниться в регистрах DE и инкрементироваться после перемещения.

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

Для выполнения операции сдвига положительных чисел на одну ячейку используется счетчик перемещений, в роли которого используется регистр B. При поиске отрицательного числа для перемещения он увеличивает свое значение, при каждой операции определения знака. При сдвиге каждого числа значение счетчика уменьшается на единицу, пока значение счетчика не станет равным нулю.

При выполнении сдвига положительных чисел используется указатель текущего адреса, расположенный в регистрах HL, при выполнении операций сдвига он уменьшает свое значение. Что бы после операций сдвига возможно было дальше осуществлять операции определения знака, необходимо значение указателя адреса куда-либо сохранить. Для этих целей выбраны ячейки памяти с адресами: 0h0806, 0h0807.

Задание курсового проекта требует указания адреса начала и конца разделенных массивов. В соответствии с принципами, изложенными в анализе поставленной задачи, я укажу лишь адрес начала положительного массива, расположив его в ячейках с адресами: 0h0804, 0h0805. В ячейках с адресами: 0h0800, 0h0801 будет храниться начальный адрес исходного массива. В ячейках с адресами: 0h0802, 0h0803 будет храниться конечный адрес исходного массива. Поскольку размеры массива произвольны было решено для работы программы в указанных ячейках памяти указывать границы массива, это позволяет обрабатывать массивы разных размеров.

Программа размещается в следующих ячейках памяти: 0h0808 по 0h085E.

 




Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 411; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.