70
4)
Мәліметтер ЖЕСҚ ҧяшығында орналасады, оның адресі
келесідей формуламен есептеледі:
адрес═базалық адрес+ығысу
Базалық адрес МП регистрінің
бірінде сақталады және
мәліметтер массивінің бастапқы нҥктесі болып табылады. Басқа
регистрлердің мазмҧны болатын белгілі бір тҧрақты ығысу болуы
мҥмкін.
ЖЕСҚ-қа мҧндай қатынасу
әдісі индекстік деп аталады, себебі
индексі болмайынша бір ӛлшемді массив элементтерін табуға ҧқсас
болып келеді.
МП-ң нақты модельдерінде ЖЕСҚ адрестеудің кейбір
ерекшеліктері болады. Мысалы, РDР процессорларында екілік жанама
адрестеу болуы мҥмкін. Мәліметтер адресі ЖЕСҚ-ң ҧяшығында
сақталады, ал оның адресі кӛрсетілген регистрда болады.
«Intel» фирмасының процессорында
қабылданған сегменттік
әдісті қарастырайық. Белгілі американдық бағдарламалаушы Питер
Нортон бҧл әдісті «клудж» сӛзі деп атады. («Клудж» ағылшын тілінен
аударғанда мәселені уақытша шешуге арналған қҧрал-сайман).
Адрестеудің сегменттік әдісі алғашқы 16-разрядты 8086 МП
ҧсынылды. 16-разрядты регистрді қолдана отырып, 20-разрядты адрес
алу ҥшін және сол арқылы ЖЕСҚ кӛлемін 64 кбайттан 1Мбайтқа
дейін ең ҥлкен мҥмкіндігін жоғарылату кӛзделді. ЖЕСҚ адресі екі
санның қосындысы сияқты есептеледі. Соның біреуі солға 4
екілік
разрядқа ығысқан немесе 16-ға кӛбейтілген. Мысалы, 16-қ тҥрдегі
сегмент А000 тең болса, ығысу 1000 болады. Мҧндай адрестеудің
жалпылама
жазбасы
мынадай
тҥрде
болады:
А000/1000.
Нәтижесіндегі адрес:
А000()
+ 1000
А1000
Сегменттік адрестеуде ЖЕСҚ-ң
адресі сандардың бірнеше
комбинациясы тҥрінде беріледі.
Стек термині «stack» атты ағылшын сӛзінен шыққан. Стек – бҧл
стек кӛрсеткіші қолданылатын тізбектегі әдістен ақпарат саналатын
немесе жазылатын адрестеудің анықсыз әдісі. Мысалы, N1, N2 және
N3 3 нақты сандар мәнін уақытша сақтау,
содан соң барлығын
жаңарту қажет болсын. Ол ҥшін стектік жадыны қолданамыз. Стекте
ақпараттың бір кірісі бір шығысы болады. Оның адресін сақтау ҥшін
стек кӛрсеткіші қажет. Оның адресі 2006 болсын (4.13 сурет, а)
«Стекке N1 жазу» командасы болғанда процессор келесі әрекеттерді
орындайды:
1)
2-ге стек кӛрсеткішін азайту (бҥтін сан жадыда 2 байт
орын алады)
71
2)
Алынған 2004 адресі бойынша N1 жазады (6-2 сурет, б)
«Стекке N2 жазу», «Стекке N3 жазу» командасының орындалуы
сәйкесінше болады. Яғни бҧл айнымалылардың мәндері 2002 және
2000 ҧяшығына орналасады және стек кӛрсеткіші 2000-ға тең болады.
6.2-сурет. Стек жҧмысын зерттеуге арналған мысал
Енді мәліметтерді шығаруды қарастырамыз. (6-2, б сурет)
суретінде кӛрсетілгендей кӛрсеткіш қазір N3 айнымалысының мәніне
«бағытталған», яғни, сол айналымнан бастап оқиды. «N3 Стектен оқу»
командасын орындағанда процессор:
1)
Стектен N3 мәнін санайды;
2)
Кӛрсеткішті 2-ге ҥлкейтеді (6-2, г сурет)
Сол сияқты N2 және N1 оқимыз, 6-2 суретінде бейнеленгендей
стек босап, бастапқы кҥйге қайтып келеді.
Достарыңызбен бөлісу: