Norbekov Ozod
Amaliy ish 4
ASSEMBLERDA DASTURLASH. SODDA DASTURLARNI ISHLAB CHIQISH.
ASSEMBLERDA DASTURLASH.
Kompyuter texnologiyalari taraqqiyoti algoritmlarni yozish - dasturlash tillari uchun yangi turli xil simvolli tizimlarining paydo bo'lish jarayonini aniqlanadi.
1.1 - rasm. Dasturlashtirish tili tasnifi
Ko'plab dasturlash tillari mavjud, biroq biz Assembler tiliga e'tibor qaratamiz.
Hozirgi vaqtda dasturchi Assemblerdan ancha sodda dasturlash tillarini qo'llashi mumkinligiga qaramasdan, Assembler bilimi va unda dasturlash qobiliyati hech qachon ortiq bo'lmaydi. Bu quyidagi dalillar bilan tasdiqlangan:
1. Boshqa dasturiy tillardan talablarni to'liq qondiradigan prilojeniyalar yozish har doim ham mumkin emas. Va ba'zi hollarda butunlay mumkin emas. Assembler dasturlash tilida siz har qanday dasturni yozishingiz mumkin.
2. Ba'zan yuqori darajali dasturlash tillari kerakli tezlikni ta'minlay olmaydi. Assembler'da yaratilgan dasturlar esa har doim tez.
3. Yuqori darajadagi tillarda yaratilgan dasturlarning hajmi Assemblerda yaratilgan dasturlarga qaraganda ancha katta.
4. Assembler tili sizga to'g'ridan-to'g'ri apparat bilan ishlash imkonini beradi, bu esa ba'zi hollarda dasturchiga afzallik va istalgan natijani beradi. Yuqori darajadagi tilda dastur apparat qurilmalari bilan yozma modul orqali ishlaydi, ya'ni dasturchiga biron bir narsani o'zgartirishga ruxsat bermaydi va shuning uchun kerakli natijani olish imkoni ega bo’lmaydi.
5. Assembler tilini bilish faqat yuqori darajadagi tillarda dasturga ega bo'lganlarga nisbatan katta afzallik beradi. Assembler biladigan dasturchi kompyuterning tuzilishini va apparat apparatlarining tuzilishini biladi.
ASSEMBLER TILIDA DASTUR ISHLAB CHIQISH.
Assembler tilida dasturlarni ishlab chiqish yuqori darajadagi tillardagi yozish dasturlaridan farq qiladi, chunki xotira va registrlarning mazmunini kuzatishda ko'p e'tibor va tartiblilikni talab etiladi. Shu bilan birga, dasturni ishlab chiqishning keyingi bosqichlarini kuzatish kerak:
• vazifani belgilash va dasturni tuzish;
• har qanday matn muharriri yordamida dasturning matni bilan fayl yaratish;
• Assemblerdan foydalanib dasturni tarjima qilish, xatolar aniqlanganda - ularni matn muharririda to'g'rilab, yana tarjima qilish;
• assemblerning natijasini dasturchi modul yordamida bajariladigan modulga aylantirish;
• ijro etuvchi dasturni ishga tushirish;
• natijalarni tekshirish. Hech narsa topilmasa, xatoni tuzatuvchidan foydalanib, xato topishingiz kerak.
Assembler kodlari bilan yozilgan dasturga manba dasturi deyiladi va uning aylantirilgan shakli mikroprotsessor buyruqlar qatoriga ob'ekt yoki dastur moduli kiradi. Yig’uvchi fayl yoki bajariladigan modul yaratishga imkon beradi. Otladchik - ekranda kerakli o'zgaruvchilar qadriyatlarini ko'rishga, dasturni bosqichma-bosqich bajarishda, barcha registrlarni va xotiralarining holatini olishni, dasturga o'zgartirishlar kiritishni, to’xtash nuqtalarini belgilashni va yana ko'p narsalarni beradigan dasturdir.
Ushbu ma’ruzada Assembler tilida dasturlarni yaratish uchun Borland Int. firmasidan olingan dasturiy mahsulot Turbo Assembler. Turbo Assembler kompilyatori TASM.EXE faylida joylashgan yig’uvchi dastur bo'lib, TLINK.EXE faylida joylashgan. Otladchik tuzuvchisi TD.EXE faylida joylashgan. Assembler tili dasturini kompilyatsiya qilish va ishlash jarayoni quyidagicha.
Assembler tili «Norbekov.O» dasturida
name "Norbekov.O"
; this example prints out "hello world!"
; by writing directly to video memory.
; in vga memory: first byte is ascii character, byte that follows is character attribute.
; if you change the second byte, you can change the color of
; the character even after it is printed.
; character attribute is 8 bit value,
; high 4 bits set background color and low 4 bits set foreground color.
; hex bin color
;
; 0 0000 black
; 1 0001 blue
; 2 0010 green
; 3 0011 cyan
; 4 0100 red
; 5 0101 magenta
; 6 0110 brown
; 7 0111 light gray
; 8 1000 dark gray
; 9 1001 light blue
; a 1010 light green
; b 1011 light cyan
; c 1100 light red
; d 1101 light magenta
; e 1110 yellow
; f 1111 white
org 100h
; set video mode
mov ax, 3 ; text mode 80x25, 16 colors, 8 pages (ah=0, al=3)
int 10h ; do it!
; cancel blinking and enable all 16 colors:
mov ax, 1003h
mov bx, 0
int 10h
; set segment register:
mov ax, 0b800h
mov ds, ax
; print "hello world"
; first byte is ascii code, second byte is color code.
mov [02h], 'N'
mov [04h], 'o'
mov [06h], 'r'
mov [08h], 'b'
mov [0ah], 'e'
mov [0ch], 'k'
mov [0eh], 'o'
mov [10h], 'v'
mov [12h], '.'
mov [14h], 'O'
; color all characters:
mov cx, 12 ; number of characters.
mov di, 03h ; start from byte after 'h'
c: mov [di], 11101100b ; light red(1100) on yellow(1110)
add di, 2 ; skip over next ascii code in vga memory.
loop c
; wait for any key press:
mov ah, 0
int 16h
Ret
Do'stlaringiz bilan baham: |