mazmuni
  
Izohlar - Amaliy ish № Mashina kodlarida kompyuterning ishlash tamoyillarini o'rganish

|
Amaliy ish № Mashina kodlarida kompyuterning ishlash tamoyillarini o'rganish
|
bet | 4/9 | Sana | 16.01.2024 | Hajmi | 65,57 Kb. | | #138870 |
Bog'liq 2-Amaliy ishmazmuni
|
Izohlar
|
100,101
|
jmp 108
|
dasturning boshiga (ma'lumotlarni chetlab o'tish)
|
102,103
|
3
|
x
|
104.105
|
7
|
y
|
106,107
|
0
|
r
|
Eslatma. Ma'lumotlarni shu tarzda joylashtirish o'zining afzalliklari va kamchiliklariga ega. Bir tomondan, ma'lumotlar maydonini chetlab o'tish talab qilinadi, demontaj paytida qiyinchiliklar paydo bo'ladi (pastga qarang), lekin boshqa tomondan, ma'lumotlar dastur bilan birga bitta massivda diskda saqlanadi va ma'lumotlarning manzillari dasturni yozish vaqtida allaqachon aniqlangan. Debug bilan ishlashda ikkinchisi muhim ahamiyatga ega.
Shunday qilib, ma'lumotlar uchun xotira rejalashtirilgan va siz doimiy ravishda jadvalga qarab turishingiz mumkin. 2, dasturni yozing (quyidagi protokolga qarang; undagi dw direktivasi ikki baytli raqamni bildiradi).
Qo'shimcha qilaylik, protokolda biz yozishimiz kerak bo'lgan belgilar qalin qilib ko'rsatilgan; qolganlari tuzatuvchi tomonidan ko'rsatiladi. Bundan tashqari, tahrirlash paytida kursiv bilan ta'kidlangan matn muallifning kompyuterida paydo bo'lganidan farq qilishi mumkin va ellips ekranda ko'rsatilgan satrlarni almashtiradi, ularning mazmuni bizning vazifamiz uchun mutlaqo ahamiyatsiz.
13E4: 010F A30601
13E4: 0112 CD20
...
|
MOV INT
|
[0106], AX
20
|
-g
|
|
|
Dastur odatdagidek yakunlandi
-d 102
13E4: 0100 03 00 07 00 0A 00-A1 02 01 03 06 04 01 A3 ..............
13E4:0110 06 01 CD 20 00 00 00 00-00 00 00 00 34 00 D3 13 ... ........4...
...
13E4: 0180 00 00
|
Endi to'plamni u direktivasi bilan boshqaramiz. Jurnal shuni ko'rsatadiki, dasturning o'rtasida ma'lumotlarning mavjudligi disk raskadrovka demontajchisini "chalkashtirib yuboradi": o'zgaruvchan qiymatlarni mashina buyruqlari sifatida talqin qilishga urinish, Debug 108 manziliga "olmaydi". Natijada, birinchi buyruq dastur noto'g'ri ko'rinadi. u 108 tekshiruvi hamma narsa xotirada to'g'ri saqlanganligini tasdiqlaydi.
Eslatma. Oxirgi nashrdan boshlab, dastur 108-manzildan boshlanib, 113-bayt bilan tugashini esda tuting. Bu maʼlumot keyinchalik dasturni qayta ishlashda bizga kerak boʻladi.
Qolgan narsa dasturimizni ishga tushirish va javobni ko'rish, d 102 buyrug'i bilan xotira tarkibini chop etish. 3, 7, A (1010) o'n oltilik raqamlarini dekodlashda teskarisiga oid 1-jadvaldagi eslatmani albatta eslab qolishingiz kerak. baytlarni xotirada saqlash. Protokol tahlilining qulayligi uchun protokoldagi r o‘zgaruvchining natijaviy baytlari tagiga chizilgan.
Endi biz tajribamizning eng qiziqarli qismiga o'tamiz. r = x + y - z tuzatilgan formuladan foydalanib hisoblash uchun dasturimizni qayta tuzish uchun nimani o'zgartirish kerak bo'ladi. Afsuski, siz juda ko'p operatsiyalarni bajarishingiz kerak bo'ladi, garchi ularning har biri o'z-o'zidan oddiy.
O'zgaruvchilar jadvalini kengaytirishdan boshlaylik. Yangi xotira taqsimoti jadvalda ko'rsatilgan. 3 (biz o'quvchilarga uni oldingi jadval bilan diqqat bilan solishtirishni maslahat beramiz; 3-jadvaldagi barcha o'zgarishlar ta'kidlangan va ta'kidlangan).
3-jadval
|
| |