Жады



Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 3
Реферат ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
1 Жады ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 5
1.1 Жадыға түсінік ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 5
1.2 Жадының кіші адрестері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 7
2 Жадыны басқару ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 9
2.1 Жалпы түсінік ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 9
2.2 Жадыны манипуляциялау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 11
2.3 Орташа деңгей ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 13
3 Жанының түрлері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 15
3.1 Кеңейтілген жады ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 15
3.2 Виртуалдық жады ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 16
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 17
Қолданылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 18

Мазмұны
бет
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... ... .. ... ... ... ... 3
Реферат ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... ... .. ... ... ... ... 4
1
Жады ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... ... .. ... ... ... . 5
1.1 Жадыға
түсінік ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... . 5
1.2 Жадының кіші
адрестері ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... .
... ... ... ... 7
2 Жадыны
басқару ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... ... 9
2.1 Жалпы
түсінік ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... ... 9
2.2 Жадыны
манипуляциялау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... .. 11
2.3 Орташа
деңгей ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... 13
3 Жанының
түрлері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... 15
3.1 Кеңейтілген
жады ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... . 15
3.2 Виртуалдық
жады ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... . 16
Қорытынды ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... ... ... .. ... ... . 17
Қолданылған
әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... .. 18

Кіріспе

Бірінші компьютердің пайда болуынан бастап,бүгінгі күнмен аяқтасақ,
программистердің ассемблер тілін әртүрлі түсінген.Бұрын ол негізгі тіл
болған,оны білмеген адам компьютерде қажетті іс істей алмаған.Уақыт
өзгерген сайын жағдай да өзгерді.Компьютермен байланысатын ыңғайлы құралдар
пайда болды.Басқа тілдерге қарағанда ассемблер тілі жоғалмады.
Қысқаша айтсақ ассемблер тілі-машина тілінің символикалық
түсінігі.Машинадағы барлық процестер машина тілінің командаларымен іске
асады.Осыдан көріп отырғанымыздай жалпы атқа қарамастан,ассемблер тілі әр
компьютер тіліне байланысты әртүрлі.Аппаратурамен байланысты мәселелерді
шешу үшін ассемблер тілін білу қажет.Программист немесе басқа қолданушы кез-
келген жоғары деңгейлі құрылғыларлы қолдану кезінде де адам компьютер тіл
командасын орындап жатпағанын да білмеуі мүмкін.Мысалы осындай қолданушыда
стандартты емес мәселе пайда болды делік.Оның программасы һһһһһһһһ
құрылғылармен немесе аппаратураға қатысты басқа әрекеттермен жұмыс
істесін.Қолданушы жазған программа тілі қандай жақсы болса да,ассемблер
тілінсіз жұмыс істеу мүмкін емес.
Ассемблер тілі-машина тілінің символикалық түсінігі болғандықтан,ол
микропроцессордың архитектурасымен тығыз байланысты.Оның архитектурасына
жана өзгерістер енгізген сайын ассемблер тілі де жетілдіріледі.

1 Жады

1.1 Жадыға түсінік
Микропроцессор көбінесе он алты биттік сандармен жұмыс
істейді.Олар 65536 немесе 64 К аспайтын мәнге ие бола алады.Компьютер жады
арқылы өз жолын іздегенде сандық адрестерді қолданады.Ал іс жүзінде жады 64
К байттан жоғары болмайды деп айтылады.Тәжірибеден көріп отырғанымыздай 64
К компьютердің қолдануына өте аз.Біздің көптеген компьютерлеріміздің
жадыларының көлемі 640 К-нен он есе көп.Сондықтан келесідей сұрақтар
туады,осындай үлкен жадыны және сонымен қатар он алты биттік санақ жүйесін
қолданып жұмысты қалай істейміз.
Оның шешімі 8086 микропроцессорында INTEL фирмасымен іске
асты.Олар сегменттер адресін қолданады.Сегменттік адрестер он алты байтты
екі сөздің қосылуынан тұрады.Яғни 1048576 байтты жадының адресін анықтау
керек.Қалай істелінетінін көру үшін келесіні қарастыру қажет:микропроцессор
ішінде осы сегменттік адрестерді өңдеу әдісін және сегменттік адрестің екі
сөзін біріктіру кезінде қолданылатын арифметиканы.
Арифметикаға жылжумен қосу кіреді.Ол екі он алты биттік саннан
жиырма битты екілік санды құруға мүмкіндік береді.(Ол 1048576-ге дейін
мәнді қабылдай алады). Мысалы он алтылық мәнге ие ABCD және 1234 екі он
алтылық битты сөз болсын делік.
Әр он алтылық сан төрт бит екенін еске алайық,сондықтан төрт он
алтылық сандар (ABCD және 1234)он алты бит болып табылады.Екі санның
біреуін алайық,мысалы ABCD және оның соңына ABCD0 қосайық.
Бұл санның бір он алтылық позицияға немесе сан мәнін он алтыға
көбейтудің жылжуын көрсетеді.Енді сан бес он алтылық цифрдан тұрады(немесе
жиырма бит) және миллион диапозонына жатады.
Бірақ ол толық жиырма биттік жады адресі ретінде қолданыла
алмайды,себебі бұл санның соңында 0 тұр.
Адреспен сегменттеу сұлбасын бітіру үшін біз басқа он алты биттік сан
аламыз және оны жылжыған санға қосамыз.
ABCD
+ 1234
¯¯¯¯¯
ACF04
Бұл адресация сұлбасының екі бөлігі сегменттің және ығысудың бөлігі
болып табылады.Біздің мысалда ABCD сегмент мәні болып,ал 1234 ығысу мәні
болып келеді.Сегмент бөлігі жады адресін анықтайды.
Ығысу бөлігі сегмент параграфынан кейін орналасатын кейбір байттың
нақ орналасу орнын анықтайды.Он алты биттік сөздің ығысуы 0-ден 65535
(немесе 64К) арасында өзгереді.
Сегменттік адрестің сол бөлігі 64К байтты жадымен жұмыс істеуге
мүмкіндік береді. Ол бір ғана сегмент адресін қолданады.Сегменттелген
адресті жазудың стандартты адресін қарастырайық.Ол техникалық материалдарды
оқыған кезде оны сіздер көп кездестіресіздер. Сегменттік адрес келесідей
түрде жазылады:
ABCD:1234.Алдымен сегмент адресі көрсетіледі,содан кейін қос нүкте
және ығысу адресі.Егер сіз ассемблер тілімен жұмыс істесеңіз және DEBUG
программасын қолдансаңыз,онда сіз осындай жазбаны көп кездестіресіз.
Біз компьютер жадысының ішіндегі адрестер туралы айтқанда,оларға біз
олардың сегменттік формасы түрінде жұмыс істейміз.Бірақ кейде оларды соңғы
форма түрінде қарастыру керек.Ол кезде сегменттік адрестің екі бөлігі
біріккен.Сегменттік адрестің бір сегменттік бөлігі сегменттің арнайы төрт
регистр жиынымен толық қамтылады.Әр төрт сегмент регистр параграфын жою
үшін қолданылады.CS кодты сегмент регистры программаның коды қайда
орналасқанын көрсетеді.ES қосымша сегмент регистры.DS мәліметтер
сегменттерін толықтырады.Онда мәліметтерді жадының әр екі бөлігінің
арасында қозғалтуға болады.
SS стегінің сегмент регистры компьютер стегінің базалық адресі туралы
мәлімет береді.
Детальдық адресация ығысу адресін өңдеу арқылы болады.Сегменттік
адрестің сегменттік бөлігі кез-келген төрт регистрға жүктелгенде ғана
орындалса,ығысу адресі оған қарағанда иілмелі қолданылады.Біздің
программалар адресті ығысуды әртүрлі регистрлардан алады(АХ,ВХ сияқты
универсалды регистрлар және т.б және Si және PI индексті
регистрлар).Сонымен қатар ығысу машиндық тілде фактылық командаларда
көрсетіледі немесе регистр құрамын біріктірумен есептеледі.
Ығыстыру адрестерін өңдеудің көптеген түрлері бар.Программа
компьютерде орындалғанда,ол программа бөліктерінің ортасында,сонымен қатар
сәйкес мәліметтер ішінен өз жолын табу керек.Қысқартылған терминалогия
бойынша әр программа CS кодты сегмент регистрын программа бөліктерінің
орналасуын және DS мәліметтер сегментінің регистрын мәліметтерді анықтау
үшін қолданады.Программаның орындалуы кезінде бұл регистрларды фиксирланған
және өзгермелі деп атауға болады.Егер оның біреуі фиксирланса,онда тиісті
компонента 64К-нен жоғары жадыны қолдана алмайды.Бірақ регистрдың біреуі
программа жұмысы кезінде динамикалық түрде өзгерсе,онда тиісті компонента
үшін осындай мөлшер шегі алынып тасталады.
Егер екі регистр де фиксирленсе,онда із аз жадылы модельге иеміз.Ол 64К
код үшін және 64К мәліметтер үшін программа көлемін шектейді.
Егер екі регистр да өзгере алатын болса да,онда шектеусіз үлкен жадылы
модельге иеміз.Осы модельдер арасында тағы екі модель бар:регистрдың біреуі
фиксирланғанда,екіншісі өзгере алады.

