Tizimli dasturlash - bet 7

|
Tizimli dasturlash
|
bet | 7/64 | Sana | 13.05.2024 | Hajmi | 183,36 Kb. | | #230077 |
Bog'liq Системное программирование, практикаtasm/l/c salom – buyruq listing faylini o‘zaro mos yozuvlar jadvali bilan to‘ldiradi, unda har bir yorliq qayerda aniqlanganligi va unga havola qilingan joy ko‘rsatiladi;
tasm/l/ n Salom – identifikatorlar jadvalini listingdan chiqarib tashlaydi;
tasm/ ml – foydalanuvchi identifikatorlarida katta va kichik harflarni ajratish imkonini beradi;
tasm/zi salom – buyruq qo'shiladi Salom.obj tuzatuvchidan foydalanish uchun zarur bo'lgan ma'lumotlar Turbo tuzatuvchi .
Jamoa uchun tlink :
tlink/ v salom - variant / v ichiga kiradi Salom. exe keyinchalik ushbu faylni tuzatuvchida ochish uchun zarur bo'lgan ma'lumotlar Turbo tuzatuvchi ;
tlink/m salom - variant / m displey fayli yoki yuk fayli yaratilishiga olib keladi Salom.map . Unda dasturga kiritilgan barcha segmentlarning nomlari, yuklab olish manzillari va o'lchamlari ko'rsatilgan;
tlink/x/ v Salom – buyruq yuklash imkonini beradi Salom. exe tuzatuvchiga Turbo Debugger , xaritalash faylini yaratishni (/ x varianti) oldini oladi.
Tlink/3 - bog'lovchi fayl turini yaratadi .exe 32 bitli kodni qo'llab-quvvatlash bilan.
Tlink / t < fayl_nomi obj > – variant / t kabi fayl yaratadi . com .
TUZLAGAN BILAN ISHLASH TURBO DEBUGGER (TD)
Tasm sintaktik jihatdan to'g'ri dasturlarni qanday yig'ishni biladi, lekin bu dastur aslida nima qilishini tushunmaydi. Ko'pincha dastur siz o'ylagandek ishlamaydi. Bunday vaziyatda yordam berishi mumkin TD - mantiqiy xatolarni topish va tuzatish uchun mo'ljallangan dastur [5, 6, 12, 14]. Barcha tuzatuvchilar kabi T.D. bosqichma-bosqich bajarish rejimida dasturni, dastur kodini nazorat qilish, nazoratchi rejimida ishlashi mumkin. Siz xotiradagi operandlarning qiymatlarini, shuningdek, registrlar va bayroqlarning qiymatlarini o'zgartirishingiz mumkin. T.D. Bundan tashqari, u turli operandlarni adreslash rejimlarida protsessor mashinasi ko'rsatmalar formatlarini o'rganishda o'qituvchi sifatida ishlatiladi.
Qanday foydalanishni ko'rsatish uchun T.D. o'qiyotganda assembly tili, dasturni o'rganing Salom tuzatuvchi nazorati ostida. Keling , dasturni qayta yig'amiz va disk raskadrovka ma'lumotlarini qo'shadigan variantlar bilan bog'laymiz obj - va exe fayllari:
tasm/zi salom.asm
tlink/v salom.obj
td hello.exe
Oxirgi buyruqni bajarganingizdan so'ng, ekranda oynani ko'rasiz Modul dasturning manba kodi bilan Salom.asm . Bu oyna raqami 1. Kursor tugmachalari yordamida dasturni matn bo'ylab yuqoriga va pastga siljitish orqali ko'rishingiz mumkin.
Dasturning boshqa ko'rinishini olish uchun menyuga o'ting Viev [ko'rib chiqish], buyruqni tanlang CPU va oynani toʻliq ekranga kengaytirish uchun tugmasini bosing. IN Besh sohadan iborat C PU oynasi dasturingizning dastlabki matnining qisqartirilgan shaklini, xotiradagi haqiqiy mashina kodlarini, registrlar va bayroqlarning qiymatlarini, stek va xotira baytini o'z ichiga oladi. Kursorni bir sohadan ikkinchisiga o'tkazish uchun tugmasini bosing .
Deraza maydoni CPU , kursor joylashgan joyda faol hisoblanadi. < Alt+F10 > tugmalarini bosish oynaning faol bo'limi uchun mahalliy menyu paydo bo'lishiga olib keladi CPU . Asosiy oyna maydoniga o'ting CPU va < Alt+F10 > tugmasini bosing. Jamoa tanlang Aralashgan (aralashma), unda uchta parametr mavjud: Yo'q, Ha Va Har ikkisi ham . Rejim Ikkalasi ham sukut bo'lib, uni ko'rishning eng yaxshi usuli bo'lib, chap ustunda mashina kodi baytlarini va o'ng ustunda dastur manbalari qatorlarini ko'rsatadi.
Oyna CPU dastur ko'rsatmalarini bosqichma-bosqich bajarish jarayonida protsessorning joriy holatini kuzatish uchun ishlatiladi. Birinchi buyruqning chap tomonidagi kichik uchburchak o'q mov ax,@data keyingi bajariladigan buyruq ekanligini bildiradi. Ushbu buyruqni bajarish uchun tugmasini bosing , strelka o'zgartirilgan registr qiymati bilan keyingi buyruqqa o'tadi. bolta registrlar oynasida. Ko'rsatmalarni bajarish uchun yana tugmasini bosing mov ds, ax . Iltimos, reestrdagi qiymatga e'tibor bering ds reestrdagi kabi bo'ldi ax , lekin registrdan xotira borini (pastki chap soha) segmentatsiyasida o'zgarishlar yuz berdi ds ro'yxatga olish uchun es .
Xotira qoldig'i bo'lgan maydonni faol qiling, < Alt+F10 > tugmalarini bosing va paydo bo'lgan mahalliy menyuda O'tish buyrug'ini tanlang. (o'tish). Siz kiritadigan ekran paydo bo'ladi ds : 0000 va ni bosing . Endi xotira dumpi uni bayt-baytda ko'rsatishda dasturingizning ishga tushirilgan ma'lumotlari massiviga mos keladi ( Promt, Xayrli tong va Xayrli kun o'zgaruvchilar belgilarining ASCII kodi ). To'liq dumpni ko'rish uchun standart tugmalar yordamida kursorni harakatlantiring. Ushbu faktning izohi MS-DOS operatsion tizimining xotiraga kengaytmali dasturlarni yuklashning o'ziga xos xususiyatlaridan kelib chiqadi. exe (1.2-rasm) .
O'zgaruvchan vakillikni yaxshiroq tushunish uchun Promt xotira dumpida menyuga kiring Ma'lumotlar (ma'lumotlar), buyruqni tanlang Tekshirish (imtihon). Ko'rsatilgan ekranda yozing Promt va ni bosing . Ko'rsatilgan oynani kengaytirish uchun sichqonchadan foydalaning Tekshirish Promt o'ng tarafdagi ekranning butun balandligiga vertikal ravishda. Ushbu oynaning chap ustuni massiv o'zgaruvchisi elementining raqamini ko'rsatadi Promt[i] , va o'ngda - qiymat Ushbu element uchun ASCII kodi. Xotira dumpida ushbu kodlarni toping, xususan:
ds : 0000 exCode = 00 soat
ds:0001 Promt[0]=' E '=9Dh
ds:0002 Promt[1]=' t '=E2h
ds:0003 Promt[2]=' o '=AEh
Va T . d .
Oldindan oynani yopgan holda tugmachasi yordamida dasturni buyruq bo'yicha bajarishni davom ettiramiz . Yopish tugmasini bosish orqali Promtni tekshirish . Har bir buyruqni bajargandan so'ng, biz registr qiymatlarining o'zgarishini kuzatamiz.
|
| |