Ассеблер тілі

Кіріспе
Негізгі бөлім
1.Ассемблер тіліне шолу
2.Есептің құрылымы
3.Негізгі бөлім мен процедураларға түсіндірме
4.Әдістің баяндамасы
5.Пайдаланушының нұсқауы
6.Программистің нұсқауы
7.Әрекеттердің есептелінуі 8.Программа листингі
9. Блок схема
10.Блок схемаға түсініктеме
Қорытынды
Қолданылған әдебиеттер
Жоғарғы деңгейлі тілдерде есептеу және мәтіндермен жұмыс істейтін программалар жазу ыңғайлы. Бірақ олар жылдамдығы мен жадыда алатын орны жағынан алғанда онша тиімді болып шықпайды. Осының салдарынан жоғарғы деңгейде программалау тілдерінің бәрінде ассемблерде жазылған жазылған программалық жекебөлшектерін қолдану мүмкіндіктері ескерілген.
Есептеу машинасын керекті бағытта жұмыс істететін – машиналық тіл. Ассеблер тілі – машиналық тілдің рәміздік көрсетімі. Ассемблер немесе жоғарғы деңгейлі тілде жазылған программаны машиналық тілге аудару үшін аударғыш деп аталатын бағдарламалар қолданылады. Ассемблер тілінде жазылған программаның аударғышы Ассемблер деп аталады.
Машинадағы барлық процестер ең төменгі, аппараттық деәгейде тек машиналық тілдің командалары арқылы жүзеге асырылады. Ассемблер тілі компьютердің әрбір түрі үшін әр түрлі болып келеді.
Кейде мәселен, программа ерекше, бейстандартты құрылғымен жұмыс істеуі немесе аппаратураға тікелей қатынасумен байланысты іс-әрекеттер жасауы керек болады. Бұл кезде программалаушы қандай білікті болмасын және өзінің программасын қандай да жоғарғыдеігейлі тамаша тілде жазбасын, бәрібір, оған ассемблер тілін білу керек болады. Сондықтан да, жоғарғы деңгейлі тілдердің компиляторларының көбісінде ассемблер тіліндегі жекебөлшектермен байланысу құралдары бар екені немесе программалаудың ассемберлік деңгейін қолдауы бостан бос емес.
1. Питер Абель «Ассемблер язык и программирование для IBM PC» Москва,2003
2.Пирогов, Ассемблер
3. Финогенов К.Г. «Самоучитель пло ассемблеру»
4.Рудаков, Финогенов «Уроки программиравания ассемблера»
5.Зубков, «Язык Ассемблера для DS и Windows »
6.Муртазина, «MS -DOS - тың жүйелік функциялары»
7.Тұрым, Дюсекенова, «Машина-бағдарлы программалау»
        
        Кіріспе
Жоғарғы деңгейлі тілдерде есептеу және мәтіндермен ... ... жазу ... ... олар ... мен ... алатын орны
жағынан алғанда онша тиімді болып шықпайды. Осының салдарынан ... ... ... ... ... ... ... жекебөлшектерін қолдану мүмкіндіктері ескерілген.
Есептеу машинасын керекті бағытта жұмыс істететін – ... ... тілі – ... ... ... ... Ассемблер немесе
жоғарғы деңгейлі тілде жазылған программаны машиналық ... ... ... деп ... ... ... ... тілінде жазылған
программаның аударғышы Ассемблер деп аталады.
Машинадағы барлық процестер ең төменгі, аппараттық ... ... ... ... ... ... асырылады. Ассемблер тілі
компьютердің әрбір түрі үшін әр түрлі болып ... ... ... ... ... құрылғымен жұмыс істеуі
немесе аппаратураға тікелей қатынасумен байланысты іс-әрекеттер жасауы
керек болады. Бұл ... ... ... ... ... және ... ... да жоғарғыдеігейлі тамаша тілде жазбасын, бәрібір, оған
ассемблер тілін білу керек болады. ... да, ... ... ... ... ... тіліндегі жекебөлшектермен байланысу
құралдары бар екені ... ... ... деңгейін қолдауы
бостан бос емес.
Негізгі бөлім
1.Ассемблер тіліне шолу
Машиналық тіл – негізі 0 мен 1-дің ... ... ... ші ... ... ... үшін машиналық тілдің
символикалық (рәміздік) аналогін ... Оны ... деп ... тілі ... ... ... Бұл сөздер жинағы электрондық
есептеу машинасына қандай өрекет ... ... ... Жоғарғы
деңгейлі тілдерге қарағанда ассемблер тілінің командалар жинағы ... ... ... Сондықтан ассемблер тілі машина-тәуелді
және машина-бағдарлы ... тілі деп ... ... тиімділігі:
• Тез орындалады, өйткені ... ... ... бар;
• Компьтерге төмен деңгейде қатынас құруға болады.
Орындалатын программаны және бағдарламахананы ... ... ... ... ... біріктіретін көмекші программа байланыстар
түзеткіші немесе программа құрастырғыш (LINKER) деп аталады. ... ... ... ... ... (Loader) ... Кейде байланыстарды түзету мен жүктемелеу жұмыстарын бір программа
атқарады.
Программаның бастапқы мәтіні кез келген ... ... ... .asm кеңеймесі бар файл түрінде сақталады.
Сосын TASM.EXE ... (оны ... ... деп те атайды)
прграммасының көмегімен бастапқы мәтіндік файлдан Name.obj ... ... ... ... ішкі ... арасындағы байланыстары
жөнге келтірілмеген) объектік кодасы бар файл алынады.Сонымен қатар ол
Name.lst ... және Name.crf ... ... ... ... ... ... немесе байланыс редакторы)
программасының көмегімен объектік файлдан ( деп аталатын) ... ... ... ... Name.map ... файлын), Name.lib
(кітапхана файлын), Name .def ... ... және ... ... ... алады.
Ассемблер – машиналық тілдің символдық аналогы, сондықтан прграмма
шағынпроцессордың архитектурасының барлық ерекшеліктерін бейнелеуге ... ... ... ... адрестеу тәсілдері, регистрлерді
пайдалану ережелері т.б.
Ассемблер тілінде жазылған программаны жадының сегмент деп аталатын
бөлшектер жинағы ретінде ... ... ... ... ... ... ... Әрбір сөйлем программаның кодасында бөлек бір жолдан
тұрады.
Ассемблер сөйлемдері 4 түрлі болады:
• Командалар. ... ... ... бар және ... не ... ... екенін көрсетеді.
• Макрокомандалар. Макрокоманда- бсатапқы программадғы бірнеше
машиналық командалардың орнына жүретін символдық атау.
• Директивалар ... ... ... және ... не істеу керектігін анықтайтын
нұсқау береді. Сондықтан олар ... ... ... ... ж»не ... EXE ... ... сәйкес машиналық кода болмайды.
2.Есептің құрылымы
Меню арқылы түрлі дыбыстық эффекттерді беретін программа құру керек.
Программа дайын түрінде мынадай сипатта болады:
1. Экранда меню шығу ... Меню ... 3 ... ... ... мүмкіншілігін береді.
Бұл программа экранға көгілдір түсті менюдің терезесін шығарады. ... өзі data ... ... ... 4 ... ... ... 0DBH символынан тұратын көлеңкемен берілген. Пайдаланушы жоғары,
төмен, enter, а, в, с, q батырмаларын ... ... ... ... ... мен процедураларға түсіндірме
Программа пайдаланушыға қалаған әуенің тыңдауға мүмкіндік береді.
Программа келесі бөлімдерден тұрады:
1. Менюді шығаратын негізгі бөлім
2. Әуенді шығаратын бөлім
3. Norton ... ... ... яүни ... ... ... ... орындалады:
- a1 келесі процедураларды шақырады:
1. q1clear – экранды тазарту
2. в1menu – меню мен шақыруды шығарады.
3. d1disply – менюдің ... ... ... режим түрінде шығарады.
4. c1input – пернетақтадан ақпаратты қабылдау үшін;
- b1menu1 – ... ... ... ... 10h үзуінің 09h функциясы
көлеңкесі бар рамканы шығару үшін қолданылады.
- c1input – пернетақтадан ↑,↓, а, в, с, q ... ... ... және ... ... ойнайды.
- d1disply – тақдалған менюдің пунктін ... ... ... ... q1clear – ... ... тазартып, оны белгілі бір түске, ал символдарды
да бояймыз.
- music 1 – «а» ... ... ... 1-ші әуен ... sound ... ... процедерасын шақырады.
- music 2 – «в» батырмасын басқаннан кейін, 2 – ші әуен орындалады. sound
дыбыс шығару процедерасын ... music 3 – «с» ... ... кейін, 3 – ші әуен орындалады. Ол ... ... ... ... ... ... int 10h ... 09h функциясы арқылы көлеңкесі бар рамка шығарамыз.
Шақыруды шығару үшін де осы функция қолданылады.
- int 10h ... 13h ... ... ... жолдарын рамканың
ішінде етіп шығарамыз. Шақыруды шығару үшін де осы ... ... int 16h ... 10h функциясы ↑,↓, а, в, с, q ... ... үшін ... ... батырмалардың басылуын елемейді.
- Int 10h үзуінің 13h функциясы арқылы таңдалған пунктімізді ... ... ... ... ... режим)
- int 21h үзуінің 4сh функциясы программадан шығу үшін ... int 10h ... 0003h ... ... ... үшін ... int 10h ... 1012h функциясы ... ... ... ... ... ... жіберген кезде экранға меню
шығады. Меню келесі бөлімдерден тұрады:
1. Әуен -1
2. Әуен -2
3. Әуен -3
1-ші әуенді ... үшін «а» ... ... ... таңдау үшін «в» латын әріпін,
3-ші әуенді таңдау үшін «с» латын әріпін,
программадан шығу үшін «q» латын ... басу ... ... айта ... жай. Бұл ... ... ... Бірақ
кез – келген әуенді компьтерге ойната алмаймыз. Ол үшін ... ... өз ... ... теруіміз қажет.
Ұсыныс: «а» әріпінен « » ... ... ... ... ... теріп кетінің. Ал бемоль және диездерді 1
және 2 сандарына деректер сегментінде программалаңыз. Сол ... ... ... адам кез ө ... ... ... ... адам кез-келген
әуенді компьтерден батырмаларды басып, ойнай алатын болады.
7.Әрекеттердің есептелінуі
8.Программа листингі
.model small
.stack 200h
.data
toprow equ 08 ; ... ... ... equ 15 ; ... ... ... equ 25 ; менюдің сол жақ ... db ? ; ... ... db 00 ; ... ... db 23 dup (0dbh) ; ... ... db 0c9h, 21 dup (0cdh), 0bbh ; меню ... 0bah,' ... ... 0bah,' * cnopka a-music 1* ... 0bah,' * cnopka b-music 2* ... 0bah,' * cnopka c-music 3* ... 0bah,' * cnopka q-exit * ... 0bah,' *.............................* ',0bah
db 0c8h, 21 dup (0cdh), 0bch
info1 db 0ah,'Eto ... ... ... ... шығатын ақпарат
info2 db 0ah,'Shokanovoi Aigerim'
info3 db 0ah,'viberite myziky'
info4 db 0ah,'Spasibo'
mus_1 dw ... dup (394) ; 1 ... 1-ші ... ... ; 2 – ші ... 330,294,294,262,4 dup (330) ; 3 – ші ... ... ; 4 – ші ... dw 6 dup (25),50 ; 1-ші ... 1-ші ... паузасы
dw 2 dup (25,25,50) ; 2-ші қатарының паузасы
dw 12 dup (25,100) ; 3-ші қатарының паузасы
mus_2 dw ... ; 2 – ші ... 1-ші ... 330,392,330,294,262,294,330,392,294 ; 2 – ші қатары
dw 262,262,220,196,196,220,262,294,332 ; 3 – ші қатары
pausa2 dw 3 dup ... ; 2-ші ... 1-ші ... 2 dup ... ; 2-ші ... паузасы
dw 3 dup (50,25,25),100 ; 3-ші ... ... dw ... ; 3-ші ... 1-ші ... 330,349,294,294,262 ; 2-ші қатары
dw 362,294,294,332,362 ; 3-ші қатары
dw 262,294,330,330,249 ; 4-ші қатары
dw 330,330,440,440,330 ; 5-ші ... dw 3 dup ... ; 3-ші ... 1-ші ... 2 dup ... ; 2-ші қатарының паузасы
dw 2 dup (50,25,25),500 ; 3-ші ... ... proc ... ax,@data
mov ds,ax
mov es,ax
call q1clear ; ... ... ... ; ... өңдеу
a2:
call b1menu ; менюді ... ... ; ... ... ... ағымдағы етіп таңдау
mov attrib,15h ; ... ... ... ... d1disply ; менюдің ағымдағы қатарына түс ... c1input ; ... ... ... al,1bh ; esc ... ... тексеру
jne a2 ; жоқ, ... ax,0600h ; иә, ... ... q1clear ; ... ... ax,4c00h ; ... соңы
int 21h
a1 endp
Рамка мен оның көлеңкесін шығару
b1menu proc near
push ax ; ... ... ах ... ... ax,1301h ; ... бар ... шығаруға сұрату
mov bx,0060h ; бет және атрибуттар
lea bp,ten ; ... ... cx,23 ; ... ... dh, toprow+1 ; ... ... қатары
mov dl,lefcol+1 ; көлеңкенің сол жақ бағаны
b2:
int 10h
inc dh ; ... ... ... ; ... ... қатары
jne b2 ; жоқ, ... attr ib,15h ; ... ... ... мен ... ... ax,1300h ; меню шығаруды сұрату
movzx bx,attrib ; бет пен ... bp,menu ; меню ... cx,23 ; меню ... ... dh, toprow ; менюдің қатары
mov dl,lefcol ; ... ... ... bp,23 ; ... ... қатары
inc dh ; ... ... ... ; ... қатар шықты ма?
jne b3 ; жоқ, ... ax,1301h ; ... ... ... ; бет пен ... cx,80 ; ... ... dh,botrow+3 ; экран қатарлары
mov dl,00 ; ... ... ax ; ... ... ... ... таңдалған қатарын бояу және таңдалмаған қатарға әдеттегі режимді
қосу
d1disply proc near
push ax ; ... ... ах ... ax,row ; row қай ... өзгерту керек екенін көрсетеді
sub ax,toprow ; жоғарғы қатардан ... ... ... ax,23 ; ... ... көбейтеміз
lea si,menu+1 ; астыңғы қатарды алу ... si, ... ax, 1300h ; ... ... bx,attrib ; бет және атрибуттар
mov bp,si ; ... ... cx,21 ; ... ... dh,row ; ... ... ; баған
int 10h
pop ax ; ... ... ... ... ... proc near
push ax ; ... ... ... ax,0600h ... bh,30h ; ... ... фон
mov cx,0000 ; ... ... dx,184fh ... ... ax ; ... ... ... endp
Батырмалардың басылуын қабылдау
c1input proc near
push ax ; ... ... ... ah,10h ; ... ... ... сұрату
int 16h
cmp ah,50h ;↓
je c3 ; иә, ... ... ah,48h ; ... c4 ; иә, ... ... al,'q' ; q ... vixod ; DOS-қа ... al,'a' ; а әріпі
jnz b0 ; жоқ, ... ... ... music1 ; 1-ші ... ... c2 ; ... ... ... al,'b' ; в ... c0 ; жоқ, ... ... ... music2 ; 2-ші ... ... c2 ; ... басуды күту
c0:
cmp al,'c' ; с ... b0 ; жоқ, ... ... ... music3 ; 3-ші ... ... c2 ; ... ... ... ... ; ... ... символ көгілдір фонда
call d1disply ; бұрын таңдалған қатарды әдеттегі режимге орнату
inc row ; ... ... ... row, botrow-1 ; ... ... төмен бе?
jbe c5 ; жоқ, ... ... иә, ... ... ... ... ; ... қызыл символ көгілдір фонда
call d1disply ; ... ... ... ... режимге орнату
dec row ; ... ... ... ; ... ... c5 ; жоқ, ... ... ; иә, ... ... ;
call d1disply ; ... ... ... ... ... c2 ; с2-ге ... ah,4ch ; жұмысты аяқтау
int 21h
c1input endp
1-ші ... ... proc ... ... ax,ax ; ах регистрін тазартамыз
push ax
lea si,mus_1 ;mus_1 қатарын шығарамыз
lea bp,ds:pausa1 ; pausa1 қатарын ... di,[si] ; si ... ... di –ға ... di,-1 ; әуен қатарының соңы
je kones_mus1 ; иә, әуенді аяқтаймыз
mov dx,ds:[bp]
mov bx, ... gensound ; ... ... ... ... ... ... hit1 ; 1-ші әуен қатарына секіру
kones_mus1:
ret ; ... ... ... ... ... proc near
push ax ; ... ... ... ... ... ... cx
push dx
push di
mov al,0b6h
out 43h,al ; ... ... ... ... di ; ... ... ... al,ah ; ah – ті al-ға ... 42h,al ; ... шығару
in al,61h ; ... ... ... al,3 ; ... ... 61h,al ; ... ... ... ... zadergka
dec bx
jnz wait1
mov al,ah
out 61h,al
pop di
pop dx
pop cx
pop bx
pop ax
ret ; ... ... ... ... ... процедурасы
music2 proc near
push ds ; ... ... ... ... ... ax,ax ; ... ... алу
push ax
lea si, mus_2 ;mus_2 ... ... ... ; pausa2 ... ... di,[si] ; si ... ... di –ға ... di,-1 ; әуен ... ... ... ; иә, ... аяқтаймыз
mov dx,ds:[bp]
mov bx,1400
call gensound ; дыбыс ... ... ... ... hit1 ; 1-ші әуен ... секіру
kones_mus2:
ret ; ... ... ... ... ... процедурасы
music3 proc near
push ds ; ... ... ... стекке салады
sub ax,ax
push ax
lea si,mus_3 ;mus_3 қатарын шығарамыз
lea bp,ds:pausa3 ; pausa3 ... ... di,[si] ; si ... ... di –ға ... di,-1 ; әуен ... ... kones_mus3 ; иә, әуенді аяқтаймыз
mov dx,ds:[bp]
mov bx,1400
call gensound ; ... ... ... ... si,2
add bp,2
jmp hit1
kones_mus3:
ret ; ... ... ... proc near
push ax ; жалаушалар ... ... ... ... ... cx
push dx
mov ah,0 ; видео режимді орнату
mov al,0
mov ... ... ... ... ... 10h
pop dx ;стектен сөзді шығару
pop cx
pop ... ... ; ... қайту
clear endp ; процедураның соңы
end a1
9. Блок схема
1. Программаның процедураларының схемасы
Программаның блок ... -
+ ... ... ... ... ... орындалу схемасы. Мұнда жоғарыда айтып кеткендей
келесі процедуралар ... а1 ... ... q1clear – экранды тазарту процедурасы орындалады;
3. b1menu – меню мен ... ... ... d1disply – ... ... ... ... режим түрінде шығаратын
процедура орындалады;
5. c1input – ... ... ... ... ... q1clear – ... тазарту процедурасы қайта орындалады;
II. Меню шығару процедурасы:
1. Қатар енгізілді ме ... ... ... ... орындалады;
Ия: Менюді шығарады.
2. Менюлің барлық қатары шықты ма?
Жоқ: Процедура қайтадан басынан бастап орындалады;
Иә: Шақыру ... ... ... күту және оны ... енгізілген батырманы тексеру:
1 ↓ пернесі басылды ма?
Жоқ: Процедура басынан бастап орындалады;
Иә: d1disply ... өту. Одан ... тағы ... d1disply ... өтіп, c1input батырмалардың басылуын
тексеретін процедураға қайтып барады;
Иә: Бұл ең ... ... ... жорғары өтеді. Содан кейін d1disply
процедурасынан өтіп, c1input батырмалардың басылуын тексеретін процедураға
қайтып ... ... ... ... ... басынан бастап орындалады;
Иә: d1disply процедурасынан өтіп, c1input батырмалардың ... ... ... ... Ең ... қатарда тұрғандықтан, ол жорғары бара алмайды. ... ... ... ... ма ?
Жоқ: Процедура басынан бастап орындалады;
Иә: 1- ші әуенді шығару ... ... c1input ... ... «в» пернесі басылды ма ?
Жоқ: Процедура басынан бастап орындалады;
Иә: 2 - ші ... ... ... ... c1input ... ... «с» пернесі басылды ма ?
Жоқ: Процедура басынан бастап орындалады;
Иә: 3 - ші әуенді шығару ... ... c1input ... ... «q» ... ... ма ... Процедура басынан бастап орындалады;
Иә: DOS терезесіне оралады, яғни программа ... ... бұл ... ... әуенді ойнайды. Мен осы
программаны жасаған кезде программа мен операциялық жәйенің, процессор ... бір – ... ... ұқтым, процессор нұсқаулықтарды ... ... ... ... және деректер қалай өңделетінің
көрдім. Мәліметтерді қай жерге, ұалай сақтау керегін ... ... ... көп орын ... етіп ... біліп алдым. Сонымен
қатар, үзулер мен олардың функцияларын ... ... ... ... ... ... ... ассемблердің көптеген нұсқаулықтарын қолданып,
олардың программадағы атқаратын рөлін ... ... ... ... ... адам өзі де ... ... құра алатындығына сеніп,
оны құруға қызығып, ассемблерде программалауды бастайды және оны ары ... ... ... ... «Ассемблер язык и программирование для IBM PC» Москва,2003
2.Пирогов, Ассемблер
3. Финогенов К.Г. ... пло ... ... «Уроки программиравания ассемблера»
5.Зубков, «Язык Ассемблера для DS и Windows ... «MS -DOS - тың ... ... ... «Машина-бағдарлы программалау»
-----------------------
А1
B1menu
d1disply
q1clear
c1input
music1
gensound
music2
music3
clear
А1
q1 clear
d1 disply
C1 input
b1 menu
d1 disply
b1 menu
d1 disply
q1 clear
c1 input
C2
music1
music2
music3
d1 disply
music1
gensound
music2
gensound
clear

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









Ұқсас жұмыстар
Тақырыб Бет саны
Ассемблермен жұмыс5 бет
MS Ассеss ортасында мәліметтер қорын құру4 бет
«Ассемблер-күрделі машиналық тіл»27 бет
Ассемблер тілі9 бет
Ассемблер тілінің синтаксисі, алфавиті14 бет
Ассемблер тілінде бағдарламалау10 бет
Ассемблер тілінде программалау27 бет
Ассемблер тілінде программалау жайлы ақпарат5 бет
Ассемблер тілінде программалау туралы ақпарат25 бет
Ассемблер тілінде программалау туралы ақпарат жайлы5 бет


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


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

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

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

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

Email: info@stud.kz

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

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