1.2 Жадының кіші адрестері
Біздің компьютердің жадысының бір бөлігі кейбір маңызды қолданыс үшін
бөлінеді.Олар компьютердің функционалдануын анықтайды.Кіші облысты арнайы
қолдану кезінде үш облысты алуға болады:
Біріншісі-үзіліс векторларының таблицасы.Ол үзіліс подпрограммаларының
орынын анықтайды.Алғашқы 1024 байт үзіліс векторының таблицасы үшін
қолданады.Бұл таблицалар 0-ден 400-ге дейінгі абсолютті адресті жады
аумағын алады(он алтылық).
Екіншісі ROM-BIOS подпрограммасы үшін жұмыс орны болып табылады. ROM-
BIOS компьютердің және оның өзіндік жазбаларын сақтау үшін арнайы жады
облысы қажет.Осындай облыс болып ROM-BIOS мәліметтер облысы болады. ROM-
BIOS мәліметтер облысында сақталатынның ішінде буфер орналасқан.Онда біздің
программа осындай мәліметті алуға дайын болғанша басылған клавишалар туралы
мәлімет және компьютердегі бар жады көлемі туралы мәлімет.Сонымен қатар
экранды қолдану режимінің индикаторы сақталады.
ROM-BIOS мәліметтер облысы үшін 256 байтты мөлшерлі жеке облыс және 400-
ден 500-ге дейінгі адрес орнатылады. Үшінші ДОС және Бейсик жұмыс облыстары
болып табылады. Олар 500 және 600 абсолютті адрестер арасында орналасады.
Жадының негізгі жұмыс облысы пайдаланылатын сәйкес мәліметтер және
программалар болып табылады.Бұл облыс алғашқы он блоктардан тұрады.Бұл
облысты қолданушының жадысының облысы деп атайды.РС-тағы жады көлемі туралы
айтқанда әдетте осы облыста орнатылатын қолданушының жадысының көлемі
туралы айтылады.Теория жүзінде қолданушының жадысының мөлшері барлық он
жады блогы орнатылғанда 16 К-нен 640 К-ге дейін.Орнатылған жады көлеміне
қарамастан,ол 0 блогынан бастап және орнатылған жады соңына дейін
жалғастырылып үзіліссіз бөлік құрады.
Іс жүзінде жадының бірнеше түрлері бар.Ол осында анықталады және
кәдімгі ерікті доступты жады болып табылады.Сонымен қатар ол ерікті
таңдаумен сақтау құрылғысы деп аталады.Ол жазу және оқу үшін қолданылады.
Ерікті таңдаумен сақтау құрылғысы келесіні анықтайды:біріншіден осы жадыда
сақталатын мәліметтер тексеріле алады және өзгере(жазыла) алады,ал
екіншіден бұл жады тұрақты емес.Яғни онда сақталатын мәліметтер компьютер
жұмыс істеп тұрғанда ғана болады.
Бұл жады біздің программаларды және мәліметтерді сақтау үшін қажет.
Ерікті таңдаумен сақтау құрылғысының орнатылған жады көлемі проблемалар
диапазонын және мөлшерін анықтайды. Жадының бас жұмысының облысы үшін
адрестік РС жанұясының базистік конструкциясы он алты блоктың орнын ғана
орнатады.Ол жалпы көлемнен 60%.Бүгінде 640 К көлемді облыс бұл проблемалар
үшін кіші сияқты.Бірақ сол РС ойлап табылғанда,бұл көлем үлкен болып
көрінді.Ол кезде персоналды компьютерлердің жады көлемі 64 К немесе 128 К
болды.640 К жадылы үлкен болып көрінді.
Қолданушының жадысы облысының кез-келген битін біздің программалар
қолдана алмайды.0 жадысының адресінен басталатын осы жады облысының бөлігі
жазбаларды орнату үшін арнайы орнатылады.

2 Жадыны басқару

2.1 Жалпы түсінік
2.00 версиясынан бастап DOS жадыны үйлестіреді және қолданбалы
программаға жадының блоктарымен жұмыс істеуге үш операция ұсынады.Бұл 48-ші
операция-жадыны бөледі.49-жадыны босатады.4А(Setblock)-бөлінген жады
блогының мөлшерін өзгертеді.
Жадыны үйлестіру келесідей болады:әр бос және толы жадының блогына DOS
басқару блогын құрады.Бөліп алу операциясын сұрағанда, DOS сұранысты
қанағаттандыратын бос жады блогын табады да және одан қажетті бөлікті
кесіп алады.Бірінші байттың белгіленген блогының адресі сұраған
программаға қайтарылады.Осы кезде ол үшін басқару блогын құрады(басқа
басқарылу блогтары жады блоктарында қанша орын қалғанын
көрсетеді).Ұзындықтарды өзгерту операциясы кезінде блокты қысқарту үшін DOS
жадының босатылатын аумағы үшін басқарушы блок құрады және оның тізіміне
бос блоктар қосады.Осылай кез-келген бағдарлама жадысын өзгертсе,жадыны
үйлестіру жүйесінің басқару блогын бұзады.Ол болжанбаған жағдайларға алып
келуі мүмкін.
Бағдарлама іске асып жатқанда, DOS 48 (Exec) операциясын орындайды.
Бұл операция екі түрге ие: программаны жүктеу және орындау 0
подоперациясы және жабу сегментін жүктеу 3 подоперациясы.Осы екі операция
жүктеуді бірдей жүргізсе де,жадыны басқару жағынан олар әртүрлі. 0
подоперациясы кезінде DOS жүктелетін программаға жадының қол жеткізер
алатын блогын көрсетеді.(Мұнда бағдарлама сегментінің префиксі орналасқан).
Содан кейін Exec программаны жүктейді.Осылай жүктелген программа бос
жадыларға ие.Оған COMMAND.COM резидентті емес аумағы жатады.Егер ол Exec
операциясын басқа программаны шақыру үшін қолданса,онда операция қатені
қайтарады.Себебі ол бос жадыны таппайды.
Ескерту:
Exec программалары үшін белгіленген жады мөлшері есептің кескінінің
мөлшеріне қосылған MAX ALLOC жүктеу модулінің тақырыбы аумақ мөлшері болып
келеді.Егер осыншама жады іске асырылмаса, есептің кескінінің мөлшеріне
қосылғаннан кем емес MIN ALLOC жүктеу модулінің тақырыбы.Осы аумақтар LINK
компоновшигімен толтырылады.
Дұрыс жазылған программа Setblock операциясынан көмек сұрау керек
және оған қажет емес жадыдан бас тарту керек.(COM типті программалар алдын-
ала өзіндік стек орнату керек,себебі DOS-тан алатын стек жадының
босатылатын облысында жатуы мүмкін). Босатылған жады басқа есептерді жүктеу
немесе жүктемеу үшін қолданылуы мүмкін.Бұл сонымен қатар мультипрограммалау
үшін де келешекте қажет болады.
Егер ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Есте сақтау құрылғылары
Оперативті жады модульдері
Жартылай есте сақтау құрылғылары
Жады қалай жұмыс жасайды? Жады элементтері
КЭШ-жады
Оперативтік жад
Дербес компьютерлердегі жадыны басқару
Windows-та виртуальді жадымен жұмыс істеу
Микропроцессорлық техниканыңсақтағыш құрылғылары
Жады элементтері
Пәндер