Клавиатура буферін тазарту

Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 3
1 Клавиатура көмегімен басқару ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..5
2 Клавиатура буферін тазарту ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .7
3 Буфердегі символдарды тексеру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9
4 Символды енгізуді күту және оны экранға шығармау ... ... ... ... ... ... ... ... ... 11
5 Пернені басуды және экрандағы дыбысты (эхо) күту ... ... ... ... ... ... ... ... ...13
6 Символды күтпей.ақ қабылдау ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 15
7 Символдар жолын алу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...16
8 Қосқыш.пернелер статусын тексеру/орнату ... ... ... ... ... ... ... ... ... ... ... ... ..18
9 Енгізу процедурасын жалпы қолданысты клавиатурадан жазу ... ... ... ... ... 20
10 Клавиатура үзілісінің программасын қайта құру ... ... ... ... ... ... ... ... ... ... ...23
11 Жекеленген пернелердің программасын қайта құру ... ... ... ... ... ... ... ... ... .27
Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 28
Қолданылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..29
        
        МАЗМҰНЫ
Кіріспе …………………………………………………………………………….3
1 ... ... ... ... ... ... ... ... ... ... күту және оны ... Пернені басуды және ... ... (эхо) ... Символды ... ... ... ... ... ... ... ... ... процедурасын жалпы қолданысты клавиатурадан жазу
....................20
10 ... ... ... ... құру
...........................................23
11 Жекеленген пернелердің ... ... ... ... ... бар ... ... ... ... ... екі
категорияға бөлуге болады, оның біреуі ассемблер тілі де, ... ... ... тілдер қолданбалы тапсырмаларды ... және т.б.) ... ... ... ... және осы
тапсырмалардың алгоритмдік мазмұнын өзінде ... ... ... ... ... қатар, программалық құрылғылардың
режимдерінің және функционалдау ... ... ... ... ... ... ... тек қана машиналық түрде
көрсетілген ... ғана ... ... ... белгілермен
көрсетілген нақты командаларын көрсетеді. Ассемблер тілінің бұл ерекшелігі
оның мүмкіндіктері мен қолдану аймағын анықтайды.
Ассемблер тілінің ... да ... ... ... ... құралдары бар. Ол кез келген бір жағдайда программалау процесін
жеңілдетеді әрі жеделдетеді және ... ... ... ... ... ... жұмыс істеу аталған құралдармен жеке-жеке
танысуды қажет етеді. Бірақ қолданбалы мамандардың кең ... ... ... ... ... ... тілі ретінде пайдаланбаса ассемблер
тілінің әрбір бөлшектерін жеке ... ... ... ... ... ... ... жоспарда онша қиын емес) құруда ... ... ... оқып әрі ... білу керек, команда жүйесі
туралы және ... ... ... ... болуы жеткілікті және
тілдің бір жағынан процессор және ... ... ... ... және ашық ... болу ... ... ассемблер тілінде жазылған программалар (әрине егер
олар дұрыс жазылса) жоғары тиімділігімен соған сәйкес минималды көлемімен
және ... ... ... ... ... Бұл ... ... жұмысының жылдамдығы немесе оған шығындалатын жады шешуші мән
алған жағдайда кеңінен ... ... ... Кейбәр программалар
класын (мысалы, қатты құрылыммен ерекшеленетін ... ... құру ... ... тілін міндетті түрде программалау
керек. Сонымен қатар ассемблер тілін компьютпрлік ғылыми ... ... ... ... жүйесімен қосылған стандартты емес
аппаратураларды басқаратын ... ... ... ... бірге
математикалық немесе логарифдік сипаттағы модельдеуден, ... ... ... ... ... базасына қызмет көрсететін
программаларды жетілдіру үшін жоғарғы деңгейдегі тілдер қажет.
Ассемблер тілі алғашқы тексті жоқ ... ... ... ... ... Орындалатын программалардың шартты белгілерін ашу
деассемблер – қызметтік программалар көмегімен жүзеге асады. Ол ... ... ... ассемблер түріне түрлендіреді. Әрине мұндай
текстпен жұмыс істеу үшін пайдаланып ... ... ... ... ... ... ... ПК-де (дербес компьютерде) программа жазатын
барлық маманға міндетті.
Қазіргі таңда IBM PC ... ... ... ... ... екі ... бөлінеді. MS-DOS бір тапсырмалы текстік
жүйе және көп тапсырмалы Windows ... ... MS-DOS ... нақты режимдегі жүйе болып табылад; басқа сөзбен айтқанда ол ... ... ... ... егер ол Pentium ... ... да. Windows жүйесі – қорғаныс ... ... ... ... ... кеңінен пайдаланады. Жекелей
алғанда, көп тапсырмалылық және кеңейтілген адрестік кеңістік.
1 КЛАВИАТУРА КӨМЕГІМЕН БАСҚАРУ
Клавиатурада интельдік микропроцессор бар, ол ... ... ... және скан–кодты жүйелік платада орналасқан перифериясы бар А
микросхемалы интерфейсының портына жібереді. ... ... сан, ... ... ... әрбір пернеге берілген ... ... ... ... барлық машиналарда кодтың үлкен биты, перненің
басулы күйде тұруын (бит=1,басылу коды) немесе бос күйде тұруын ... ... ... Мысалы, перненің 7-битты скан-коды В-48, немесе 110000
екілік ... Бұл ... ... ... А ... 10110000 коды ... ... босатқан кезде – код 00110000. Осылайша, перненің әрбір басылуы
8255 микросхемасында екі рет регистірленеді. 8255 ... ... ... ... ... ... ... басқаша жұмыс
істейді, ол екі жағдайда да бірдей скан-код жібереді, бірақ оны пернені
босатқанда F0H ... ... ... А ... ... ... (INT 9) шақырылады.
Процессор лезде өз жұмысын тотатып, скан-кодты анализдейтін процедураны
атқарады. Қозғау ... ... қосу ... код алынғанда, статус
өзгерісі жадыға жазылып отырады. Барлық басқа ... ... ... ... ... ... жағдайда, скан-код алынып тасталынады)
символ кодына трансформирленеді. Әрине, ... ... ... алу ... «а» немесе «А»?), процедура алдымен қозғау немесе қайта ... ... ... ... кейін енгізілген код клавиатура
буферіне орнығады, ол енгізілетін 15 символға дейін есте ... ... ... ... ... ... ... қорытуға бос болмағанша.
Символдық кодтардың екі типі бар, ASCII кодтары және ... ... – бұл ... ... олар IBM PC үшін ASCII
кодтарының кеңейтілген жиынтығына сәйкес келеді. IBM PC үшін бұл ... ... ... ... ... символдарын кіргізеді, сонымен қатар
псевдографиканың әріптері мен символдарының арнайы тізбегін. ASCII кодтары
сонымен қатар өзіне 32 ... ... ... олар ... ... сияқты шығарылмай, периферийлік құралдарға командаларды ... ... ... ... ... ... сәйкес символ бар, ол
дисплейлік жадының тура адресациясын қолдану арқылы дисплейге шығарылуы
мүмкін.( ... ... ... 128 ... ғана ... ... болып табылады, өйткені ASCII – бұл ақпаратпен ... ... ... ... аббревиатурасы. Бірақ программисттер әдетте
ASCII кодтары ... ... ... ... ... үшін ... ... 8» «Backspace» пернесіне жатады, ал «8» - бұл ASCII 56 ... ... ... ... ... кодтар, пернелерге ... ... ... ... көрсететін ASCII символы
болмайды,функционалдық ... ... Alt ... бар ... ... ... ұзындығы 2 байт, бірінші байт ылғи ASCII ... байт – ... код ... 0:30 коды Alt-A-ны білдіреді.
Бастапқы ноль программаға берілген кодтың ASCII немесе кеңейтілген кодтар
жиынтықтарына ... ... ... ... және ... ... ... комбинациясы бар. Бұл комбинациялар , және , ... АТ үшін және PCjr ... ... ... ... ... сұраныс бермей тұрып кавиатура буферін ... ... ... ол сол ... дейін буферде жиналып қалған басқа
пернелердің басылуын болдырмау керек. Буферде пернелердің 15 рет ... ... ... бұл олардың бірбайтты ASCII немесе екібайтты
кеңейтілген кодтар болуына ... ... ... ... ... ... жадының екі байтын апаруы қажет. Бірбайтты кодтар үшін бірінші
байтында ASCII ... ...... скан-коды болуы керек.
Кеңейтілген ... үшін ... ... ASCII 0 болады, ал ... ... ... әдетте перненің скан-кодымен сәйкес келеді, бірақ
әрқашан емес, өйткені кейбір ... әр ... ... ... ... ... комбинирленуі мүмкін.
Буфер циклдық кезек тәрізді болады, оны тағы FIFO ... ... ... ... ... деп те ... ... буферлер сияқты ол жады
адрестерінің үздіксіз облысын алып жатыр. Бірақ онда “жол ... ... ... белгілі орны жоқ. Оның ... екі ... ... ... ... ... символдар жолдарының бас және аяқ
позицияларын сақтап тұрады. ... жаңа ... ... ... ... жаңа ... ... игнорирленеді,
бұл жағдайда клавиатура үзілісі динамик арқылы гудок шығарады.
Айта кету керек, программаның символды ... ... ... мұны ... ... алдында дұрыс жасаса, онда басқарудың MS
DOS-қа қайтарылу барысында бұл символдар есепке ... ... ... түрде енгізілуі мүмкін.
21Н үзілісінің ОС функциясы клавиатурадан 1,6,7,8 және А ... ... ... ... ... ... клавиатура буферін тазартады. Ол
үшін енгізу функциясының нөмерін AL-ге орналастыру қажет:
Орта жағдай
;---пернені басуды күту алдында буферді ... AH, 0CH ;DOC 0CH ... ... AL, 1 ... ... функциясын таңдаймыз
INT 21H ... ... ... күтеміз
Төмен жағдай
Жоғарғы жағдайдағы мысалдағы сияқты, аяғындағы көрсеткіш мәнін
басындағы көрсеткіш мәніне теңестіреміз.Клавиатура ... әсер ... үшін ... ... ... уақытына тоқтатамыз:
;---бас және аяққа көрсеткіштер мәнін теңестіреміз
CLI ... ... AX, AX ... ... ES, AX ... сегмент – жады басынан
mov AL, ES : [41AH] ... ... ... ... ES : [41CH] , AL ;оны ... ... ... ... ... ... ... ... ... енгізудің болу-болмауын клавиатура буферінен символдарды
өшірмей-ақ тексеруге болады.
Орта жағдай
21Н үзілісінің 0ВН ... AL ... 0FFH ... ... ... бір немесе одан да көп символдар және 0мәні болғанда,
буферде ештеңе болмағанда:
;---буферде символдың бар ... ... AH, 0BH ... ... 21H ;21Н ... ... AL, OFFH ... ... ... ... буфер бос болмаса орын ауыстыру
BIOS 16H үзілісінің 1 ... тура ... ... ... ... ... буферде қандай символ бар екенін көрсетеді.
(ZF) ноль жалауы ... ... егер ... бос ... және орнатылады,
егер буферде символ болса.Соңғы жағдайда буфер басындағы символ көшірмесі
АХ-ке орнатылады, бірақ символ ... ... ... ... үшін символдың коды AL-ге қайта қайтады, керісінше кеңейтілген
кодтар үшін ASCII 0, код ... ... ... бар ... ... AH, 1 ... нөмері
INT 16H ... бар ... ... ;ZF = 1 болғанда ауысу
;---символ бар – ... ... ... AL, 0 ;бұл ... код па?
JE EXTENDED_CODE ... ... ... онда басқа тармаққа
Төмен жағдай.
Жоғары дәрежедегі мысалдағы сияқты көрсеткіштерді салыстырамыз:
;---басындағы және аяғындағы көрсеткіштерді салыстырамыз
mov AX,0 ... ... ... ES, AX ... ... AL, ES: [41AH] ;бір ... ... AH, ES: [41CH] ... ... ... AH,AL ... ... ... ... тең ... онда шығу ... СИМВОЛДЫ ЕНГІЗУДІ КҮТУ ЖӘНЕ ОНЫ ЭКРАНҒА ШЫҒАРМАУ
Әдетте енгізілуші символдар экранға не басылып тұр ... ... ... ... автоматикалық дыбыстың (эхо) экранға шығуы керек
емес. Мысалы, пернені басу ... ... ... ... ... алдымен
енгізілетін символдарды экранға ... ... ... тексеру
қажет.Әлбетте, кеңейтілген кодтарды өңдейтін кез-келген ... ... тап ... ... ... бұл ... осы кодтардың
(ASCII 0)бірінші байты, символдардың арасынан бос орын ... ... ... ... 7 ... ... ... енгізілуін күтеді,
егер клавиатура буфері бос ... ал ол ... ... ... ... ... 8 функциясы Ctrl-Break-ті анықтайды, ал 7 функциясы
оған әсер етпейді. Екі жағдайда да ... AL-ға ... ... AL-да ... ... кеңейтілген код алынады. Үзілісті қайталағаннан кейін AL-да
кеңейтілген ... ... ... пайда болады.
;---енгізілген символды аламыз
mov AH, 7 ... ... 21H ... енгізілуін
күтеміз
CMP AL, 0 ... ... ... ... ;иә ... ... ... т.с.с.
;---кеңейтілген кодтарды өңдеу процедурасы
EXTENDED_CODE: INT 21H ... ... ... AL, 75 ... тексереміз
JNE ... жоқ ... онда ... тексеру
JMP CURSOR_ LEFT;егер иә ... ... CMP AL, 77 ... ары ... т.с.с.
BIOS процедураны MS DOS функциялары сияқты мүмкіндіктермен қамтамасыз
етеді. 0-ді АН-та орналастырып, 16Н үзілісін шақырамыз. ... ... ... және оны AL-ға ... Бұл ... кеңейтілген кодтар
да, үзіліс те өңделеді. Егер AL-да 0 болса, онда АН-та кеңейтілген ... ... ... ... ... басылуын күтеміз
mov AH,0 ... ... ... нөмері
INT 16H ... ... ... AL, 0 ... ... ... ... ;иә ... ... ... жағдайда
символды AL-ға
;---кеңейтілген кодтың өңделу процедурасы
EXTENDED_CODE: CMP AH, 75 ... ... ... аламыз
;т.с.с.
5. ПЕРНЕНІ БАСУДЫ ЖӘНЕ ЭКРАНДАҒЫ ДЫБЫСТЫ (ЭХО) КҮТУ
Көрсеткіштер мен мәтінді енгізер кезде, енгізілетін ... ... ... беріледі. Мұнда каретканың қайтарылуы немесе ... ... ... сәйкес орын ауыстыруларына жіберіледі, олар осы
кодтарға ... ASCII ... ... ... Дыбыстың берілісі
алдынала курсордың орнатылған позициясында болады және мәтін ... ... жол ... ... ... көшіріледі. Келесі жолға көшіру
арнайы кодты қажет етпейді, өйткені символдар дисплейдің буферлі жадының
келесі ... ... бұл ... ... ... ... ... кіргізетін бір ұзын жол түрінде болады.
Орта жағдай.
21Н үзілісінің 1 функциясы символды енгізуді ... ... ... бос ... одан ... оны ... өтпелі позициясында
экранға шығарады. Ctrl-Break өңделеді, сондықтан Ctrl-Break-тің өңделу
процедурасының ... ... ... ... AL-ға ... кодты енгізу барысында AL-да ASCII 0 бар. AL-да екінші ... ... алу үшін ... ... ... символдың алынуы
mov AH, 1 ... ... 21H ... ... күтеміз
CMP AL, 0 ... ... ... ;иә ... онда арнайы процедураға
;керісінше символ
AL-да болады
;---кеңейтілген кодтарды ... ... 21H ;AL-да код ... AL, 22 ... ... ... C_R ... жоқ болса,
онда келесіні тексеру
JMP CURSOR_RIGHT ... иә ... онда ... AL, 75 ;... ... ... толығымен пернесін игнорирлейді. ... ... ... ... ... курсорды бір позицияға солға
жилжытады, бірақ бұл позицияда болатын символ өшірілмейді. өтпелі
жолдың бірінші ... ... орын ... шақырады (жолды
автоматты ауыстыру жоқ).
6. ... ... ... уақытта жұмыс істейтін кейбір программалар перненің басылуын
тоқтап және тоса алмайды; олар сол моменттерде ғана клавиатура ... ... бұл ... үшін ... ... ... Мысалы,
клавиатурадан енгізуді күту барысында ... ... ... ... барлық әрекеттерді тоқтатады.
Орта жағдай.
21Н үзілісінің 6 функциясы – бұл енгізілген символды ... ... ... Бұл ... ... ... ... және Ctrl-Break-
ті түсіндірмейді. DL-да үзілісті шақырмас бұрын, оның ішінде 0FFH орнатылуы
қажет. Кері жағдайда 6 функциясы қарама-қарсы мақсатпен ... ... ... орналасқан курсордың өтпелі позициясында символдарды басады. Ноль
жалауы 1-де орнатылады, егер ... ... бос ... Егер ... ол AL-ға ... ASCII 0 коды кеңейтілген ... және код ... алу үшін ... ... қажет.
mov AH, ... ... ... DL, ... ... сұраныс
INT ... ... NO_CHAR ... егер ... ... AL, ... кодқа тексеріс
JE EXTENDED_CODE ;иә болса, ... ASCII ... ... INT 21H ... кодтың
нөмерін аламыз

;AL-дегі код нөмері
7 ... ... ... ... ... 0АН функциясы 254 символға дейінгі ұзындықты жолды
енгізуге ... ... ... ... Бұл ... символдардың енгізілуін каретка қайтарылымдарының пернесі
басылмайынша жалғастыра ... DS:DX жол ... ... ... Бұл ... ... бірінші байт осы жолға арналған байттар
санынан тұрады. Жол енгізіліп болғаннан кейін екінші байт нақты шығарылған
символдар ... ... ... өзі ... ... ... ұзындықты жол жеткілікті жадымен қамтамасыз етілуі ... ... қоса екі байт жол ... үшін және бір қосымша байт
каретканы қайтару үшін. ... ... ... жол ... орнатқанда,
1-ді каретканы қайтару үшін қосуға ұмытпау керек. Каретканы қайтару коды ... 13- ... ... символы ретінде енгізіледі, бірақ ол функцияның
жол дескрипторының екінші ... ... ... ... ... жолды алу үшін 53 байт жадыны ASCII 51-
дің бірінші байтына орналастыру ... 50 ... ... болғаннан
кейін екінші байтта ASCII 50 болады, ал 53-ші байт ASCII 13 ... ... DB 53 DUP (?) ;жол үшін ... 50 ... ... ... DX, STRING ;DS:DX жол ... BX, DX ;BX-та жол ... AL, 51 ;жол ... (+1 ... [BX], AL ... 1-ші
байтына жібереміз
mov AH, 0AH ... ... 21H ... ... ... ... AH, [BX] + 1 ... АН ... ... MS DOS ... редактирлеу мүмкіндіктерін
қолдануға болады. Забой немесе “бағыт-солға” пернелерін басу ... ... ... қатар оны жадыға орналастырады. Табуляция пернесі
жұмыс істейді, кеңейтілген кодтар ... бос ... ... қайтарылуы). Терминалда оң жақ шетке жеткенде жол келесі жолға
орнын ауыстырады, ал оң жақтағы ... ... ... экран бір жолға
жоғары жылжиды. Енгізілетін символдар жолға қалдырылған орыннан көп ... ... ... ... ... ... DOS ... алудың басқа тәсілін де ... ... ... (эхо) терминалға шығарылмайды. 21Н үзілісінің 3FH функциясы – ... ... ... ол көп ... дисктік операцияларда
қолданылады. Ол белгілі бір файл дескрипторын қажет етеді (file handle), ... ... ... үшін операциялық жүйелерде қолданылады.
Клавиатура үшін 0 дескрипторы қолданылады және ол ВХ-та орналасуы ... ... ... ... ... ... керек, ал СХ-ке – жолдың
максималды ұзындығын орналастырып, функцияны шақырамыз:
;--- жолды ... ... AH, 3FH ... нөмері
mov BX, 0 ... ... DX, ... ... енгізудің буферіне көрсеткіш
mov CX, 100 ... ... 21H ... ... ... каретканы қайтару пернесін басумен аяқталады және DOS ... екі ... ... ... ... және ... жіберу (ASCII 13
және ASCII 10). Осы қосымша символдарға байланысты жол ұзындығы 100 ... ... ол 102 байт ... алып жатуы мүмкін. Енгізілген ... ... ... және бұл мән ... екі ... қосады.
8 ҚОСҚЫШ-ПЕРНЕЛЕР СТАТУСЫН ТЕКСЕРУ
0040:0017 мен 0040:0018 жады бөліктерінде орналасқан екі байтта
биттар бар, олар ... ... және ... ... түрде көрсетеді:
Бит ... ... бит=1 ... 7 Insert ... ... ... Caps ... режимі қосылды
5 Num ... ... ... Scroll ... ... ... ... ... Ctrl ... сол Shift ... оң ... ... 7 Insert ... Caps Lock ... Num Lock ... ... Scroll Lock ... Ctrl-NumLock ... ... ... ... ... бұл статус биттарын лезде жаңартып отырады,
қосқыш-пернелердің бірі басылған кезде, ... ... ... ... да. Бұл Ins пернесі үшін де анық, ол осы 8 ... ... ... ... ... ... болып табылады (Ins
статусын орнату буферде символдарға орын болмаса да ... Айта ... ... ... бит 3 1-ге ... ... кешігу режимі
жұмыс істеген кезде; бұл жағдайда программа уақытша ... ... бұл бит ... ... ... ... ... жағдайын басулы пернелерді
интерптирлемес бұрын тексереді, ... осы ... ... ... оның ... ... түрде сәйкес пернеге басумен бірдей
болады.
Орта жағдай.
16Н үзілісінің 2 функциясы ... ... ... ғана ... ... ... тиімді ақпараттың көп бөлігі бар 0040:0017 адресі бойынша болады. ... ... ... ... ... AH, 2 ... ... 16H ... ... ... AL6 ... ;7 битын ... ... ... 0 ... қосылады
Төменгі жағдай.
Берілген мысалда қоюшы режимді орнатамыз, ... ... ... ... ... ... 7битын орнату арқасында.
SUB AX, AX ... ... ... ES, AX ... ... AL, ... ... бит 7-ні ... ES: [417H], AL ... ... ... ... ... ЖАЛПЫ ҚОЛДАНЫСТЫ КЛАВИАТУРАДАН ЖАЗУ
Клавиатурамен қолданылатын кодтар жүйесі ... ... ... 1 ... 2 байтты ұзындықты болады
және кодтар ұзындығы мен атқару қызметтері арасында сәйкестіктер болмайды,
символды белгілеу ... ... ... ... ... ... код бере алмайды, сондықтан оларды айыру үшін ... ... ... ... ... енгізу роцедурасын жалпы ... жазу ... ... ... ... жағдай.
Бұл мысал алдыңғыдан төрт меншікті жағдайды Ctrl-H, -1, -M, -[
қарастыру әдісімен ерекшеленеді. Мұнда скан-код тексеріледі. Бұл әдіс ... ... ... ... ... табылады, өйткені скан-код
клавиатура буферінде сақталынады, ал ... ... ... өзгертілуі мүмкін.
;---басылған перненің кодын алу және оның типін анықтау
NEXT: mov AH, 0 ;BIOS ... ... 16H ... кодты
аламыз
CMP AL, 0 ... ... ... ;иә ... онда ... ... AL, 32 ... символға
тексеру
JL CONTROL_CODE ;иә болса, онда арнайы процедураға
CMP AL, 65 ... ... ... NEXT ... кірмесе,
онда келесіні аламыз
CMP AL, 123 ;
JL NEXT ... AL-да ... ... ;ES:DI ... есте ... AH, 2 ... ... функциясы
mov DL, AL ... алд. ... ... 21H ;оны ... NEXT ... ... ... кодтарды анализдейміз
CONTROL_CODE: CMP AL, 13 ;ASCII 13 ... TAB ... ... тексеру
CMP AH, ... ... ... C_M ... Ctrl-M ... ... ... қайтуын
қорыту
JMP ... ... ... CALL CTRL_M ... NEXT
;келесі ... ... CMP AL, ... ... AL, ... ... тексеру
.
.
REGECT: JMP NEXT ... ... ... ... (AH-та кодтың 2-ші байты):
EXTENDED_CODE: CMP AH, 71 ... ... ... REGECT ... онда ... ... AH, ... ... ... ... ... онда ... ... ... ... ... бар, соны анализдейміз:
CMP AH, ... ... ... ... AH, ... ... ... ... CALL ... ... процедураны
шақыру
JMP ... ... ... CALL ... ... ... ... ... ... ... ҮЗІЛІСІНІҢ ПРОГРАММАСЫН ҚАЙТА ҚҰРУ
Клавиатура микропроцессоры скан-кодты 8255 микросхемасының А
портына орналастырғанда, 9 үзілісі шақырылады. Бұл ... ...... ... ... ... скан-кодын түрлендіру, және ... ... ... ... үзілісінде үш негізгі қадамды
ерекшелендіруге болады:
1. Скан-кодты оқу және клавиатураға ... ... ... ... код ... ... қосқыш-пернелер статусының регистр
құрылғысына түрлендіру.
3. Перне кодын клавиатура буферіне орналастыру.
Төменгі жағдай.
Эффектті ... ... ойды ... ... Бұл ... ... ... нұсқалары көрсетілген.
;---берілгендер сегментінде
TABLE DB 16 DUP (0) ;1-ші 16 ... ... ... ... ... ... ;клавиатураның ортаңғы
қатары
DB ... ... ... 16 DUP (0) ... ... бос ... ... ;сол символдар жоғарыда
DB ... ... ... ... басында үзілісті орнатамыз
CLI
;үзілістер тыйымы
PUSH ... ... AX, SEG ... ;DS:DX ... ... DS, ... ... DX, OFFSET ... ... AL, ... ... ... AH, 25H ... ... ... ... ауыстырамыз
POP ... ... ... ... түрде қалып программа жалғасады.
;---клавиатура үзілісі
NEW_KEYBOARD PROC FAR ... ... ... ... BX ... CX ... DI ... ES ... алып ... сигналын жібереміз
IN AL, 60H ;А ... ... AH, AL ... ... AX ... ... AL, 61H ;В ... күйін оқимыз
OR AL, ... ;бит 7-ні ... 61H, AL ... ... ... AL, 01111111B ;бит 7-ні ... 61H, AL ;В ... ... қайтарамыз
;---ES BIOS облысының берілгендерін көрсету керек
MOV AX, 40H ... ... ES, AX ... AX ... ... пернесін тексеру
CMP AL, 42 ;сол жақ ... ... KEY_UP ;жоқ – ... қараймыз
MOV BL, 1 ;иә - ... ... ES : [17H], BL ... ... ... QUIT ... шығу
KEY_UP: CMP AL, 170 ;сол жақ ... ... NEXTKEY ;жоқ – ... ... BL, ... ;иә - ... ... ES : [17H], BL ... ... ... QUIT ... ... ... ... ... символдық перне – скан-кодты интерпретирлейміз
TEST AL, 10000000B ... ... QUIT ;иә ... ... BL, ES: [17H] ... ... ... BL, 00000011B ;қозғау ... ... ... ;жоқ – ары ... AL, 100 ;иә - ... ... MOV BX, OFFSET TABLE ... ... TABLE ... ... AL, 0 ... QUIT ... онда ... коды ... буфері толған-толмағанын тексереміз
MOV BX, 1AH ... ... ... CX, ES: [BX] ... мәнін
аламыз
MOV DI, ES: [BX] + 2 ;аяқ ... ... CX, 60 ... ... HIGH_END ;иә - ... ... ... көрсеткішін ұлғайтамыз
INC CX ... CX, ... ... салыст.
JE QUIT ... ... ... GO_AHEAD ... ... CMP DI, 30 ... ... QUIT ... ... ... ... – оған ... ... MOV ES: [DI], AL ... аяқ позициясына
орналастыр.
CMP DI, 60 ... ... NO_WRAP ;жоқ ... ... DI, 28 ... ... = 28+2
NO_WRAP: ADD DI, 2 ;аяқ ... ... ... ES: [BX] + 2, DI ;оны ... ... ... POP ... қалпына келтіреміз
POP ... CX ... BX ... AX ... AL, 20H ... ... береміз
OUT 20H, AL ... ... ... ... ПЕРНЕЛЕРДІҢ ПРОГРАММАСЫН ҚАЙТА ҚҰРУ
Пернелердің программасын қайта құру ... ... оны ... ... ... ... тұр. Сол ... дейін, программа басулы перне кодын
қабылдағанда, ... ... ... ... интерпретирлеп тастайды
және оны алдынала анықталған ASCII немесе кеңейтілген кодқа ... ... MS DOS 2.0 ... ... ... ... ... амалдары бар. Бұл амалдар енгізу тек қана DOS функциясы арқылы
клавиатурадан енгізумен ғана қабылдануы барысында өз жұмысын атқара алады ... 16H ... ... ... ... ... ... береді.
Орта жағдай.
21Н үзілісінің 9 функциясын шығарудың стандартты құралына жолды
жіберу үшін қолданамыз. DS:DX ... ... ... ... ... және жол $ (24H) символымен аяқталуы қажет. Мұнда F2 (0;60) алдынала
анықталуы оның Del (0;83) ... ... ... үшін ... ... DB ... анықтауды өзгерту үшін
LEA DX, CHANGE_KEY ;DS:DX ... ... ... AH, 9 ... ... 21H ... ... тілі алғашқы тексті жоқ программаларды зерттейтін негізгі
құрал болып табылады. Орындалатын программалардың ... ... ...... ... ... ... асады. Ол орындалатын
программалық текстік кодты ... ... ... ... мұндай
текстпен жұмыс істеу үшін пайдаланып ... ... ... ... ... ... меңгеру ПК-де (дербес компьютерде) программа жазатын
барлық маманға міндетті.
Ал мен өз курстық жұмысымда ASSEMBLER ... ... ... ... ... жолымен таныстым. Бұл ... ... ... ... ... клавиатура буферін
тазарту, буфердегі символды ... ... ... күту және ... шығармау, пернені басуды және экрандағы дыбысты (эхо) ... ... ... ... ... алу, қосқыш-пернелер статусын
тексеру/орнату, енгізу процедурасын ... ... ... ... ... ... ... құру, жекеленген пернелердің
программасын қайта құру жолдары қарастырылған.
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР
1. Интернет
2. Юров В. ... – СПб: ... ... 2000. – 624 бет: ил.
3. Нортон П. «Персональный компьютер фирмы IBM и ... ... ... ағл. ... – М.: Радио и связь, 1991. – 416 бет: ил.
4. Пустоваров В.И. «Язык Ассемблера в программировании информационных и
управляющих ... – М.: ... К, ... 1997. – 304 бет: ... ... К.Г. ... ... Ассемблера» - М.: Радио и связь, 2000. –
288 бет: ... ... Қ.С., ... А., Бөрібаев Б., т.б. «Қазақша-оысша, орысша-
қазақша терминологиялық сөздік. Информатика және ... ... ... ... 1999. – 297 ... ... С.А., ... Н.Р. «Информатика мен есептеуіш техника
терминдерінің орысша-қазақша сөздігі»:жоғары және орта оқу орындарына
арналған, – ... ... 1993. – 176 ... ... ... «MS DOS для пользователя» - ... ... бюро ... ... А. «MS DOS ... - ... 1995.

Пән: Информатика
Жұмыс түрі: Курстық жұмыс
Көлемі: 23 бет
Бұл жұмыстың бағасы: 500 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
1. Ұңғының түп маңы аймағын құм тығынынан тазарту» «2. Ұңғының түп аймағын фенолформальдегиді шайырмен бекіту26 бет
Алматы қаласының «Тоспа Су» тазарту аэростанциясы58 бет
Ағынды суларды алдын ала тазарту11 бет
Ақаба суларды тазарту әдістері6 бет
Ақтөбе қаласы май зауытындағы май тазарту процесінің автоматтандырылуын жобалау25 бет
Нанотехнологияларды пайдаланып ауыз суды тазартудың қазіргі заманғы әдістері4 бет
Полимерлі материалдарды биотехнологияда қолдану: антибиотиктер жасау, өндірістік ағындарды тазарту8 бет
Суды тазарту жолдары8 бет
Суды темірден тазарту17 бет
Табиғи және ақаба суларды тазарту қондырғылары6 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь