Жүйелік бағдарламалау



жүктеу 0,81 Mb.
бет1/4
Дата08.02.2018
өлшемі0,81 Mb.
#9008
  1   2   3   4

ПОӘК 042-18-11.1.20.56/03-2013

1 баспа 26.08.2013 ж.


беттің -сі



ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БIЛIМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛIГI


СЕМЕЙ ҚАЛАСЫНЫҢ ШӘКӘРIМ АТЫНДАҒЫ МЕМЛЕКЕТТIК УНИВЕРСИТЕТI

3-деңгейлi СМЖ құжаты

ПОӘК

ПОӘК 042-18-11.1.20.56/03-2013



ПОӘК

«Жүйелік бағдарламалау» пәнінің оқу-әдістемелік материалдары

1 баспа


26.08.2013 ж.

«ЖҮЙЕЛІК БАҒДАРЛАМАЛАУ»

ПӘНІНІҢ ОҚУ -ӘДІСТЕМЕЛІК КЕШЕНІ
5В070400 - Есептеу техникасы және бағдарламалық қамтамасыз ету мамандығына арналған


ОҚУ-ӘДІСТЕМЕЛІК МАТЕРИАЛДАР

Семей


2013
мазмұны

1. Глоссарий


2. Дәрістер

3. Практикалық сабақтар

4. Студенттің өздік жұмысы


1 глоссарий



ЭЕМ архитектурасы - ЭЕМ-ң құрылымдық, схемотехникалық, логикалық ұйымдастырылуын көрсететiн абстрактiлi көрсетiлуi.
Жадының сызықтық кеңiстiгi – адрес номерлерi тiзбектi түрде тағайындалатын жады ұяшықтарының жиынтығы.
Басқару құрылғысы - команда кодтарын дешифрациялап, қажеттi басқару сигналдарын таратады.
Арифметикалық-логикалық құрылғы мәлiметтердiң қажеттi арифметикалық және логикалық түрлендiрулерiн жүргiзедi.
Регистрлер басқарушы ақпаратты, яғни адрестер мен мәлiметтердi сақтауға арналған.
Байт ЭЕМ-ң негiзгi жадысының минималды адрестелетiн бiрлiгi.
Сегменттер програмалар мен мәлiметтердi негiзгi жадыда орналастыруға арналған арнайы облыстар.
Стек мәлiметтер мен адрестердi уақытша сақтауға арналған жадының арнайы ұйымдастырылған облысы.
Сөз – тiзбектi адресi бар екi байттан тұратын тiзбек.
Қос сөз – тiзбектi адрестер бойынша орналасқан төрт байттан (32бит) тұратын тiзбек.
Төрттiк сөз - тiзбектi адрестер бойынша орналасқан сегiз байттан (64 бит) тұратын тiзбек.

2 Дәрістер



Тақырыбы 1 Ассемблер туралы алғашқы мәліметтер. РС архитектурасы.

Мақсаты: Пәннің мазмұнымен таныстыру.

Дәріс сұрақтары:

1. ЭЕМ-нің архитектуралық ерекшеліктері.

2. Регистрлердің жинағы.

3. Микропроцессордың жұмыс істеу режимдері.
1. ЭЕМ-нің архитектурасы – бұл ЭЕМ абстракты көрінісі. Оның құрылымын, схемотехникалық және қисын ұйымдастыруы.

Суперскалярлық архитектура. Конвейер – бұл команда орындалуын бірнеше кезеңге бөлетін арнайы құрылғы. i486 бесқадамдық конвейер бар:

- кэш-жадынан не ОЖ команданы таңдау;


  • команданы декодтау;

  • жадыда операнд адресі анықталатын адресті генерлеу;

  • арифметикалық-қисын құрылғылар (АҚҚ) көмегімен амалдарды орындау;

  • нәтижені жазу.

Бір конвейері бар микропроцессорлар скалярлық деп аталады. Pentium-да екі конвейер, aл Pentium Pro-да үш, сондықтан олар суперскалярлық деп аталады.

Кэштеу – «біріңші деңгейлі кэш-жадында» код пен мәліметтердің сирек сақталауына байланысты жадының жұмыс қабілеттілігін көбейтетін тәсіл.



2. Микропроцессорда 32 регистр бар, оларды келесі түрде жүктеуге болады:

- 16 қолданушылық регистр;

- 16 жүйелік регистр.

Қолданушылық регистрлер.

Қолданушылық регистрлер аталуының себебі, программист оларды өзінің программасын құрастырғанда оларды қолдана алады. Бұл регистрлерге келесі жатады:

- сегіз 32-биттік регистр, олар мәліметтер мен адрестерді сақтау үшін қолданылады: eax/ax/ah/al, ebx/bx/bh/bl, ecx/cx/ch/cl, edx/dx/dh/dl, ebp/bp, esi/si, edi/di, esp/sp;

- алты сегменттік регистрлер: cs, ds, ss, es, fs, gs;

- қалып-күй және басқару регистрлер: eflags/flags флагтар регистрлері және eip/ip командаға нұсқағыш регистрлері.


Жалпы тапсырма регистрлері.

Осы топтың барлық регистрлері өзінің «кіші» бөліктеріне қатынай алады.



  • eax/ax/ah/al - аккумулятор. Аралық мәліметтерді сақтау үшін қолданылады.

  • ebx/bx/bh/bl – базалық регистр. Жадыда бір объектінің базалық адресін сақтау үшін қолданылады.

  • ecx/cx/ch/cl - регистр - санауыш. Қайталанатын әрекеттерді орындайтын командаларда қолданылады.

  • edx/dx/dh/dl – мәліметтер регистрі. Аралық мәліметтерді қолдану үшін.

Келесі регистрлер тізбекті амалдарды орындау үшін қолданылады:

  • esi/si – түптек индексі, тізбек-түптекте элементтің ағымды адресін сақтайды;

  • edi/di – қабылдауыш индексі, тізбек-қабылдауышта элементтің ағымды адресін сақтайды.

Стекпен жұмыс істеу үшін арнайы регистрлер қолданылады:

  • esp/sp – стекке нұсқағыш регистрі, стектің ағымдағы сегментінде стек биіктігіне нұсқағыш бар;

  • ebp/bp – стек кадр базасына нұсқағыш регистрі.

Сегменттік регистрлер.

Микропроцессор аппаратты түрде сегмент деп аталатын үш бөлік ретінде программаның құрылымдық ұйымдастырылуын қамтамасыз етеді. Мұндай жадының ұйымдастырылуы сегменттік деп аталады. Сегменттерге көрсету үшін сегменттік регистрлер қолданылады.

Сегменттердің түрлері:



  1. Код сегменті. Программа командалары бар; cs – код сегменттік регистрі.

  2. Мәліметтер сегменті. Программа өңдейтін мәліметтер бар; ds – мәліметтердің сегменттік регистрі.

  3. Стек сегменті. ss – стектің сегменттік регистрі.

  4. Мәліметтердің қосымша сегменті.

Қалып-күй және басқару регистрлері.

Бұл регистрлерге келесі жатады:


  • eflags/flags флагтар регистрі;

  • eip/ip командаға нұсқағыш регистрі.

eflags/flags – флагтар регистрі. Жеке биттерде функционалдық тапсырмасы бар.

Флагтарды үш топқа бөлуге болады:



  1. Сегіз қалып-күй флагтары (арифметикалық не қисын командаларының нәтижелерін бейнелейді);

  2. df – басқару флагы. Флагтың мәні элемент бойынша бағытын анықтайды;

  3. Енгізу-шығаруды басқаратын бес жүйелік флагтар;


3. Әр микропроцессордың басты сипаттамасы оның разрядтылығы болып келеді. МП 8086 оналты разрядты ішкі архитектурасы бар. Процессордың ішіндегі барлық регистрлердің ұзындығы 16 бит.

Қорғалған режимде сегменттер мен оның ішіндегі ығысулар қолданылады. Бірақ сегменттердің бастапқы адрестері сегменттік регистрлердің кестесінен алынады.

Қазіргі уақытта қолданылатын MS-DOS версиясы нақты режимде жұмыс істейді. Сонымен қатар, виртуалды жадыны басқаруға мүмкіндік бермейді.
Әдебиеті:

1 В. Юров, С. Хорошенко "Ассемблер". - С-П: "ПитерКом", 1999.

2 К. Г. Финогенов "Самоучитель по системным функциям MS-DOS".- М.:

"Радио и связь", 1995.


Бақылау сұрақтары:

1 ЭЕМ-нің архитектурасы дегеніміз не?

2 Ассемблер тілінің қандай мүмкіндіктерін ата аласыз?

3 Микропроцессорда неше регистр бар?

4 Қорғалған режимде қандай элементтер қолданылады?

Тақырыбы 2 Жадыны ұйымдастыру. Ассемблерде қарапайым

программаны жасау.

Мақсаты: Жадыны ұйымдастыру принциптерімен таныстыру.

Дәріс сұрақтары:

1. Жадыны ұйымдастыру:


  1. адрестік кеңістікті үлестіру;

  2. жадының сегменттелген моделі;

  3. нақты режимдегі физикалық адрестің қалыптастыруы.

2. Ассемблерде қарапайым программаны жасау.
1. Микропроцессор аппаратты түрде оперативті жадыны қолданудың бірнеше моделдерімен қамтиды:

  • сегменттелген модель. Бұл моделде программа үшін жады бірнеше аймақтарға (сегменттерге) бөлінеді. Ал программаның өзі тек осы сегменттерде орналасқан мәліметтерге ғана қатынай алады.

  • беттік модель. 4 Кбайт өлшемдес блоктар жинағы ретінде қарастырылады.

Осы моделдердің жүзеге асыруы микропроцессор жұмысының режимдеріне байланысты:

  • нақты адрестер режимі (нақты режим). Бұл режимде i8086 жұмыс жасады.

  • қорғалған режим. Intel микропроцессор (і80286 бастап) моделінде кірістірілген барлық архитектуралық жобаларын жүзеге асырайды.

  • 8086 виртуалды режимі. і8086 үшін жасалған программаларымен жұмыс істеу мүмкіндігін туғызады.

Адрестік кеңістікті үлестіру.

Адрестік кеңістіктің 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 биті бар.
2. Жүйелік программаларды жазған кезде әр байт саналады, сондықтан программалау тілі ретінде ассемблерді алу ыңғайлы. Ассемблер тілін қолданғанда біз жүйелік және архитектуралық жағдайларын қарастырамыз. Мынадай есепті талдаймыз: бір регистрдің мазмұнына визулизация жасаймыз немесе оған мәнді енгіземіз.

Ең алдымен алгоритмін құрастырамыз. Клавиатурадан ақпаратты енгізу және оны экранға шығару символдық түрде жүзеге асырылады. Бұл ақпараттың кодтауы ASCII кестесіне сәйкес келеді. Егер сандармен жұмыс жүргізілсе, онда символдық ақпаратты машиналық командаларымен қамтамасыз етілетін форматқа түрлендіру қажет. Осындай түрлендіруден кейін қажет есептеулерді жүргізіп, нәтижені қайтадан символдық түрге ауыстыру керек. Содан соң ақпаратты мониторға шығару керек.



  1. 0...9 оналтылық цифрлері үшін ASCII код сәйкесінше екілік көріністен айырмашылығы бар. Сондықтан ASCII кодын түрлендіру үшін екі жол бар:

  1. екілік алу амалын орындау: (ASCII код)h – 30h

  2. ASCII кодында 16-лық цифрімен байттың үлкен тетрадасын нөлге келтіру.

  1. Түрлендіру алгоритмі 16-лық цифрлердің жолдық және қолмен жазылған әріптік символдары айыру қажет. Және ASCII кодының мәнін 37һ немесе 67һ шамаларына дұрыстау керек.


Әдебиеті:

1 В. Юров, С. Хорошенко "Ассемблер". - С-П: "ПитерКом", 2009.

2 К. Г. Финогенов "Самоучитель по системным функциям MS-DOS".- М.:

"Радио и связь", 2005.


Бақылау сұрақтары:

1 Микропроцессор аппаратты түрде оперативті жадыны қолданудың неше

моделдерімен қамтиды?

2 Адрестік кеңістік дегеніміз не?

3 Физикалық жадының адрестеу механизмінде қандай сипаттамалары бар?

Тақырыбы 3 Ассемблерде программа құру.

Мақсаты: Ассемблерде программа құру принциптерімен таныстыру.

Дәріс сұрақтары:

1. Трансляция, құрастыру, TurboDebugger жөндеуіші

2. .ЕХЕ және .СОМ түрдес программалар жады мен құрылымы.
1. Төмеңгі деңгей тілдеріне Ассемблер тілі жатады. Өз атауын Ассемблер жүйелі программаның атынан алды. Бұл программа ағымды программаларды машина командаларының кодтарына айналдырады. «Ассемблер» термині assembler (бір бүтінге бөліктерді жинау) ағылшын сөзінен шыққан.

Бастапқы программада немесе бастапқы модульде операторлар бөліктер ретінде қызмет жасайды, ал құрастыру нәтижесі – объект модуль ретіндегі машина командалар тізбегі. Құрастыру процессі ассемблерлеу немесе аудару (трансляция) деп аталады (Сурет 1 қараңыз).



Сурет 1. Бастапқы модуль, Ассемблер және объект модуль арасындағы қатынас
Программаның ағымды текстін дайындауы кез келген текстік редактор арқылы жасалынады. Мысалы, Windows жүйесінің WordPad не Блокнот программаларында ұйыдастыруға болады. Ағымды тексті бар файлдың кеңейтілуі .ASM болуы керек. Келесі әрекет мынадай болады, программаның ағымды текстін машина командаларының кодына айналдыру. Бұл әрекет Ассемблер программасы (TASM 5.0, фирмалық атаулары - Turbo Assembler, Turbo Link және Turbo Debugger) арқылы орындалады. Трансляциядан кейін екі файл құрылады – трансляция листингі және OBJ кеңейтілуімен объекттік файлы. Листинг өзімен қандай-да бір текстік редакторда ағымды программаны оқуға болатын текстік файлды көрсетеді. Транслятор тапқан қателер туралы ақпаратты да өзінде сақтайды.

Листинг элементтерінің трансляциясын байқайық (Сурет 2 қараңыз).




жүктеу 0,81 Mb.

Достарыңызбен бөлісу:
  1   2   3   4




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау