Есептегіш программа жобалау



1. Кіріспе
Есептеу техникасының даму кезеңдері ... ... ... ... ... ... ... ... ... .2
2. Негізгі бөлім
Адресация негіздері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...4
Резидентті программалар ... ... ... ... ... ... ... ... ... ... ... ... ... 9
Резидентті программаны DOS.тың шартымен активизациялау ... 14
Дыбыс генерациясы ... ... ... ... ... ... ... ... ... ... ... ... ... ... .16
Assembler тілінде бағдарлау ... ... ... ... ... ... ... ... ... ... ... ...19
Компьютердің құрамы мен логикалық құрылысы ... ... ... ... ... 20
Процессордың құрылымы ... ... ... ... ... ... ... ... ... ... ... ... ..23
Портқа шығару.енгізу командалары ... ... ... ... ... ... ... ... ... .26
Қолданбалы программалардағы жүйелік құрылғыларға шығару..30
Delphi ортасымен танысу ... ... ... ... ... ... ... ... ... ... ... ... ..36
Программа ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 39
3. Қорытынды
Курстық жұмысты қорытындылау ... ... ... ... ... ... ... ... ... ... .44
Пайдаланылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ...45
Есептегіш машина” деген сөздер тіркесі ХХ – ғасырдың 40 – шы жылдарында пайда болды. Ол информацияларды сақтауды және өңдеуді автоматтандыру үшін жасалынған физикалық құрылғыны білдіреді. Есептеу техникасының дамуы ерте кезден – ақ басталды. Мысалы, XVII ҒАСЫРДА б.Паскаль (1613-1662) сандарды қоса алатын механикалық құрылғы ойлап тапты. XVIII ғасырда В.Лейбниц сандарды қоса және көбейте алатын құрылғы жасап шығарды. XIX ғасырда Ч.Бэббидж (1972-1871) механикалық машинаны программа арқылы басқару жүйесімен біріктірді. XX ғасырдың 30-жылдарының соңында Америкада қосу, азайту элементтері,электрондық жад, механикалық компонент енгізілген ЭЕМ құрастырылып шықты. 40-шы жылдардың соңғы кездерінде қазіргі кезде қолданып жүрген ЭЕМ-дердің құрылу принципінің негізінде бірсыпыра машиналар дайындалды. Алғашқы ЭЕМ-ді құру және оның жұмыс істеуінің теориялық негіздерін 1946-1947 жылдары атақты математик, кибернетик Джон фон Нейман дайындап шықты. Мұнда өңделетін информация мен өңдеу программасын сандық түрде дайындау, деректер мен программаны машинаның жадына орналастыру тәсілдері де қарастырылған. Осы кезге дейін дайындалған ЭЕМ-дер төрт буындық түрге бөлінеді.
50-жылдардың басында жарыққа шыға бастаған негізгі өңдеу құралы – бірінші буын ЭЕМ-дерінің ішкі құрылымы элементтері жеке бөлшектерден дайындалған электрондық-логикалық схемаларға негізделген болатын. Бұл бөлшектің негізгілері вакумдық электрондық шамдар еді. Мұндай компьютерлердің көлемі үлкен, сенімділігі жоғары емес, тездік жылдамдықтары бір секундта 5-6 мың қарапайым операция шамасынан аспайтын (екі санды қосу, көбейту не символдарды салыстыру сияқты бір әрекет қарапайым операция деп аталады да, оны орындайтын команда машиналық команда деп аталды. Оның үстіне, мұндай машиналар үшін құрылатын программалар машиналық командалардан тұратын да, программалау жұмысы көп еңбекті қажет еткен. Ал, ЭЕМ-нің өзі тек есептеу жұмыстарын жүргізу үшін пайдаланған).
1. М. Фленов. Библия Delphi. Санкт-Петербург, 2004.
2. .Секреты Delphi на примерах. М.:Бином, 1996
3. Камардинов О. Информатика. Оқу құралы. Алматы: «Қарасай» баспасы, 2006.
4. Культин Н. Delphi. Программирование на Object Paskal. Санкт-Петербург, 1998.
5. Халықова К.З., Паскаль тілінде программалау: Оқу құралы. – Алматы: АГУ им. Абая, 2002.
6. Халықова К.З., Тұрғанбаева А.Р. Программалау тілдерін оқыту: Оқу құралы.-Алматы,2005Орлик С.В

Жоспар

1. Кіріспе
Есептеу техникасының даму кезеңдері-------------------------- ----
-------2
2. Негізгі бөлім
1. Адресация негіздері.------------------------- -------------------------
--------4
2. Резидентті программалар----------------------- ------------------------
-----9
3. Резидентті программаны DOS-тың шартымен активизациялау----14
4. Дыбыс генерациясы------------------------ -----------------------------
----16
5. Assembler тілінде бағдарлау-------------------------- -----------------
----19
6. Компьютердің құрамы мен логикалық құрылысы--------------------20
7. Процессордың құрылымы--------------------------- ----------------------
-23
8. Портқа шығару-енгізу командалары------------------------ -------------
26
9. Қолданбалы программалардағы жүйелік құрылғыларға шығару--30
10. Delphi ортасымен танысу----------------------------- ------------------
---36
11. Программа-------------------------- -----------------------------------
-------39
3. Қорытынды
Курстық жұмысты қорытындылау----------------------- --------------
----44
Пайдаланылған әдебиеттер------------------------- ----------------
----------45

Кіріспе
Есептегіш машина” деген сөздер тіркесі ХХ – ғасырдың 40 – шы жылдарында
пайда болды. Ол информацияларды сақтауды және өңдеуді автоматтандыру үшін
жасалынған физикалық құрылғыны білдіреді. Есептеу техникасының дамуы ерте
кезден – ақ басталды. Мысалы, XVII ҒАСЫРДА б.Паскаль (1613-1662) сандарды
қоса алатын механикалық құрылғы ойлап тапты. XVIII ғасырда В.Лейбниц
сандарды қоса және көбейте алатын құрылғы жасап шығарды. XIX ғасырда
Ч.Бэббидж (1972-1871) механикалық машинаны программа арқылы басқару
жүйесімен біріктірді. XX ғасырдың 30-жылдарының соңында Америкада қосу,
азайту элементтері,электрондық жад, механикалық компонент енгізілген ЭЕМ
құрастырылып шықты. 40-шы жылдардың соңғы кездерінде қазіргі кезде қолданып
жүрген ЭЕМ-дердің құрылу принципінің негізінде бірсыпыра машиналар
дайындалды. Алғашқы ЭЕМ-ді құру және оның жұмыс істеуінің теориялық
негіздерін 1946-1947 жылдары атақты математик, кибернетик Джон фон Нейман
дайындап шықты. Мұнда өңделетін информация мен өңдеу программасын сандық
түрде дайындау, деректер мен программаны машинаның жадына орналастыру
тәсілдері де қарастырылған. Осы кезге дейін дайындалған ЭЕМ-дер төрт
буындық түрге бөлінеді.
50-жылдардың басында жарыққа шыға бастаған негізгі өңдеу құралы – бірінші
буын ЭЕМ-дерінің ішкі құрылымы элементтері жеке бөлшектерден дайындалған
электрондық-логикалық схемаларға негізделген болатын. Бұл бөлшектің
негізгілері вакумдық электрондық шамдар еді. Мұндай компьютерлердің көлемі
үлкен, сенімділігі жоғары емес, тездік жылдамдықтары бір секундта 5-6 мың
қарапайым операция шамасынан аспайтын (екі санды қосу, көбейту не
символдарды салыстыру сияқты бір әрекет қарапайым операция деп аталады да,
оны орындайтын команда машиналық команда деп аталды. Оның үстіне, мұндай
машиналар үшін құрылатын программалар машиналық командалардан тұратын да,
программалау жұмысы көп еңбекті қажет еткен. Ал, ЭЕМ-нің өзі тек есептеу
жұмыстарын жүргізу үшін пайдаланған).
Транзисторды ойлап шығарғанға байланысты, 50-жылдардың соғы кездері
техникалық негіздері түгелдей алмастырылған, негізгі элементтері жартылай
өткізгішті транзисторлардан тұратын екінші буын ЭЕМ-дері жарыққа шықты.
Мұндай элементтер машинаның әрекет тездігін және сенімділігін елеулі түрде
арттыруға мүмкіндік береді. Екінші буын машиналарының сырт аумағы, масасы,
энергия пайдалану шамасы көп төмендегендіктен, олардың өзіндік құны да
бірінші буын машиналарына қарағанда көп төмендетілді. Оның үстіне, бұл ЭЕМ-
дерде жоғарғы деңгейлі (Алгол, Фортран, Бейсик, т.б) программалау
тілдерінде операторлардан тұратын программалармен жұмыс істеу мүмкіндігі
туды.

Адресация негіздері.
Адресациялау ережесінің байттары (mod rm) (ара тұра постбайт деп
аталатын, аперанттар жайлы өзінде хабарлама алып жүреді және адресациялау
ережесі жайында). Процессордың көпшілік нұсқаулары IA-32 –екі оперантты.
Операнттар есінде сақтаулы болмаса бір және керірегистірінде, алайда екі
операнттың есте сақталуына мүмкіндік бермейді. Ерекше жағдайда қалатын
тізбе нұсқаулар ғана, оларда екі оперантпен жұмыс істеугше мүмкіндігі бар,
бірақ бұл жерде мекен жай анық айтылмайды, машина нұсқауынан тыс.Егерде
оперант жадыдан алынса онда байт mod rm онда компаненттер анықталады
(негізгі және индексті регистір ауытқуы), есептеп шығару үшін пайдалануға
тиімді мекен жайын анықтау үшін.
Mod- тан кейін алаңмен комбинациялауда rm 32 түрлі мүмкіндік
қүрайды, ол 24 мекендеуіш режиміне және сегіз регистрдің біріне сәйкес
келетін 32 мүмкін мағына құрастырады:
о mod = 00 — командада қиылысу ауданы болмайды, ал операндтың мекен-
жайы базалық және немесе индекстік регистрлеріне байланысты шығарылады.
Тиімді мекен-жайды шығару үшін нақты қандай регистрлер керек екендігін гт
ауданының құрамындағылардан білуге болады (келесіден қараңыз). Берілген mod
ауданының мәні екіге бағынбайды. Олар (rm = 110 - 16-биттік және гт = 101
немесе 100 - 32-биттік мекендеуіш) 2.5 және 2.6 таблицаларында жақсы
көрсетілген;
mod = 01 — командада қиылысу ауданы болады, бір байт орын алады және
базалық немесе және индекстік регитрлердің құрамындағылармен
модификацияланады;
о mod = 10 — командада қиылысу ауданы болады, екі немесе төрт байт
орын алады (үндемеумен жұмыс жасайтын немесе мекен-жай өлшемінің
префиксімен анықталатын мағынаға байланысты) және базалық немесе және
индекстік регитрлердің құрамындағылармен модификацияланады;
о mod = 11 — жадыда операндтар жоқ, олар регистрлерінде орналасқан.
Команда тікелей операндпен жұмыс істеген кезде mod ауданы дәл осы мағынаны
білдіреді.
• reg (3 бит) ауданын командада екінші операндтың орнында
тұрытын регистр немесе операция кодын ұлғайту коды (КОП ауданының өлшемінің
жиынтығын 11 битқа көтеретін) анықтайды.
• rm ауданы mod ауданымен бірге қолданылады да командада
екінші операндтың орнында тұратын регистр (егер mod=11 болса) немесе тиімді
мекен-жайды есептеуде қолданылатын индексті немесе базалық регистрлер
(командада қиылысу ауданымен бірге), немесе негізгі мән – 16-биттік
мекендеуге – 110 адресации (mod ф 11), 101 (mod ф 00) және 16-биттік
мекендеуге - 100 (mod ф 11) (2.5 және 2.6 табл. қараңыз).
2.3 және 2.4 таблицаларында Intel архитектурасында 32-разрядтық
регистрдің үлкен жартысына көңіл аударуға болмайтындықтан 32-разрядтық
операциялардағы 16-разрядтық регистрлерге арналған reg ауданының
құрамындағылары көрсетілмеген.
Сонымен, тиімді программа құру технологиясына жету арқылы жұмсалатын адам
еңбегін үнемдеудің екінші кезеңі басталды. Алпысыншы жылдардың екінші
жартысында және жетпісінші жылдары ЭЕМ құрылымына одан ары сапалы, күрделі
өзгерістер енгізіліп, элементтік жартыла йөткізгішті интегралдық схема
(ИС), үлкен интегралдық схема (ҮИС) және аса үлкен интегралдық схема (АҮИС)
болатын үшінші, төртінші буын машиналар көптеп жасалына бастады. Мысалы, 80-
жылдардың басында дайындалған төртінші буындық ЭЕМ-дер бір кристалында он
мыңдаған – миллиондаған транзистор болатын микропроцессорлардан құрылады.
90-шы жылдары пайда болған соңғы төртінші буын ЭЕМ-дері білімді нәтижелі
түрде өңдей алатын, паралель жұмыс істейтін ондаған микропроцессорлар
жиынтығын дайындалып шықты. ЭЕМ жұмысын күрделендіру одан ары жалғасуда.
Интегралдық (біртұтас) схема (ИС) – мүмкіндігі күрделі транзисторлық
схемадай болатын, аумаға 1 шаршы см-ге де жетпейтін функционалдық блок. Ол
жартылай өткізгішті кристалдан (негізінен кремнийден)
тұрады да, элементтері он мыңдаған – милиондаған транзисторлар, диодтар,
конденсаторлар, резисторлар арнайы тақташада (платада, беттақтасында) тұтас
қарастырылады. Қазіргі кезде бір кристалдық электрондық (5х5 мм) схемада
жүздеген мың электрондық молекулалар жинақталған. Интегралдық схеманы
пайдалану ЭЕМ-нің сырт аумағын шұғыл кішірейтуге және оның жұмыс
өнімділігін көп мыңдаған есе жоғарлатуға мүмкіндік берді. Информация
есептегіш машинадағы көп процестерді (үрдістерді) анықтайды. Мысалы,
есептегіш машинамен есеп шығарудың жалпы түрі мынадай этаптардан тұрады:
- информацияны енгізу немесе алғашқы деректерді орнату;
- енгізілген информацияны өңдеу немесе түрлендіру;
- нәтижені анықтау және өңделген информацияны шығару.
Сонымен, есептегіш машина информацияны алады, сақтайды, берілген алгогитм
бойынша өңдейді және одан щыққан нәтижені пайдаланушыға немесе басқа
компьютерлерге береді.
Информация өзінің хабары мен мазмұны арқылы сипатталатындығы және хабар
жіберушіден қабылдаушыға материалды – энергетикалық (электр, жарық, дыбыс
және т.с.с сигналдар) түрінде берілетіндігі белгілі. Хабарды қабылдау
қабылдаушының жағдайын сипаттайтын қандай-да бір шаманың уақытқа байланысты
өзгерісімен тікелей байланысты. Демек, информациялық хабарды информациялық
процесс жүретін физикалық ортаның материалдық – энергетикалық параметрлерін
уақытқы байланысты өзгертетін Х(t) функциясымен бейнелеуге болады. Осы
функция үздіксіз де (мысалы, уақытқа байланысты өзгеретін дененің
жылдамдығы, ауаның температурасы және электр тогының күші сияқтылар),
үздікті де (мысалы, уақытқа байланысты белгілі бір қатынас тіліндегі
таңбалар тізбектері немесе дыбыстар тіркестері арқылы құрылатын сөздер мен
сөйлемдер) болуы мүмкін. Үздіксіз функциялар арқылы бейнеленетін хабар –
аналогты сигнал, ал үздікті функциялар арқылы берілетін хабар – дискретті
сигнал деп аталады. Адамның сезім мүшелерінің мүмкіндігі шектеулі
болғандықтан үздіксіз информацияны дискретті түрде қабылдайды.
Оған мысал ретінде термометр арқылы ауа температурасының цифрлық жуық
мәнін анықтау.
Бір қатар жағдайда информацияның үздіксіз түрінен дискретті түрге
түрленуі өте тиімді болады. Ол үшін аналогты – цифрлық түрлендіргіш деп
аталатын арнаулы құрылғыларды пацдаланады. Мысалы, ондац құрылғы ретінде
дүкенде қолданылатын кәдімгі электрондық таразыны алуға болады: аналогтық
сигнал-өнімнің салмағын грамм, килограмм сияқты өлшемдердің цифрлармен
бейнеленген түріне түрлендіреді.
Сондықтан, есептегіш машина информациялық хабардың түріне байланысты
аналогты есептеуіш машиналар (АЕМ) немесе дискретті есептегіш машиналар
(ДЕМ) болып екі топқа бөлінеді: бұл автомашиналардың қолданатын жанар
майдың түріне байланысты дизельді немесе карбюраторлары деп бөлінгеніне
ұқсас.
АЕМ кейбір физикалық шамаларды бейнелейтін үздіксіз информацияларды
өңдейді. Мұнда физикалық айнымалылар ретінде электр желісіндегі токтың
күші, дене қозғалысының үдеуі, иіннің айналу бұрышы сияқтылар алынады.
Табиғатта көп құбылыстар бір ғана физикалық процеспен басқа процестерді
моделдеуге мүмкіндік береді. Әдетте, АЕМ арқылы тек арнаулы есептерді ғана
шешуге болады, сондықтан бұлар көп тарамаған. Бұдан ары қарай АЕМ
қаралмайды.
Ең алғаш ДЕМ тек сандық информацияларды өңдеу, яғни ғылыми-техникалық,
соның ішінде көбінесе математикалықесептерді шешу үшін ғана қолданылған.
Сондықтан оның атындағы дискреттік деген сөздің орнына цифрлық деген
анықтауышты пайдаланып, цифрлық есептегіш машина (ЦЕМ) деп аталып кетті.
Қазіргі кезде ЦЕМ арқылы информациялардың кез келген (сандық, символдық,
локикалық) типін өңдеуге, яғни әр түрлі (ғылыми-техникалық, экономикалық
мәтіндерді түрлендіру, бір тілден екінші тілге аудару, басқару, жасанды
зерде және т.б.) есептерді шешуге болады. Оның себебі, бұларда
информацияларды өңдеу және сақтау үшін екі тұрақты жағдайлары бар физикалық
құрылғылар қолданылады. Бұл жағдайларды “ 0 ” және “ 1 ” цифралырымен
белгілейді. Сондықтан өңдеуге қажет информациялар және оларға қатысты
алгоритмдер “ 0 ” және “ 1 ” – ден тұратын тізбектер арқылы берілуі керек.
Ал қандайда болмасын алгоритмдік тілде жазылған алгоритмді және кезкелген
таңбалардың тізбектері арқылы берілген өңдеуге қажет информацияларды
мазмұндарын өзгертпей “ 0 ” мен “ 1 ” –ден тұратын тізбектер арқылы
кескіндеуге болады(бір ғана мазмұн әртүрлі хабар арқылы беріледі). Яғни,
ЦЕМ әмбебап есептегіш (өңдегіш) құрал болады. Біздің қарастыратынымыз тек
ЦЕМ.
Алгоритмнің “ 0 ” мен “ 1 ” – ден тұратын тізбектер арқылы кескінделуін
программа деп атайды. Ал ондағы нұсқаулар мен амалдарды бұйрықтар дейді.
ЦЕМ орындай алатын барлық бұйрықтар жиынын машиналық тіл деп атайды.
Қазіргі машиналық тілдің әліпбилері тек “ 0 ” мен “ 1 ” – ден “” ғана
құрылады.
Әрбір ЦЕМ өэінің машиналық тілінде жазылған программаларды ғана орындай
алады. Сондықтан кез келген алгоритмдік тілде жазылған алгоритмдерді
программаға айналдыру үшін оны машиналық тілге аудару қажет. Жалпы осындай
аудармашыны транслятор деп атайды.
Ең алғаш 1946 жылы АҚШ ғалымы Джон фон Нейман әмбебап ЦЕМ жасаудың
негізгі принцииптерін жариялады. Осы принциптерді толық жүзеге асырып
жасалынған ең бірінші ЦЕМ “EDSAC” деген атпен 1949 жылы Англияда Кембридж
университетінде жасалынды. Бір жылдан кецін 1950 жылы “EDVAC” атты әмбебап
ЦЕМ АҚШ-та шықты. Бұл елдерде оларды ағылшын тілінде компьютер деп атады.
Сондықтан осы терминді автомобиль деген термин сияқты қазақ тіліне
өзгертпей ендіріп қолдануымыз керек. Бұрынғы Кеңес одағында ең бірінші
МЭСМ деген компьютердің жасалуы 1947 жылы басталып 1951 жылы аяқталды,
1952-1953 жылдары келесі “БЭСМ - 1” компьютері жасалынды.

Резидентті программалар
Көп таралған фирмалық программалар қатары (Prokey, Superkey,
Homebase, Sidekick және басқалар), әдейі BIOS және DOS үзулері деп
өндірілген резидентті программалар, басқа программамен жұмыс істегенде
жадыда орналасады.
Бұл программаларды белгілі бір батырмаларды басу арқылы активтендіруге
болады. Мұндай программалар резиденттік программалар деп аталады. Бұл
программалар DOS үзулерін енгізгеннен соң қарапайым программаларды орындау
арқылы жасалады.
Резидентті СОМ-программасын жадыда қалдыру үшін RET немесе INT 20H
командаларының орнына шығу үшін INT 27H немесе DOS 31Н командаларының
функциясын қолдану керек. INT 27Н үшін DX регистрінің жүйесінде
программаның өлшемін мына түрде береміз:

MOV DX, prog-size
INT 27H

Инициализациялау программасын орындау кезінде DOS - үлкен қолжетерлік
мекен-жайларды резервациялайды (ерекшелейді) және оған резидетті
программаларды енгізеді. Бұл резидентті программаны жасаудың ең қарапайым
және оңай бөлігі.
Күрделірек бөлігі резидентті программаның активтендіру механизмі,
DOS-қа қосылғанымен, DII COPY немесе CLS сияқты DOS-тың ішкі программасы
болып саналмайтын программалауын қосады. Таблицаларды модификациялау үзу
векторының жалпы мақсаты болып табылады. Солайша белгілі бір батырмалар мен
комбинацияларды басқан кезде резидентті программа басқаруды өзіне алады, ал
қалғандарын өзі арқылы өткізеді. Резидентті программа әдетте (міндетті
түрде емес) келесі бөліктерден тұрады:
1) Үзу векторларының таблицасында мекен-жайларды анықтайтын
секциялардан;
2) Программаны енгізу кезінде бір рет орындалатын және келесілерді
істеуге арналған процедуралардан:
- Үзу векторындағы таблицада мекен-жайларды өзіндік мекен-жайға ауыстыру;
- Резидентті болатын программалардың бөліктерінің өлшемін орнату;
- DOS үзулерін программаны аяқтауға және берілген өлшем бойынша резиденттік
программаны жасауға қолдану.
3) Резидентті болып қалатын және клавиатурадан, таймер сигналдарынан
енгізетін активті процедуралардан тұрады.
Инициализациялау процедурасы резидентті программаның жұмысын
қамтамасыз ету үшін барлық жағдайларды жасау керек. Содан соң жоғарғы
құрбан өзіне жадыда өшірілуіне рұқсат етеді. Қорытындысында
жады мына түрде үлестіріледі:
Үзу векторының таблицасы
IBMBIO.COM және IBMDOS.COM
COMMAND. COM
Программаның резиденттік бөлігі жадыда қалады. Программаның
инициализацияланған бөлігі келесі программамен қайта жабылады.

Қол жетерлік жадының қалған бөлігі
1-ші суреттегі мысал Alt және Left Shift батырмаларын бір мезетте
басқан кезде экранның түсін қондыратын резидентті программаны көркемдейді.
Қызығушылық тудыратын негізгі көріністер:
INTTAB сегменті 0 мекен-жайынан басталатын, дәлірек айтқанда 9-шы
(клавиатурадан енгізу) үзу элементінің мекен-жайы KBADDR программасында
аталған үзу векторының таблицасын анықтайды.
ROMAREA аты 400Н мекен-жайынан басталатын сегментті және ондағы
(KBFLAG) клавиатураның жалаушалы байтын анықтайды. Ал, KBFLAG клавиатураның
жағдайын көрсетеді.
3-ші бит мына бантта Alt батырмасын басуды регистрациялайды, ал 1-ші
бит Left Shift батырмасының басылуын қадағалайды.
TITLE RESIDENT (COM) – резидентті программасы экранды тазалау үшін
және түсін қондыру үшін арналған; Alt+Left Shift батырмаларын басу
арқылы орындалады.
INTTAB SEGMENT AT OH
ORG 9H*4 KBADDR LABEL DWORD INTTAB ENDS – үзу векторының
таблицасы: Int 9H үшін мекен-жай, екілік сөз.
ROMAREA SEGMENT AT 400H
ORG 17H KBFLAG DB ? ROMAREAENDS – BIOS
параметрлерінің ауданы; клавиатура жалаушасының мекен-жайы; Alt + Shift
жағдайы.

CSEG PARA ;Код сегменті
SEGMENT
ASSUME CS:CSEG
ORG 100H
BEGIN: JMP INITZ ;1 рет қана орындалады
KBSAVE DD ? ; INT 9 BIOS мекен-жайы
үшін
;Түстерді қондыру
; Экранды тазалау
COLORS PROC NEAR ;Процедура орындалады
PUSH AX ;Alt + Left S басқан кезде
PUSH BX
PUSH CX ;Регистрларды сақтау
PUSH DX
PUSH SI
PUSH DI
PUSH DS
PUSH ES
PUSHF
CALL KBSAV Үзулерді өңдеу
ASSUME DS:ROMAREA
MOV AX,ROMAREA Жағдайға қол жеткізу үшін DS-ті
қолдану
MOV DS.AX
MOV AL,KBFLAG Alt + Left Shift
CMP AL.OOOOIOIOB Alt + Left Shift басылған ба?
JNE EXIT Жоқ - шығу

Резидентті программа

MOV
MOV
MOV
MOV
INT
EXIT:
POP POP POP POP POP POP POP POP IRET COLORS
ENDP
AX.0&00H BH.61H CX.00 DX.184FH 10H
ES DS DI SI DX CX BX AX
;Айналдыру функциясы.Түсті тоқтату. Регистрлерді қайта қалпына келтіру
; Қайта оралу

Иницализациялау подпрограммасы:
INITZE PROC
ASSUME PUSH MOV MOV
NEAR
DS:INTTAB
DS
AX,INTTAB
DS.AX
;Тек 1 рет қана орындау
; DOS-қа оралуын қамтамасыз ету. Мәліметтер сегментін тоқтату.

CLI ;Үзуді тоқтату
;Өңдеушінің мекен-жайын ауыстыру
M0V AX,WORD PTR KBADDR;Сақтау
; мекен-жай
MOV WORD PTR KBSAVE,AX; BIOS
MOV AX,WORD PTR
KBADDR+2
MOV WORD PTR
KBSAVE+2,AX
MOV WORD PTR COLORS
KBADDR,OFFSET
;алмастыру
MOV WORD PTR ; BIOS мекен-жайы
KBADDR+2,CS '
STI ;Үзуге рұқсат беру
MOV DX,OFFSET INITZE ;Программа өлшемі
INT 27H ;Аяқтау және қалу
INITZE ; резидентпен
ENDP
CSEG
ENDS
END BEGIN

CSEG сегменті қарапайым СОМ-программаның сегментін бастайды. Бірінші
орындалатын JMP INITZE командасы резидентті бөлігін айналып өтеді және
программаның соңында (INITZE) инициализациялау процедурасына басқаруды
береді. Бұл процедура DI регистрінде (INTTAB) үзу векторы таблицасының
мекен-жайын орнатады және резидентті процедурасының KBSAVE полесінде INT 9
(KBADDR) үшін таблицасының элементінің мекен-жайын береді. KBADDF
таблицасындағы келесі қадамда резидентті процедураның (COLORS) (бірінші
сөз) мекен-жайы және CS (екінші сөз) регистрінің мазмұны орнатылады.
Осылайша енді KBADDR екі өзгертілген сөздерді ұстайды: CS регистрінің
адресінің жылжытылуы мен мағынасы. CS регистрі жадыдағы COLORS
процедурасының мекен-жайын анықтайды және оған клавиатурадан терілген
барлық символдар жіберіледі. Содан соң инициализациялау процедурасы ОХ
регистріне COLORS (INIT2E мекен-жайы COLORS процедурасының соңының мекен-
жайына қарағанда бір байтқа үлкен) процедурасының өлшемін кіргізеді және
INT 27Н-ні қолданып жұмысты тоқтатады.
COLORS процедурасы резидентті болып табылады, және кез-келген
батырманы басу арқылы басқаруды өзіне алады. Басқа программалар жұмысы
барысында (мысалы DOS немесе тексттік редактор) орындалатындықтан,
процедура өзі қолданатын (және де әртүрлі жағдайға басқа бірнешесі) барлық
регистрларды сақтау керек. Содан кейін KBSAVE мекен-жайы, яғни үзуді өңдеу
подпрограммасы шақырылады. Шақырылу орындалған соң, процедура Alt және Left
Shift батырмаларын басылуын анықтау үшін клавиатура жалаушасын тексереді.
Егер де клавиатуралар басылған болса, онда процедура керекті түстерді
орнатады. Аяқталу командалары алғашқыда есте сақталған барлық регистрларды
(кері кезекпен) қалпына келтіруді және IRET командасында үзуді өңдеуден
шығуды қосады.
Көрсетілген программа көркемдеуші мінезде болғандықтан, оны өзіміздің
мақсаттарымыз үшін модификацилауға немесе кеңейтуімізге болады. Векторлық
таблицадағы 9-шы үзудің мекен-жайын өзгерту резидентті программаны
конкурентті қолдануға рұқсат етілмейді

Резидентті программаны DOS-тың шартымен активизациялау

Көптеген резидентті программалар белгілі бір батырмалар группасын басу
арқылы активизацияланады. Бұл жағдайда активизация дегеніміз – менюдің
шығуы немесе операцияның орындалуы. Бұл оңай шешілетін әдіс емес. Мысалға,
бір программа дискімен жұмыс істеп жатқан кезде, резидентті программаның
активациясы жүрсін делік. Жалпы алғанда да, бұл дұрыс емес.
Бұл мәселені келесі түрде айтсақ болады - DOS функциясы жұмысының орындалуы
барысында келесі бір DOS функциясын жіберсе бола ма? Мұндай жағдай функция
жұмысы барысында TSR-программасының активизациясы жүрген кезде туу мүмкін.
Егер TSR-программа DOS функциясын қолданбаса, онда қиыншылық тумайды. MS-
DOS функциясы келесі функция аяқталмағанша шақырылмайды, яғни ол
реентерабельді операциялық жүйе емес. Негізінен DOS функцияның жұмысы
барысында өзінің стектерін орналастырады. Ал егер оған екінші рет кіретін
болсақ, онда қайта сол стекпен жұмыс істейміз, және де сол мәліметтер
аймағы қолданылады.
Келесі бір амал - 21H үзуін функция орындалмай тұрып қамтып алу керек
немесе клавиатураның буферін тексеріп, функцияны символ клавиатура
буферінде шыққан кезде шақыру керек. Буферді тексеру 16H үзуімен
орындалады. Тоқтату қауіпсіздік терезесін жасау үшін пайдалынады. Бұл
терезеде резидентті программа шақырылады. Үзуден шығу retf flag_2 1=0
командасы арқылы жүзеге асырылады. Осы кезде TSR-программасы
активизацияланады.
*
Ескерту
Кейде символдың буферда орналасқанын тексеру үшін ОВН функциясы
қолданылады.

Листинг 1
21Н үзуінің мысалы:
INT21Н
STI
СМР АН, ОАН
JZ A1Z
JMP SHORT A2ZA1Z
POSH CX
PUSH AX A3Z:
MOV CX,OFFFFH A4Z:
MOV AH, 1
LOOP A4Z
INT 16H
JZ A3Z
POP AX
POP CX A2Z:
MOV CS:FLAG_21,1

Мысалы, C0MMAND.COM бүтін жол алу үшін буферленген функциямен
қолданады. Сондықтан клавиатурадан Enter енгізілмегенше, DOS жұмыс
істемейді. Керісінше, Norton Commander символдар алады, ол символдарды оқу
алдында, оларды бар болуына тексереді. Сондықтан да Norton Commander ылғи
да жұмыс бабында болады.

Резидентті программалар (TSR-программасы)
fOSHF
DWORD PTR CS:[0FF_21]
CALL ifflTF 2
Батырмаларды басу кезінде резидентті программалардың аты керек болады.
Бұл басуды клавиатура үзуінің көмегімен тексеруге болады. Бірақ та осындай
жағдайда программаны активизациялау қате болуы мүмкін. Кейде батырмаларды
басқан кезде, программаны активизациялау жалаушасы орнатылады.Үзу таймерін
өңдейтін процедура, сол жалаушаны тексереді. Жалауша орнатылған болса, онда
21Н үзуінің жалаушасы тексеріледі. Егер осы үзудің функциялары жұмыс
істемесе, онда прорамма активизацияланады. Кей жағдайда үзу клавиатурасын
қолданбауға да болады. Тек қана батырманың уақтылы басылуын не басылмауын
қадағалап отыру керек. Бұл үзуді қолдану мысалы листинг1-де көрсетілген.
Кіру нүктесі түрінде 28Н үзуін пайдалануға болады. Символдық кіру-
шығу функциясының орындалуы алдында DOS командасы осы үзуді шақырып алады.
Бұл үзу шақырылған кезде, жүйе қауіпсіздік режимінде жұмыс істейді және
резидентті программаны активизациялауға болады.
Жұмысымыздың қауіпсіздігін жоғарлату үшін 13Н, 25Н және 26Н үзулерін
қолдануға болады. Себебі, олар басқа программалармен шақырылады.
Сөйтіп, резидентті программалар синхронды және асинхронды
активизацияланады. Синхронды активизация DOS функциясын пайдаланбаған кезде
жүзеге асады

Дыбыс генерациясы
Компьютердің тұрақты магнитпен орнатылған динамиктің көмегімен
дыбысты генерациялау мүмкіндігі бар. Динамикті басқару әдістерінің
екеуінің біреуін немесе екеуін комбинациялап қолдануға болады:
1) Intel 8255A-5 (программаланған перифириялық интерфейс (PPI))
микросхемасын активтендіру үшін 21Н портының 1 битін қолданамыз;
2) Intel 8353-5 (PIT) программаланған интервалды таймерінің
триггерін қолдану. Сағаттық генератор 1,19318 МГц жиіліктегі сигнал береді.
PPI таймері 2-ші триггермен 61Н портының 0 биті арқылы басқарады.
2-ші суреттегі программа дыбыстық ноталардың сериясын көбею
жиілігінде генерациялайды. DURTION полесінде берілген мән әрбір дыбыстық
нотаның ұзақтылығын қалптастырады, ал TONE полесі дыбыстың жиілігін
анықтайды. Жұмыстың басында программа 61Н портының мазмұнын салыстырады
және алынған мәндерді сақтайды. CLI командасы бірқалыпты дыбыстың шығуын
қамтамасыз етіп, үзу жалаушасын шығарады. Интервалды таймер секундына 18,2
тактіні генерациялайды. Соның салдарынан программаның орындалуын тоқтатады
(CLI-дің болмауы кезінде) және дыбыстың пайда болуына әкеп соғады.
TONE полесінің мәні дыбыстың жиілігін анықтайды: үлкен мәндер кіші
жиілікті береді. Ал кіші мәндер үлкен жиілікті береді. BIOSPK.R
подпрограммасы кезекті нотасын орындағаннан кейін TONE (яғни TONE полесінің
мәнін екіге бөледі) полесінің мәнін оңға қарай 1 битке жылжыту арқылы
дыбыстың жиілігің көбейтеді. Бұл мысалда TONE азайтылуы дыбыстың
ұзақтылығының қысқартылуына әкеп соққандықтан, подпрограмма DURTION-ді оның
мәнінің солға қарай бір битке жылжытылуы арқасында, яғни оның мәнін екі
еселендіру арқылы көбейтеді.
TONE полесінің мазмұны нөлге дейін азайтылған кезде программа
аяқталады. DURTION және TONE полесіндегі бастапқы мәндер принципиалды
мәндерді қабылдай алмайды.
Басқа мәндермен эксперимент жасауға болады, және де CLI командасының
көмегінсіз орындауды сынауға болады. Азайтылған жиіліктегі дыбыстарды
генерациялау үшін программаны TONE полесінде 01 мәнін енгізу арқылы, ал
DURTION полесінде басқа да үлкен мәндерді енгізу арқылы өзгертуге болады.
Ол үшін әрбір циклде TONE полесінің мәнін көбейтіп, ал DURTION полесінің
мәнін азайту керек. DURTION полесінде нолге жеткен кезде программаны
аяқтайға болады.
Ноталардың кезекті орындалуының әртүрлі варианттарын қолдануға
болады, мысалы пайдаланушының назарын өзіңе аудару үшін.
TITLE SOUND (COM) дыбыс генерациясы SOUNSG SEGMENT PARA "Code1
ASSUME CS:SOUNSG,DS:SOUNSG,SS:SOUNSG
ORG 100H BEGIN: JMP SHORT MAIN
DURTION DW TONE DW
1000 256H
;Дыбыс шығуының уақыты ;Дыбыстың жоғарлылығы (жиілігі)
MAIN PROC NEAR
IN AL.61H
PUSH AX
CLI
CALL B10SPKR
POP AX
OUT 61H.AL
STI
RET
MAIN ENDP
B10SPKRPROC NEAR
B20: MOV DX,DURTION
B30:
AND AL.UllllOOB
OUT 61H.AL
MOV CX.TONE
B40:
LOOP B40

;Алу және сақтау ; Порттың мәліметтері; Үзуге рұқсат бермеу; Дыбыс
шығару; Порттың мәнін қалпына келтіру; '.Үзуге рұқсат беру
Дыбыс шығару уақытын тоқтату
;0 және 1 биттарын тазалау
;Динамикке беру ;
Жиілікті тоқтату
;Уақыттың кідіруі

OR AL.00000010B 1-ші битті тоқтату
OUT 61H.AL ;Динамикке беру
MOV CX.TONE Жиілікті тоқтату
В50:
LOOP B50 ;Уақыттың кідіруі
DEC ox Дыбыс шығу уақытын азайту
JNZ B30 ;Жалғастырайық па?
SHL DURTION,1 ; Жоқ – уақытты көбейту
SHR TONE.l ; Жиілікті қысқарту
JNZ B20 ;Нольдік жиілік
RET ; Йә - шығу
B10SPKR ENDP
SOUNSG ENDS
END BEGIN

Assembler тілінде бағдарлау
Есептеу процесі біріңғай есептеу система моделінде амалдау ережелері
арқылы іске асырылады.Операциялық жүйе- ол ұйымдастырылған бірінғай
мәлеметтер және бағдарламалар,арнайы дайындалған, қосалқы амалдарды ЭВМ- де
шешу үшін.Операциялық система амалдарын- екіге бөлуге болады басқару
программасы, ол ЭВМ-дағы есептеу амалдарын жүйелендіреді, Қайта өңдеу
бағдарламаларын іске асыруға көмектеседі. Кәзіргі кезде бірнеше операциялық
жүйелер жүйелер пайдаланылады, олардың мүмкіндіктері әртүрлі. Операциялық
жүйенің мүмкіндігі көп болған сайын, соғұрлым есептеу процесін ұтымды
жасауға болады.
Бүгінгі күні компьютерлік жоспарлаушы, компьютердің мамандандырылған
тілін білуден бөлек, программаны суреттеу үшін операциялық жүйеге тапсырыс
дайындай білу керек, одан бөлек тапсырыс беру тілін білуге міндетті. Тіл
амалдары екі негізгі шектеуде дайындалады, тапсырыс шешуге керекті
мүмкіндіктерді суреттей алады, және де амалдың шешетін негізгі белестерді
анықтайды. Тәжірібие амалдардың көбісі,әсіресе мәлеметтерді қайта өңдеу
саласында, амалдарға кіру және шығу ерекше сынып болып саналады.
Операциялық системада тиянақты жұмыс істеу үшін барлық жағдай ескерілген
жәнеде программа негізін жасау мерзімін қысқартады. Маман бұл жүйелерді
білуге тиіс.Бүгінгі күннің маманы программалық жүйені нақты білуге тиіс,
олсыз нақты амалдар құру мүмкін емес. Концепциялардың жүйелі болуы қосалқы
амалдарды пайдалану арқылы іске асырылады. Программа құрылымы операциялық
системаның құрылымына сәйкес келуі ең керекті жағдай. Олардың сәйкес
келгендігі жайлы амалдың орындау уақытты болып табылады. Системалардың,
амалдардың сапалы болуы және өз уақыт алуы маман біліктілігіне байланысты.
Операциялық жүйенің күтіп баптау негіздері бар олар осы бағдарламалармен
жұмыс істеу үшін міндетті түрде пайдаланылады, амалдарды нақтылау үшін,
маман бұларды да пайдалана білу керек.

Компьютердің құрамы мен логикалық құрылысы
Компьютерді құрастырып шығаруға балатындығын алғаш американ ғалымы фон-
Нейман дәлелдеді. Ол компьютер құрамына мынандай құрылғылар кіргізді:
- информацияларды және оларды өңдеуге қажетті бұйрықтарды еске сақтайтын
құрылғы;
- бұйрықтарды көрсетілген амалдарды орындайтын құрылғы;
- информацияларды сақтау мен өңдеуге байланысты туатын барлық жұмыстарды
басқаратын құрылғы;
- компьютер жұмысын алғаш қосу және тоқтату үшін басқару тетігі;
Еске сақтайтын құрылғыны жады дейді. Компьютер жады екі тұрақты жағдайы
бар физикалық құрылғылардың тізбегінен тұрады. Бұл жағдайларды “ 0 ” және
“ 1 ” цифрларымен бейнелейді және оларды бит деп атайды. Бит жадының ең
кіші сыйымдылық бірлігі болады. Жадының келесі өлшем бірлігін байт деп
атайды. Бір байт сегіз биттен тұрады:

Екілік санау жүйесінің сандары ондық сандар сияқты бір разриядты ,екі
разриядты не көп разриядты болып келуі мүмкін. Үшінші және одан жоғарғы
буындық компьютерлерде бір символды кодтау үшін сегіз разрядты екілік код
пайдалынады, мысалы, 110000101. Мұның компьютер жадына жіберу мағынасы
былай: код жадқа берілгендер (деректер) шинасы деп аталатын көптеген
өткізгіш бойымен электр сигналдары арқылы жіберіледі де, жадтың электрондық
схемалар қабылдайтын жоғарғы деңгейлі кернеу 1 арқылы, төменгі деңгейлі
кернеу 0 арқылы кодталады. Ол схемалық түрде былай көрсетіледі.

Жадта бір биттен тұратын информацияны сақтайтын электрондық қарапайым
құрылғыны тригтер деп атайды (Тригтер – екі тұрақты кернеу бар не жоқ)
қалыпты күйде болатын электронды логикалық схема. Онда кернеудің бар екені
бірінші санының жоқ екені 0 санының ұғымына сәйкес келеді). Жад құрамы
триггерлерден басқа вентильдерден тұрады. Вентиль құрылымы әдеуір күрделі,
ол қарапайым арифметикалық және логикалық операциялар үшін пайдаланылады.
Компьютер жадының келесі сыйымдылық бірліктері ретінде,
килобайт(kilobyte), мегабайт (megabyte), гигабайт (gigabyte),терабайт
(terabyte) алынады. Оларды қысқаша Б(В), Кб(Kb), Мб(Mb), Гб(Gb), Тб(Tb) деп
белгілейді.

1байт = 8бит = бит,
1 Кбайт = 1024 байт = байт,
1 Мбайт = 1024 Кбайт = байт,
1 Гбайт = 1024 Мбайт = байт.

Кбайт, Мбайтөлшемдерінің шамалары мынадай: жазу машинкасвнда терілген бір
беттік (60х40) құжат көлемі 2 Кбайттан сәл көптеу, ал осындай 500 беттік
кітапқа енгізілген құжат көлемі шамамен 1 Мбайт.
Сонда:
• Компьютер жадының екі түрі бар: жедел жады, сыртқы жады. Жедел
жадыда әрбір байт нөмірленеді. Байттың нөмері оның адресі деп
аталады. Яғни, байт ең кіші адрестелетін сыйымдылық бірлігі.
Адрестердің мәндері ретінде нөлден басталатын бүтін оң сандарды алады.
Бірнеше байтты бірігіп сөз құрады. Сөз екі түрге бөлінеді: адрестік сөз,
машиналық сөз. Адрестік сөзде “ 0 ” мен “ 1 ” – ден тұратын адрестің
кескіні орналасады. Машиналық сөзде бір бұйрықты немесе амалды орындауға
қажетті дербес деректі немесе амалды орындап біткеннен кейін шығатын әрбір
нәтижені орналастыруға болады, яғни машиналық сөз компьютердің жұмыс
бірлігінде қолданатын сыйымдылық бірлігі болады. Адрестік сөздің
сыйымдылығы өскен сайын компьютер жадының сыйымдылығы да өсе береді, ал
машиналық сөздің сыйымдылығы өскен сайын компьютердің жұмыс істеу қуаты да
өсе береді.
Жедел жадыға адрестік сөзбен машиналық сөздің байланысы суретте
көрсетілген.

Оперативтік жад құрылымы
Информациялардың типтеріне сәцкес орындалатын амалдардың әр түрлі типтері
болады. Мысалы, символдық амалдар, сандық амалдар, логикалық амалдар
сияқты. Сондықтан амалдарды орындайтын құрылғыда амалдардың әртүрлі
типтеріне арналған бөліктер болады. Сонымен қатар, бұл құрылғының регистер
деп аталатын өте тез істейтін және сыйымдылығы аз меншікті жады болады.
Олардың саны бірнеше болуы мүмкін. Сондықтан оларды нөмірлейді немесе
олларға өздерінің атқаратын қызметтеріне бай ланысты атаулар беріледі:
- сыйымдылығы адрестік сөзге тең бұйрық адресінің регистрі – орындалатын
бұйрықтың адресі орналасады;
- сыйымдылығы машиналық сөзге тең бұйрық регистрі – орындалатын
бұйрықтың өзі орналасады;
- ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Қолданбалы программалық қамсыздандыру
Қолданбалы бағдарлама
Негізгі программалық құрылғылар
ҚОЛДАНБАЛЫ ПРОГРАММАЛЫҚ ЖАБДЫҚТАМАНЫҢ ЖАЛПЫЛАМА СИПАТТАМАСЫ
Информатиканы оқыту әдістемесі пәні және информатика мұғалімінің кәсіптік дайындығы, оның білім беру жүйесіндегі орны
Алгоритмдік тілдердің құрылымы
Жаңа ақпараттық (информациялық) технологиялар
Микропроцессорлық жүйелер құрылымы. Микропроцессор архитектурасы
Телекоммуникация саласында ақпараттық технологияларды пайдалану жағдайы
Кәсіпорынды басқаруда алдағы уақытта қолдану үшін ақпаратты қалыптастыру
Пәндер