, 14
    
  
Mov.asm - Tizimli dasturlash

|
Tizimli dasturlash
|
bet | 12/64 | Sana | 13.05.2024 | Hajmi | 183,36 Kb. | | #230077 |
Bog'liq Системное программирование, практика7, 14
|
Mov.asm
|
4, 5, 6
|
7, 13, 14
|
15, 16, 18
|
|
15, 16, 18
|
21, 22, 23
|
15, 16, 18
|
|
Arithmet.asm
|
|
6, 9, 13
|
|
9, 16, 17
|
|
17,19, 20
|
|
|
Logical.asm
|
|
|
6, 7, 10
|
|
12, 15, 21
|
|
|
|
LoopCall.asm
|
6, 9, 18
|
|
|
6, 9, 18
|
|
|
6, 9, 18
|
|
|
|
|
|
|
|
|
|
|
|
Nazorat savollari :
1. Faylni yig'ish buyrug'ini yozing f_1.asm ro'yxatni shakllantirish va tuzatuvchidan foydalanish imkoniyatini hisobga olgan holda T.D
2. Faylni bog‘lash buyrug‘ini yozing f_1 . obj , bu tuzatuvchidan foydalanishga imkon beradi va displey faylini yaratishni o'chiradi.
3. Segmentlangan xotira modelida fizik ob'ektni qanday aniqlash mumkin, agar uning mantiqiy komponentlari ma'lum bo'lsa: " Segment - Ofset "?
4. Rejimdagi stek, ma’lumotlar va kod segmentlarini boshqaradigan montaj tili direktivalarini yozing. Ideal ( Masm ) .
5. Kabi dasturlarning bajariladigan fayllari o'rtasidagi asosiy farq nimada . exe Va . com
6. Dastur kodining boshi va oxirini belgilovchi buyruqlarni yozing.
7. Xatolar va tomonidan yaratilgan ogohlantirishlar o'rtasidagi farq nima Tasm efir vaqtida? Agar xato aniqlansa, sizning harakatlaringiz.
8. Dasturni yuklab olgandan so'ng T.D. segment registrini ishga tushirish kerak ds ma'lumotlar segmentining boshiga. Harakatlaringiz ketma-ketligini ayting.
9. 16-bitli protsessorlarning asosiy buyruq formatlarini tavsiflang.
10. Ikki operandli protsessor ko‘rsatmasida postbayt maydonlarining (adreslash bayti) tarkibi va maqsadini ko‘rsating.
11. 16 va 32 bitli protsessorlarning adreslash mexanizmidagi asosiy farqlarni ko'rsating.
12. Quyidagi buyruqlardan qaysi biri xato bilan yozilgan va nima uchun? Barcha identifikatorlarni ma'lumotlar segmentidagi so'zlar sifatida belgilangan o'zgaruvchilar sifatida ko'rib chiqing:
mov bp,al
mov [op_1+bx+di+12],ax
mov [op_1],[op_2]
mov ax,[op_3+dx]
mov cs, ax
mov [bx+si],2
lea bx, op_2
mov bx,ofset [op_2]
Tavsiya etilgan o'qish: 1.3
3- son LABORATORIYA ISHI
Mavzu: BIRINCHI DASTURNI ASSEMBLY TILIDA ISHLAB CHIQISH.
Ishdan maqsad : assembler dasturining tuzilishi bilan tanishish, assembler tilida birinchi dastur yaratish.
Ishlash vaqti 2 soat
Nazariy material
Dastur har qanday OT tomonidan bajarilishi uchun uni bajariladigan faylga kompilyatsiya qilish kerak. DOS da bajariladigan fayllarning asosiy ikkita formati COM va EXE hisoblanadi.
COM tipidagi fayllar dastur haqida hech qanday qo'shimcha ma'lumotsiz faqat kompilyatsiya qilingan kodni o'z ichiga oladi, barcha kodlar, ma'lumotlar va stek bir segmentga joylashtirilgan va 64 KB dan oshmasligi kerak.
|
.model kichkina
|
|
.kod
|
|
org 100h
|
|
boshlanishi:
|
|
mov ah, 9
|
|
mov dx, ofset xabari
|
|
int 21 soat
|
|
ret
|
|
xabar db " Salom ", 0dh, 0ah, '$'
|
|
oxiri boshlanadi
|
Uning qanday ishlashini tushunish uchun dasturning manba kodini ko'rib chiqaylik.
kod, ma'lumotlar va stek segmentlarini birlashtirgan TINY xotira modelini belgilaydi. Ushbu model COM tipidagi fayllarni yaratish uchun mo'ljallangan.
DOS-da manzilni shakllantirish uchun segment va ofset ishlatiladi "HELLO" liniyasining manzilini shakllantirish uchun DS (segment) va DX (ofset) juftligidan foydalaniladi. *.com dasturini xotiraga yuklashda barcha segment registrlari dasturimiz yuklangan segmentga (jumladan DS ham) teng qiymatni oladi. Shuning uchun chiziq segmentini DS ga yuklashning hojati yo'q (u allaqachon yuklangan).
.CODE direktivasi kod segmentini boshlaydi, bizning holatlarimizda u ham ma'lumotlarni o'z ichiga olishi kerak.
ORG 100h dastur hisoblagichini (IP) 100 soatga o'rnatadi, chunki MAQOMOTI fayli xotiraga yuklanganda DOS PSP ma'lumotlar bloki bilan birinchi 256 baytni (100 soat) egallaydi va dastur kodini faqat shu blokdan keyin joylashtiradi. COM fayllariga kompilyatsiya qilingan barcha dasturlar ushbu direktiva bilan boshlanishi kerak.
belgisi : dasturning birinchi buyrug'idan oldin joylashgan bo'lib, dastur qaysi buyruq bilan boshlanishini ko'rsatish uchun END direktivasida (Begin - inglizcha start; end - end) ishlatiladi .
|
| |