Сандардың түрлендіруі


Жұмыс түрі: Курстық жұмыс
Тегін: Антиплагиат
Көлемі: 18 бет
Таңдаулыға:
Мазмұны:
1 Кіріспе . . .
2 Сандардың түрлендіруі . . .
2. 1 Сандарды консольдан енгізу . . .
2. 1. 1 0 - 99 диапазонындағы бүтін ондық сандарды енгізу . . .
2. 1. 2 0 - 4 294 967 295 диапазонындағы бүтін ондық сандарды енгізу . . .
2. 1. 3 0 - 999 999 999 999 999 999 диапазонындағы бүтін ондық сандарды енгізу . . .
2. 1. 4 0 - ∞ диапазонындағы бүтін ондық сандарды енгізу . . .
2. 2 Заттық сандарды енгізу . . .
2. 3 Сандарды консольға шығару . . .
2. 3. 1 Он алтылық сандарды шығару . . .
2. 3. 2 0 - 99 диапазонындағы бүтін ондық сандарды шығару . . . 2. 3. 3 0 - ∞ диапазонындағы бүтін ондық сандарды шығару . . .
2. 3. 4 0 - 999 999 999 999 999 999 диапазонындағы бүтін ондық сандарды шығару . . .
2. 4 Заттық сандарды шығару . . .
Қорытынды . . .
Қолданылған әдебиеттер тізімі . . .
А Қосымшасы . . .
Кіріспе
Әрбір нақты есеп үшін компьютермен рұқсат етілген екі әртүрлі көрініс арасындағы сандардың түрленуі бірнеше әдіспен орындалуы мүмкін. Сандық ақпаратты өңдеудің есебін эффектті түрде шешу үшін программисттер осы әдістердің барлығын біліп, нақты проблеманы шешу үшін қайсысы қолайлы екендігін анықтап қолдануы тиіс. Ассемблерге арналған көптеген бастамалар нақтылықтың осы немесе басқа дәрежесі бойынша сандардың түрлену проблемасын қарастырады. Сондықтанда бұнда жаңа нәрсе ойлап енгізу қиын болғандықтан, бұл тақырыптың ассемюлерде қолданбалы программалау сұрақтарына арналған кітаптың бір бөлігін алуға құқығы бар. Жалпы жағдайда сандық ақпаратты енгізу және шығару мәселелерін шешуге және компьютерде ішкі көрініс бойынша оның түрленуіне жүйелі түрде қарау мүмкіншілігі жасалған.
Мысалға, «Программалы - аппаратты архитектура МП ІА32» оқулығының екінші бөлімінде Pentium ІІІ/4 процессорымен рұқсат етілген келтірілген мәліметтер типтерінің классификациясын есімізге түсірейік. Біздің жазбамызға олардың тек екі үлкен топқа бөлінетіндігі маңызды - бүтін санды және заттық типті мәліметтер. Соған сәйкес бүтін санды мәліметті екі топтамаға бөлуге болады: екілік және екілік ондық (ВСД - сандары) . Осыдан практикада талап етілген сандық және символдық ақпаратты түрлендіру бағытын қалыптастырамыз.
Консольмен айырбастау кезінде келесідей түрлендірулер рұқсат етіледі:
- ондық бүтін сандар символдық түрде ↔︎ ішкі екілік көрініс;
- он алтылық бүтін сандар символдық түрде ↔︎ ішкі екілік көрініс;
- екілік бүтін сандар символдық түрде ↔︎ ішкі екілік көрініс;
- ондық бөлшек символдық түрде ↔︎ заттық сандар түріндегі ішкі көрініс;
- бөлшектік он алтылық сан символдық түрде ↔︎ заттық сандар түріндегі ішкі көрініс;
- бөлшектік екілік сан символдық түрде ↔︎ заттық сандар түріндегі ішкі көрініс;
- Ішкі көріністер арасындағы өзара түрлену:
- екілік сан ↔︎ екілік ондық сан;
- екілік ондық сан ↔︎ заттық сан;
- екілік заттық сан ↔︎ заттық сан.
Осы түрленулердің кейбіреулерінің орындалуы әдістерін қарастырайық. Біздің жазылуымызда сандардың барлығы оң болсын деп алайық.
2 Сандардың түрлендіруі
2. 1 Сандарды консольдан енгізу
Бұл бөлімде сандарды консольдан символдық түрде енгізілген ішкі екілік көрінісі бар ондық бүтін және заттық сандарды түрлендіру әдістерін қарастырайық. Бүтін ондық сандардан бастайық. Өйткені практикада бұл әдістің сұранысы үлкен. Ары қарай заттық сандарды түрлендіру мәселесі қарастырылады.
Ішкі екілік көріністе символдық түрден ондық бүтін санға ауыстыру және кері әсерін таңдау берілген мәндердің мүмкіндік диапазонына байланысты анықталады. Екі әдісті талдайық.
2. 1. 1 0 - 99 диапазонындағы бүтін ондық сандарды енгізу.
0 - 99 диапазонындағы сандар үшін ондық символдық және екілік формадағы арасындағы өзара түрлену екілік - ондықтарды (ВСД - сандары) көбейту және бөлу командаларымен орындауға болады - ААМ және ААД.
Программа: prg 01_01. asm
- 0 - 4 294 967 295 диапазонындағы бүтін ондық сандарды енгізу
Егер берілген мән 0 - 99 диапазонынан шығып тұрса, онда кейбір жағдайдың туу мүмкіндігін ұмытпау қажет, онда ондық енгізілетін санның мәні процессордың арифметикалық командаларымен ұсталынатын бүтін санды мәліметтер типінің форматымен рұқсат етілген диапазоннан үлкен болуы мүмкін. Pentium ІІІ/4 үшін бұл 8, 16 және 32 бит.
Бұл форматтар үшін мәндер диапазоны (белгісі жоқ мәндер) :
- 8 бит өлшемді операнд үшін - 0 - 255;
- 16 бит өлшемді операнд үшін - 0 - 65 535;
- 32 бит өлшемді операнд үшін - 0 - 4 294 967 295;
Көріп отырғандай максималды сан өте үлкен де емес. Біріншіден, біз жоғарыда көрсетілген диапазондағы мәндерді түрлендіру әдістерін қарастырайық. Ол үшін консольдан енгізілетін символдық көріністі ондық сандарды түрлендірудің екі әдісін ұсынуға болады: ондық полиномның көмегі арқылы және мәліметтерді өңдейтін процессордың мүмкіндіктерін қолдану арқылы.
Ондық полином әдісінің негізінде берілген санды осы сандардың позицияларына сәйкес келетін ондық санның құраушылары 10 санының дәрежесіне қарағанда ондық санның суммалық көрініс мүмкіндігі жатыр:
А 10 ═ а n-1 * 10 n-1 + а n-2 * 10 n-2 . . . + а 1 * 10 1 + а 0 * 10 0
Берілген полиномдық есептеуді Горнер сұлбас бойынша орындаған дұрыс:
А 10 ═ ( . . . ( 0 + а n-1 ) * 10 + а n-2 ) *10 + . . . + а 1 ) *10 + а 0
Мысалы, 3405 саны осы теңдеу бойынша былай көрінеді:
3405 ═ 3 * 10 3 + 4 * 10 2 + 0 * 10 1 + 5 * 10 0 ═ (((0 + 3) * 10 + 4) * 10 + 0) * 10 + 5
Төменде 0 - 4 294 967 295 диапазонындағы символдық түрдегі бүтін ондық санды эквивалентті екілік көрініске түрлендіру программасы келтірілген. MS DOS - та санды перне тақтадан енгізу үшін 3fh функциясы қолданылады. Ол AL регистрында нақты енгізілген символдырдың санын қайтарады.
Программа: prg 01_02. asm
- 0 - 999 999 999 999 999 999 диапазонындағы бүтін ондық
сандарды енгізу
Ондық сандарды түрлендірудің екінші әдісі бірсыпыра экзотикалық болса да, жұмысқа жарамды болып табылады. Берілген әдіс процессордың кейбір командаларының ерекшеліктерін қолдануды болжайды.
Процессор ұстанатын мәліметтер форматын санайық:
- үш форматтағы екілік бүтін сандар - 16, 32, және 64 бит;
- буылған бүтін ондық (ВСД) сандар - максималды ұзындық - 18 буылған ондық сан (9 байт) ;
- үш форматтағы заттық сандар - қысқада (32 бит), ұзында (64 бит), кеңейтілгенде (80 бит) ;
Біз үшін бүтін екілік және буылған ондық (ВСД) сандардың форматтары қызығушылық тудырады, сол сияқты процессордың стегінің шыңы мен осы мәндерді алмастыратын командалар. Перне тақтадан енгізілген бүтін ондық санды түрлендіру процесі төмендегі программада көрсетілген. Айта кететініміз, түрлендірудің бұл әдісі мәндер диапазонын 0 - 999 999 999 999 999 999 диапазонға дейін кеңейтуді рұқсат етеді. Мұнда А қосымшада кө
Программа: prg 01_03. asm
Келтірілген программа 0 - 10 18 - 1 диапазонындағы кез келген мәнді түрлендіре алады. Диапазонның жоғарғы шегіне сәйкес келетін максималды екілік өлшемнің сандық мәнін белгілеу қызықты, бұл - +0de0b6b3а76316. Ол бізге консольға шығару үшін кері түрлендіруді - екіліктен ондық көрініске, қарастырғанда қажет болады. Керекті разрядтағы мәнді шығарып алуға болады, егер label директивасымен бірге берілген программаның мәтініне сәйкес идентификаторлар енгізілсе (біздің кодтау сегментінде орындалған) :
string bin byte label byte
string bin word label word
string bin dword label dword
string bin dq 0 ; нәтиже үшін алаңэквивалентті екілік көрініс
- 0 - ∞ диапазонындағы бүтін ондық сандарды енгізу
Ерікті разрядтағы ондық санды символдық көріністен екілікке түрлендіру үшін көп еңбектену керек. Осы жұмыстың негізі ерікті разрядтағы сандар үшін арифметикалық операцияларға арналған материалдарда болуы керек. Сондықтан біздің іс - әрекетіміз түрлендіру программасын құру кезінде конструкторлы ойынды еске салады, бұнда дайын компоненттерден жаңа өнім дайындалады.
Ерікті разрядтағы ондық санды символдық көріністен екілікке түрлендіру программасының берілген компоненттері N - байтты санды өлшемі М - байтты санға көбейту макрокомандасы және белгісі жоқ N - байтты санды қосу программасы болып табылады. Екілік эквивалентті есептеу алгоритмі жоғарыда көрсетілгендей болады - полиномды Горнер сұлбас бойынша есептеу. Төменде оның программаларын іске асыратын варианттар келтірілген. Байттардың орналасу нәтижесі - сұлба бойынша, Intel процессоры бойынша нақты, яғни кіші байт кіші адрес бойынша орналасады.
Программа: prg 01_04. asm
Бұл программаның шарықтау бағыттарының бірі - белгісіз ұзындықты барлық сандар үшін жадыны динамикалық бөлу болып табылады. Міндетті түрде назар аударатынымыз, ұзын сандарды түрлендіру әдісі универсалды - оны процессордың көрсетілген мәліметтер типінің диапазонында жататын мәндері үшін де қолданылуға болады.
- Заттық сандарды енгізу
Енді бізге перне тақтадан символдық көріністегі заттық санды енгізу үшін және оны сәйкестендірумен екілік эквивалентке түрлендіру үшін бәрі дайын. Жалпы заттық санның жазылуының екі түрі бар - қалқымалы нүктесімен (34. 89) және ғылыми түрде (3. 45е - 3 = 3. 45*10 -3 ) . Заттық санды символдық көріністен эквивалентті екілікке түрлендіру үшін бірнеше әдісті қарастыруға болады. Ең қарапайымы - ВСД - санның қапталған процессорында жүктеудің мүмкіндіктерін қолданылу. Осы жағдайда түрлендіру алгоритмі келесіден тұрады. Заттық сандары бар символдық жол жадыға енгізіледі, онда ол ВСД - қапталған санға түрленеді. Көрсетілген символдық жолды енгізген кезде қалқымалы нүктенің орны есте сақталады. Алынған ВСД - қапталған сан процессорға жүктеледі, одан кейін ол берілген мәннің қалқымалы нүктесіне сәйкес дәрежелі 10 - ға бөлінеді. Кіші сандар үшін (10 18 - 1 дейінгі диапазонда) бұл әдіс жеткілікті жақсы. Оны кеңейтуге болады, егер санды ғылыми форматта енгізсе, осыған сәйкес мантиссаны көшіру процесі жоғарыда келтірілгенмен аналогты, бірақ 10 дәрежесіне бөлуге дайындау кезінде міндетті түрде «Е» символынан кейін көрсетілген дәреженің мәнін ескеру қажет. Бірақ, бәрі бір де диапазонды кеңейткенге қарамастан мантиссаны разряды 18 санмен шектелген. Бұл кемшілікті жою үшін ерікті разрядты сандармен операциялар қолданылады. Бұл әдіс өзінің универсалдығымен қызықты, сондықтан оған негізгі назарымызды аударайық.
Сонымен, мүмкін болатын екі форматтыңі бірінде - қалқымалы нүктесі бар қарапайым әдісте перне тақтадан заттық санды енгізу программасын жазайық. Ғылыми форматты қолдану үшін программаны аяқтау қиын емес.
Мантиссаны бүтін және бөлшек бөліктерге бөлетін белгі ретінде үтір сияқты нүктені де қолданылуға болады. Түрлендіру алгоритмінің мәні келесіден тұрады. Заттық сандардың символдарының перне тақтадан енгізілуі орындалады. Енгізгеннен кейін қалқымалы нүктенің орнын білу үшін енгізілген санның символдары орналасқан буфердің символдары анализденеді. Анықталған позиция есте сақталады. Соған қатысты енгізілген символдар бүтін және бөлшек сандар символына бөлінеді. Ондық санның символдық көріністен екілік эквивалентке түрлену алгоритмін қолданылып, заттық санның бүтін бөлігін тудырамыз. Заттық санның бөлшек бөлігі сол сияқты екілік эквивалентіне ауысады. Бұл түрлендіру процессорды келесі теңдеу бойынша қолданумен орындалады:
(( . . . (u -m / b + u 1-m ) / b + . . . + u -2 ) / b + u -1 ) / b
мұндағы u n - u -m , u 1-m . . . u -2 , u -1 , b = 10 заттық санының бөлшек бөлігінің ондық сандар символдары. Берілген теңдеу анықталғаннан кейін заттық санның бүтін бөлігінің түрленуімен күрделі қосулар орындалады. Болды, енді процессордың стегінің шыңында заттық сан болады - өзінің берілген символдық көріністің эквиваленті. Символдық көріністен заттық санды түрлендіру мәтінге жеткілікті үлкен және жеке келтіріледі. (Программа: prg 01_05. asm) . Көруімізше, орынды үнемдеу мақсатында программада енгізілетін заттық санның форматының дұрыстығы тексерілмейді.
Соңғы ескерту - берілген санның өлшемі бойынша шектеулер. Мұнда бүтін және бөлшек бөлімдерінің өлшемділігін айыру керек. Бөлшек бөліміне қатысты бұнда ешқандай шектеу жоқ. Бүтін бөлік үшін тар орын - 32 битті құрайтын FIADD бүтін сандар қосылысы командасындағы операнд өлшемінің максималдылығы.
Он алтылық және екілік сандарды енгізу және олардың жалпы принциптары ондық сандар үшін принциптерге аналогты болып табылады. Перне тақтадан он алтылық және екілік сандарды енгізу кезінде ондық санға қарағанда сұраныс жиі болады.
- Сандарды консольға шығару
Бұл бөлімде біз сандарды кері түрлендіруді қарастырамыз, яғни ішкі екілік көріністен символдық түрдегі санға, оның жазылу форматы сандық жүйе талаптарының ережелеріне сәйкес келеді. Айта кететініміз кері түрлендіруді қарастыру тура түрлендіруге симметриялы емес. Осыны дәлелдеудің негізінде символдық көріністегі он алтылық санды түрлендіру алгоритмінен сандарды консольға шығарудан бастайық.
2. 3. 1 Он алтылық сандарды шығару
Он алтылық сандармен жұмыс істей алу - төменгі деңгейде программалаудың қажетті шарты болып табылады. Он алтылық сандар екілік сандармен салыстырғанда компьютердегі ақпараттың ішкі көрінісін анализдеу үшін шынайы болып келеді. Еске алсақ, әрбір байт - екі тетраданың жиынтығы, ал берілген бір тетраданың мәндер диапазоны бір мәнді он алтылық санның қабылдай алатын мәндер диапазонына сәйкес келеді. Сондықтан, он алтылық санды символдық көрініске түрлендіру процесінің өзі қиындықты тудырмайды. Мысалы, бір байттың құрамын консольға шығару алгоритмі оның кіші және үлкен тетрадаларының мәнін кейбір әдіспен белгілеуден және олардың әрі қарай символдық түрге түрленуінен тұрады. Егер консольға бір емес бірнеше байттың символдық көрінісін шығару керек болса, онда тетрадаларды белгілеу және олардың түрленуі керекті рет тізбектеліп орындалады.
Символдық көріністегі он алтылық ақпаратты түрлендіру алгоритмінің пайдалы иллюстрациясы ретінде SHOW макрокомандасын қарастырайық, ол AL, AH, AX, EAX төрт регистрдің бірінң құрамын символдық он алтылық көрініске ауыстырады. Бұл макрос универсалды құрал болып табылады, ол программаны орындау уақытында регистрдің құрамын немесе жады облысында динамикалық түрде «сығалауды» рұқсат етеді. Оның көмегімен кез келген регистрдың немесе жадының облысын, ұзындығы 32 бит объектінің құрамын оның өлшемі есебімен AL, AH, AX, EAX регистрларының біріне жіберу жеткілікті. Бұл регистрлардың біреуінің аты, содан соң SHOW макрокомандасының фактілік аргументі ретінде көрсетіледі. Бұл макроанықтауыштың екінші аргументі - экрандағы позиция. Анықталған мәнді бере отырып SHOW макрокомандасы қалай жұмыс істегенін талқылай аламыз. Берілген макростың тағы бір ерекшелігі адресацияны рұқсат ету есебімен нақты режимде жұмыс істей алатындай қорғану режимінде жұмыс істей алады. Берілген макроанықтауыштың жұмысын келесі программаның көмегімен тексеруге болады.
Программа: prg 01_06. asm
- 0 - 99 диапазонындағы бүтін ондық сандарды шығару
Жоғарыда айтылғандай, 0 - 99 диапазонындағы мәндер үшін символдық ондық және екілік формалар арасындағы өзара түрлену екілік - ондық (ВСД - сандар) көбейту және бөлу командаларымен орындалады - ААМ және ААД. Программа: prg 01_07. asm
Консольға үлкен екілік мәндерді шығару мақсатында түрлендіру үшін екі әдісті қолдануға болады: 10 модулі бойынша бөлу жолымен (мәндер диапазоны шектелмеген) және процессордың көмегімен (0 . . . 10 18 - 1) .
- 0 - ∞ диапазонындағы бүтін ондық сандарды шығару
0 - ∞ диапазонынан екілік мәндерді шығару алгоритмінің негізінде ондық көріністегі ( . . . U 2 U 1 U 0 ) сандар кішісінен бастап берілген екілік санды u тізбекті түрде 10 - ға бөлумен алынатындығы жатыр: U O = u mod 10; U 1 = [u/10] mod 10; U 2 = [[u/10] /10] mod 10 т. с. с., қайта бөлу кезінде бөлінетін сан нолге теңеспегенше дейін: [ . . . [[u/10] /10] . . . ] = 0. Мұндағы, [u] символы төменгі жаққа нолденген бүтін бөлікті білдіреді.
Неге консольдан енгізу алгоритміне қарағанда кері түрленуі үшін әдістердің түрлілігі жоқ? Бұл DIV процессорының команда ерекшелігімен түсіндіріледі, ол жоғарыда айтылған бүтін және қалдық алу алгоритмдеріне қолданылады. Оның талаптары бөлінуші және бөлуші мәндерге қатысты - бүтіннің өлшемі бөлінушіден екі есе кіші болу керек. Қарсы жағдайда #ДЕ ескертуі туындайды (бөлу қателігі) және программа авариялық түрде аяқталады.
Осы шарттардан шыға бізге N - байтты өлшемді мәнді белгісі жоқ1 байтты өлшемді мәнге бөлу программасын қолданудан басқа еш нәрсе жоқ. Қолайлы болу үшін бұл программаны біз макрокомандалар түрінде жазамыз.
Программа: prg 01_08. asm
Берілген программада жадыдағы мәндер түрленеді. Оған қоса біз берілген екілік мәннің орнына екі сөз өлшемді максималды үлкен болатын белгісі жоқ санды береміз. Түрленудің нәтижесі - 4 294 967 295, ол талап етілген ондық мәнмен толық сәйкестікке келеді. Бірақ берілген мәндерді жадыда беру қолайсыз, процессордың регистрынан түрлену үшін мәнді процессорды қолдану әдісі жақсы келеді.
2. 3. 4 0 - 999 999 999 999 999 999 диапазонындағы бүтін ондық
сандарды шығару
Шығарудың бұл әдісі процессордың қапталған ондық сандармен жұмыс істей алу мүмкіншілігіне негізделген. Процессордың командалық жүйесінде FBSTP командасы бар, ол санды ондық форматқа түрлендірумен бір уақытта жады облысында процессордың стек шыңында ондық сандарды сақтайды. Сақтау жүргізілетін жады облысы DТ директивасымен сипатталу керек. Маңызды болып табылатыныол әрі қарай түрленуі үшін процессорға бүтін санды орналастыратын FILD командасы бүтін сандарды белгісі бар сандар сияқты трактілейді. Сондықтан 0h түріндегі бүтін санды беру мүмкіндігі (операндтың бірлік жоғары разрядымен) түрлендірудің нәтижесі үшін осыдан шыққан салдарлармен процессордың стегіне -1 мәні енгізілуіне әкеледі.
Программа: prg 01_09. asm
- Заттық сандарды шығару
Соңғы алгоритм - консольдің экранында көрсетілуі үшін жарамды түрге заттық мәнді түрлендіру. Төменде тек қана түрлендіруге қатысты программаның фрагменттері көрсетілген.
Программа: prg 01_10. asm
Қорытынды
Консольмен жұмыс істеу кезінде Windows ортасы екі түрлі қосымшаны ұсталынады - графикалық интерфейстің кең көлемде қолданылатын мүмкіндіктерә бар терезелік және консольдық, ол тек қана мәтіндік режимде жұмыс істейтін қолданушыларға арналған. Сондықтан «консоль» сөзімен Windows - тағы «консльдік қосымшаларды» шатастыруға болмайды. «Консоль» сөзінің өзі ол ақпаратты перне тақта арқылы енгізіп, оны экранға шығару құралдары.
Осы курстық жұмыста жоғарғы деңгейлі консольдық енгізу мен шығаруды автоматтандырудың консольдық қосымшаның минималды программалары қарастырылды.
Консольдық енгізу мен шығарудың төменгі деңгейі жоғарғы деңгеймен салыстырғанда, кең және иілімді мүмкіндіктерге ие. Консольдық енгізу мен шығарудың төменгі деңгейлі функциялары кірістік және экрандық консоль буферларына тура кірісті қамтамасыз етеді, олар қосымшаларға тышқан және перне тақта құбылыстарын қосады және консоль терезелерінің өзгерісі туралы ақпаратты мәлімдейді.
Консольдық қосымшалардың үлкен жақсылықтарының бірі - Windows құралдарымен орнатылған тышқан жұмысы. Ол Read Console Input функциясының көмегімен орындалады. Ең негізгі айта кететініміз, бұл функция тек қана тышқанның жұмысы туралы ақпаратты бермейді, ал перне тақта мен бүкіл консоль терезесінің өзгерісін бақылап, ақпарат беріп отырады және т. б.
Мәтінмен жұмыс істеудің жоғарғы деңгейдегі функциялары примитивті түрде мәтінді енгізуден басқа перне тақтамен операциялауға мүмкіндіктер бермейді. Мәтіндік режимдегі программаларды құрастыру кезінде басқару пернелері туралы ақпарат жиі сұралады және ол да Read Console Input функциясының көмегімен орындалады.
Перне тақтаның құбылыстары кезкелген пернені басу кезінде генерацияланады. Оларды өңдеу процесі тышқанды өңдеу процесіне аналогты болып келеді.
Консольдық қосымшаларды қорытындылай келгенде біріншіден консольдық экран буфері нені білдіретінін анықтайық.
«Консоль терезесі» және «консольдің экрандық буфері» ұғымдарының жақындығын оңай түсіну үшін өзіңізге кеңсе күнтізбесін еске алыңыз, онда берілген күндер квадрат жақшамен қоршалады. Енді күнтізбе бетінің құрамы осы рамка арқылы көрінбейді, яғни тек қана рамка жасайтын кішкентай саңылаудан көруге болады. Күнтізбенің бүкіл бетін көру үшін рамканы қозғалту қажет. Бұл ассоцияцияның контекстінде күнтізбенің беті - бұл экрандық буфер, ал рамканың ішіндегі аудан - бұл консоль терезесі.
Қолданылған әдебиеттер тізімі:
Қосымша А
0 - 99 диапазонынан ондық символдық көріністегі екілік санды енгізу
Кіру: перне тақтадан енгізілетін символдық түрдегі санаудың ондық жүйесіндегі сан.
Шығу: АL - екілік сан.
buf 0ah struc
len buf db 3 : buf 0ah ұзындығы
len in db 0 : енгізілген сөздің нақты ұзындығы
: (0dh есебісіз)
duf in db 3 dup (20h) : енгізу буфері (0dh есебімен)
ends
. data
buf buf 0ah <>
adr buf dd buf
. code
перне тақтадан 2 символды енгіземіз
рұқсат етілген мәндерге бақылау жасамаймыз
lds dx. adr buf
mov ah. 0ah
int 21h
xor ax. ax
cmp buf. len in. 2 : нақты қанша сан енгізілді?
jne m1
mov ah. buf. buf in
буылмаған ондық көрініске түрлендіру
mov a1. buf. buf in+1
and ax. 0f0fh
aad : а1 - ге берілген екілік эквиваленті
: екі мәнді ондық мәннің
Программа: prg 01_02. asm . 0 - 4 294 967 295 диапазонынан символдық көріністегі бүтін ондық санды екілік көрініске түрлендіру.
Кіру: санаудың ондық жүйесінен перне тақта арқылы сан енгізу.
Шығу: ЕАХ - екілік сан - түрлендіру нәтижесі.
. data
string db 12 dup (0) : максималды сан 10 саннан тұрады
: (12 - 0d0ah есебімен)
len string = $ - string
ten dd 10
string e db 0dh. 0ah. «Нәтиже !!!$ операндының шегінен шықты»
adr string e dd string e
. code
перне тақтадан енгіземіз.
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz