За да се избегне тази ситуация, го е направил за запазване на съдържанието на регистрите преди всяко повикване. Това може да се осъществи проникване на информация от интерес за нас в произволно място в паметта, съдържанието на които не се променят по време на работа съчетания. Непосредствено преди връщането към основното съдържание програма рутинни извършва възстановяване при регистър, т.е.. Д. Влизане съхранява информация в първоначалното си местоположение.
Така че, в списъка на изискванията за подпрограмите, следва да бъде допълнен с още две точки. Необходимо е да се направи за запазване на съдържанието на регистрите. Завръщането на контрол на основната програма трябва да бъде предшествано от съдържанието на възстановяване регистри. Така че нашият списък сега изглежда така:
S1: Спасяването регистри.
53: Възстановяване на регистрите.
Преди да се пристъпи към по-подробен анализ на стъпките S1 и S3, е се запозна с двата отбора.
LM и STM отбор
Както се вижда от описанието, операциите, изпълнявани от съдържанието на регистър група с число между R1 и R3. Например, командата
Фиг. 13.3. Илюстрация STM работата в екип.
Фиг. 13.4. Възстановяване на съдържанието на регистрите с помощта на екипа на LM.
Резултатът ще се зареди регистри от информация за района, в който паметта оригиналното му съдържание е запазена. Процесът на възстановяване е показано на фиг. 13.4.
Ако броят на първия регистър е по-голям от втория брой, т. Е. голяма R1 R3, резултатът отива първите регистри от R1 до 15 и след това от 0 до R3. според екипа
Зареждане на изображението се произвежда в регистъра SA 14, дума SA + 4 в регистъра 15, SA + 8 в регистър 0, SA + 12 в регистър 1, SA + 2 в регистъра 16, и най-накрая, SA + 20 в регистър 3. Ако, обаче, R1 = R3, тогава само един регистър използва като операнд. С други думи, резултатите от командата
защитена зона
Според приетия договор, запазване на съдържанието на регистъра, постигнат след четвъртия опазването на думата. Съдържанието на регистъра се съхранява в паметта в следния ред: 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12. Регистърът 13 има специална роля в запазването на съдържанието на регистрите, както ще видим по-късно, и поради това, тя изисква специална обработка.
(Вж. Фиг. 13.5). За възстановяване на регистрите в края на подпрограмата е достатъчно, за да ги заредите ценности на съхранение:
Тази команда трябва незабавно да предшества завръщането на отбора към главната програма.
Обобщавайки по-горе, нека сега да определя общата структура на произволен съчетания, които отговарят на тези изисквания. Нека рутината има име SUBR. Неговата обща структура е както следва:
STM 14,12,12 (13) съхраняване АПАРАТИ
LM 14,12,12 (13) Възстановяване на регистрите
Backup памет и константи
Една от услугите, предоставяни от операционната система; потребителят е да бъде в състояние да работи с макро библиотеки, съдържащ набор от много удобно за използване на макроси. Този комплект се състои от такива макро като спаси и RETURN. За да запазите съдържанието на регистъра, само толкова, колкото да се напише
В програмата на макроса се заменя с командата
За да възстановите съдържанието на регистрите и за изпълнение се връща към основната програма ще трябва да използвате друг макрос:
Това е еквивалентно на даване на няколко команди:
Използвайте стандартна макро или пишете еквивалентната команда е въпрос на вкус.
Свързани статии