«Ж?йелік ба?дарламалау» ?азіргі зама??ы ОЖ программалауды? ?дістері мен принциптерін о?ып ?йренудегі негізі болып табылады. Айтып кеткен п?нде о?ытылма?ан та?ырыптар осы жерде толы? ?арастырылады. Ассемблер тілін ме?геру к?сіби программистерді дайындау ба?ыты болып келеді. Сонды?тан, ЭЕМ ж?мыс принциптерін, операциялы? ж?йе ж?не жо?ар?ы тілдер трансляторларын, сонымен ?атар жо?ары эффекті программаларды игеру м?мкіндіктерін к?рсетеді. Ассемблер тілінде программалау келесі принцип бойынша ?ткізіледі: ?андай да бір м?ліметтер ??рылымы (массив, тізім ж?не т.б.) немесе бас?ару ??рылымы алынады, содан кейін осы ??рылымды ассемблер тілінде іске асырылуы к?рсетіледі.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Тапсырма: Үзілімдер мен регистрлер түсініктеріне қандай мағына берер едің? (Оқушылардың өз ойларын айтуы сұралады.)
Микропроцессор аппаратты түрде оперативті жадыны қолданудың бірнеше моделдерімен қамтиды:
сегменттелген модель. Бұл моделде программа үшін жады бірнеше аймақтарға (сегменттерге) бөлінеді. Ал программаның өзі тек осы сегменттерде орналасқан мәліметтерге ғана қатынай алады.
беттік модель. 4 Кбайт өлшемдес блоктар жинағы ретінде қарастырылады.
Адрестік кеңістіктің 640 Кбайты (00000h 9FFFFh дейін адрестермен) негізгі оперативті жадыға беріледі. Оперативті жадының бастапқы килобайты үзілімдер векторымен толтырылған (4 байт бойынша 256 векторлар). Үзілімдер векторының соңынан BIOS мәліметтер аймағы орналасқан (00400h 004FFh дейін адрестермен). BIOS мәліметтер аймағы компьютердің бастапқы жүктеу процессі кезінде ақпаратпен толтырылады.
Жады аймағы (500h адресімен) DOS жүйелік мәліметтермен толтырылған. Осының соңында IO.SYS және MSDOS.SYS файлдарынан жүктелетін операциялық жүйе орналасқан. Әдетінше, жүйе бірнеше ондық Кбайтты алады.
Егер CONFIG.SYS файлына DEVICE=... директивалары (ADM.SYS, SMARTDRV.SYS, ЕММ386.ЕХЕ, ANSI.SYS және т.б. драйверлердің жүктемесі) қосылса, онда олар жүйеден кейін жүктеледі. Драйверлерден төмен COMMAND.COM командалық процессордың резидентті бөлігі орналасқан. 3 Кбайтты алады.
Айтылып кеткен операциялық жүйенің компонеттері әдетінше 60-90 Кбайт алады. 640 Кбайт шекарасына дейінгі қалған барлық жады кез келген жүйелік немесе қолданбалы программалардың жүктемесі үшін бос болып келеді.
Адрестік кеңістіктің қалған 384 Кбайты (жоғарғы жады) тұрақты сақтау құрылғылары үшін арналған. Адрестік кеңістіктің соңында (F0000h – FFFFFh) BIOS негізгі ТСҚ (ПЗУ) орналасқан. Жоғарғы жады адрестік кеңістіктің бөлігі бейнебуферді адрестеу үшін беріледі.
PC/AT компьютерлер құрамына кеңейтілген жады кіреді және максималды көлемі процессордың адрестік шина еніне байланысты және 80286 процессорын пайдаланғанда 15 Мбайтқа дейін жету мүмкін. Ал, 80386/486 процесорлары үшін - 4 Гбайт. Бұл жады 100000һ адресінен басталады. Нақты қарағанда, машинада кеңейтілген жадының толық көлемі орнатылмайды, тек қана 2-3 Мбайт.
Кеңейтілген жадының (l00000h-тан 10FFEFh-қа дейін) біріңші 64 Кбайты үлкен жадының аймағы деп аталады (High Memory Area, НМА). Үнсіз келісім бойынша ЕММ386.ЕХЕ драйвері кеңейтілген жадының 128 Кбайтын UMB-ға алмастырып, C000... CFFF адрестері бойынша орналастырады.
Жадының сегменттелген моделі.
Сегменттелу – бұл бірнеше тәуелсіз адрестік кеңістіктердің бір есеп шекарасында ғана емес жалпы жүйеде бар болуымен қамтамасыз ететін адрестеу механизмі. Сегменттелу механизмінде мынадай сегмент түсінігі бар. Сегмент тәуелсіз және аппаратты деңгейде жады блогымен қамтылған.
Сегменттің ішінде программа сегмент басына қатысты адрестеріне қатынайды. Яғни 0-мен басталып сегмент өлшеміне тең адресімен аяқталады. Микропроцессор мәліметтерге қатынаған кезде қолданылатын қатысты адрес эффективті деп аталады.
Нақты режимдегі физикалық адрестің қалыптастыруы.
Физикалық жадының адрестеу механизмінде келесі сипатамалары бар:
0-ден 1 Мбайтқа дейін диапазонында физикалық адрес өзгертіледі;
сегменттің максималды өлшемі 64 Кбайт;
Нақты бір физикалық адреске қатынау үшін ОЖ сегменттің басталу адресі мен сегмент ішіндегі ығыстыруды анықтау керек. Сегменттен құрылған адрес 16-биттік мән ретінде көрсетіледі. Максималды мәні 216 –1 сәйкес келеді. Сегмент басталуының адресі 0 - 64 Кбайт диапазонында орналасуы керек. Сегменттік регистрінде физикалық адрестің үлкен 16 биті бар.
Жүйелік программаларды жазған кезде әр байт саналады, сондықтан программалау тілі ретінде ассемблерді алу ыңғайлы. Ассемблер тілін қолданғанда біз жүйелік және архитектуралық жағдайларын қарастырамыз. Мынадай есепті талдаймыз: бір регистрдің мазмұнына визулизация жасаймыз немесе оған мәнді енгіземіз.
Ең алдымен алгоритмін құрастырамыз. Клавиатурадан ақпаратты енгізу және оны экранға шығару символдық түрде жүзеге асырылады. Бұл ақпараттың кодтауы ASCII кестесіне сәйкес келеді. Егер сандармен жұмыс жүргізілсе, онда символдық ақпаратты машиналық командаларымен қамтамасыз етілетін форматқа түрлендіру қажет. Осындай түрлендіруден кейін қажет есептеулерді жүргізіп, нәтижені қайтадан символдық түрге ауыстыру керек. Содан соң ақпаратты мониторға шығару керек.
2. Өткен тақырыпты бекіту (сұрақтар, тапсырмалар)
Закрепление изученного (вопросы, задания)
Бекіту сұрақтары:
1 Микропроцессор аппаратты түрде оперативті жадыны қолданудың неше
моделдерімен қамтиды?
2 Адрестік кеңістік дегеніміз не?
3 Физикалық жадының адрестеу механизмінде қандай сипаттамалары бар?