№
|
Саволлар
|
Жавоблар
|
1
|
Assemblerda boshqarish va holatni belgilash registrlari.
|
Maxsus registrlardan bizni faqat boshqaruv va holatni belgilash registrlari qiziqtiradi.
Boshqaruv registrining qiymati yaxlit holda hech narsani anglatmasada, uning ma'lum bitlarining
qiymatlari ma'noga ega. Shu tomondan u MP ning EFLAGS registriga o'xshab ketadi. Boshqaruv
registri orqali SQP buyruqlarining ish faoliyati nazorat qilinadi. Gap shundaki, boshqaruv
registrining tegishli bitlari o'rnatilgan yoki o'rnatilmaganligiga qarab navbatdagi bajarilayotgan
SQP buyrug'i turli xil natijani berishi mumkin.
Boshqaruv registrining 10- va 11-bitlari yaxlitlash boshqaruvi deb nomlanadi va ularning
qiymatiga qarab SQP ning yaxlitlash buyruqlari turli xil yaxlitlashlarni amalga oshiradi. Ushbu
ikki bit hammasi bo'lib to'rt xil qiymat qabul qiladi va bu qiymatlar o'z ma'nosiga ega. Ma'nosi berilgan. Boshqaruv registrining boshqa bitlari bizni qiziqtirmaydi va ular ushbu kitobda yoritilmaydi.
Holatni belgilash registriga kelsak, uning bitlari EFLAGS da bo'lgani kabi bayroqlar sifatida
qabul qilinadi. Unda asosan o'nli kasr sonlar arifmetikasida yuz berishi mumkin bo'lgan holatlarni
aniqlaydigan bayroqlar o'rin olgan. Masalan, natija maromlashtirilmagan son bo'lganida, holat
registrining birinchi biti o'rnatiladi. Ushbu bit maromlashtirilmaganlik bitideb nomlanadi. Bundan
tashqari holatni belgilash registrida ZF, CF, OF ga o'xshagan bayroqlar mavjud. Yaxlitlash
boshqaruvi
Yaxlitlash boshqaruvi Ularning ma'nosi
00 Eng yaqin butun songa qarab yaxlitlash
01 Pastga qarab yaxlitlash
10 Yuqoriga qarab yaxlitlash
11 Butun qismni olish
|
2
|
Assemblerda butun sonlar ustida arifmetik amallar
|
protsessor uchun qiymat ishorasining
ahamiyati yo'q. Lekin dasturlash davomida siz sonlarga bemalol ishorali yoki ishorasiz qiymat
sifatida muomala qilishingiz mumkin. Assembler dasturchi qiymatga nisbatan ishlatayotgan
buyruqlariga qarab qiymatning ishorali yoki ishorasiz ekanligini bilib oladi. Aslida qiymatga
nisbatan birinchi ishlatilgan buyruq o'sha qiymat ishorali yoki ishorasiz deb qaralishini aniqlab
beradi. Lekin hamma buyruq ham ishorali yoki ishorasiz sonlar uchun har xil bo'lavermaydi. Qo'shish va ayirish Ikki son qo'shilganida ularning ikkilik ko'rinishidagi nusxalari protsessor tomonidan tagmatag usulda qo'shiladi.
Gap ishorasiz qiymatlar ustida ketganda natija bajarilayotgan amal o'lchamidan oshib
ketmasligi haqida qayg'urish kerak. Masalan, bir baytli qiymatlar bilan ishlaganda natija 255 dan
oshib ketmasligi kerak. 254 ga 5 ni bir bayt sifatiga qo'shib ko'ramiz: 11111110 = 254
+
00000101= 5
Asosan qo'shish amalini bajaradigan uchta buyruq bor. Ular:
1) INC(Increment) – o'zgaruvchining qiymatini bittaga oshiradi.
inc maqsad
2) ADD (Addition) – ikkita qiymatni oddiy qo'shish.
add maqsad , manba
3) ADC(Add Carry) – CF ni hisobga olgan holda qo'shish.
adc maqsad , manba
|
3
|
Assemblerda ko'paytirish va bo'lish usullar.
|
Ko'paytirish va bo'lishda ham ishorasiz va ishorali sonlar farq qiladi. Ammo qo'shish va
ayirishdan farqli ravishda bu yerda buyruqlar ishorali yoki ishorasiz qiymatlarga qarab har xil
bo'ladi. Chunki ikkilamchi to'ldiruvchi usuli ko'paytirish yoki bo'lishga kelganda protsessorga
ikkala holda ham bir xil ishlash imkonini bermaydi.
Shunday qilib, ishorasiz ko'paytirishda biz MULbuyrug'idan foydalanamiz. Ishorali sonlarni ko'paytirish uchun IMULbuyrug'idan foydalanamiz. Bo'lishda ham ishorali va ishorasiz sonlar uchun ikki xil buyruq ishlatiladi. Ishorasiz qiymatlar
uchun DIVbuyrug'i mavjud bo'lib, unga manba sifatida faqat bo'luvchi ko'rsatiladi: Bo'luvchi 4 baytli bo'lganda ham xuddi shunday vaziyat yuzaga keladi. Faqat bu holatda
bo'linuvchi EDX:EAX bo'ladi va bo'lishdan so'ng bo'linma EAX da, qoldiq esa EDX da bo'ladi.
Ishorali sonlarni bo'lishda IDIVbuyrug'i ishlatiladi:
|
4
|
Assemblerda o'zgarmaslar
|
Dasturlashda o'zgaruvchilar bilan bir qatorda o'zgarmaslar ham keng qo'llaniladi. O'zgarmas
bu dastur kodida to'g'ridan-to'g'ri yozib ketiladigan qiymat. Masalan, yuqorida ko'rib chiqqan
matematik funksiyamizning o'zgarmas qiymatlari 2 va 4 hisoblanadi. Shunga
o'xshab dasturning ham o'z o'zgarmaslari bo'ladi. Oldingi mavzuda biz o'zgarmaslar bilan ish
ko'rib ulgurgan edik. X1 dd 85, 96 ni oladigan bo'lsak, bu yerda 85 va 96 o'zgarmas
hisoblanadi.
O'zgarmaslar to'rt turga bo'linadi: sonli, belgili(harfli), qatorli va kasr sonli. Sonli
o'zgarmaslar har xil sanoq tizimidagi oddiy tarzda beriladigan sonlardir. Agar son maxsus
qo'shimchalarsiz berilsa NASM ularni o'nli son sifatida qabul qiladi. Son ma'lum bir sanoq
tizimiga tegishliligini bildirish uchun son oxirida quyidagi qo'shimchalardan birini qo'shish kerak
bo'ladi: H, Q yoki O, B. Ular mos ravishda son o'n oltilik, sakkizlik va ikkilik sanoq tizimida
ekanligini NASMga bildiradi. O'n oltilik son 0x old qo'shimchasi orqali ham berilishi mumkin.
Ammo, bir narsani unutmaslik kerakki, o'n oltilik son oxirida Hqo'shimchasi bilan berilgan doim
0....9 raqamlaridan birortasi bilan boshlanishi shart! Aks holda ba'zan o'n oltilik sonni nishon
nomidan farqlash qiyin bo'ladi. Masalan, FADH ni oladigan bo'lsak, bu nishon nomi yoki 4013
soni ekanligini anglash qiyin. Muammo ikki xil usulda yechilishi mumkin: 0FADHyoki 0xFAD.
|
5
|
Assemblerda taqqoslash buyrug’i
|
Ikki o'zgaruvchi qiymatini taqqoslashda CMP (Compare - Taqqoslamoq) buyrug'idan foydalaniladi:
cmp chap_manba , o'ng_manba
Taqqoslash uchun ushbu buyruq chap_manba dan o'ng_manba ni ayiradi va agar natija musbat chiqsa, chap_manba ni katta deb topadi va aksincha. Lekin CMP ning ayirish buyrug'idan farqi shundaki, u ayirmani biror yerda saqlamaydi, ya'ni maqsad talab qilinmaydi. Agar sizni ayirma ham qiziqtirsa, unda CMP ning o'rnida bemalol SUB dan foydalanishingiz mumkin. SUB buyrug'i uchun aytilgan barcha qoidalar CMP ga ham taalluqlidir. Taqqoslash bajarilgandan so'ng CMP natijasi turli xil bayroqlar o'rnatilgan yoki o'rnatilmaganligiga qarab aniqlanadi.
|
6
|
Assemblerda tarmoqlash buyruqlari
|
Tarmoqlash buyruqlari turli bayroqlar o'rnatilgan yoki o'rnatilmaganligiga qarab dasturni turli tarmoqlar bo'yicha harakat qilishini ta'minlaydi. Masalan, CMP orqali ikki qiymatni o'zaro taqqoslab tekshirgan shartimiz bajarilgan yoki bajarilmaganligidan kelib chiqib dasturning qolgan qismini turlicha ishlatishimiz mumkin. Buni amalga oshirish uchun dasturning ma'lum bir qismida shart haqiqat bo'lganda bajarilishi kerak bo'lgan buyruqlar ketma-ketligini joylashtirsak, dasturning boshqa qismida esa shart yolg'on bo'lgandagi bajarilishi kerak bo'lgan buyruqlar ketma-ketligini joylashtiriladi. Taqqoslashdan so'ng esa kerakli dastur qismiga «sakrash» orqali o'tamiz, ya'ni kerakli tarmoqga ko'chamiz. Endi esa tarmoqlash buyruqlari orqali dasturning xohlagan qatoriga o'tish mumkin. Ikki xil, ya'ni shartli va shartsiz o'tishlar mavjud. Shartsiz o'tishda hech qanday bayroq qiymati tekshirilmaydi va so'zsiz ko'rsatilgan nuqtaga dastur boshqaruvi topshiriladi. Shartli o'tishda esa ma'lum bayroqlar o'rnatilgan bo'lsa, shundagina o'tish yuz beradi. Aks holda hech qanday o'tish bo'lmaydi va tarmoqlash buyrug'idan so'ng keladigan navbatdagi buyruq bajariladi.
Shartsiz o'tish JMP (Jump – Sakrash) buyrug'i orqali amalga oshiriladi:
jmp [aniqlovchi] o'tish_manzili
|
7
|
Butun sonlarni xotirada tasvirlash usullari.
|
Ular kasr qismisiz sonlar . Masalan 134 va 125. Butun son sifatida o'nli kasr nuqtasi o'zgarmas sonlar keltirilishi mumkin.
Ishorasiz o'zgaruvchi hech qachon manfiy bo'la olmaydi . 0 yoki musbat qiymatlarni qabul qilishi mumkin. O‘zgarish diapazoni 0 dan cheksizgacha. Axborot keluvchi moslama ishorasiz o'zgaruvchini quyidagi bosqichlar yordamida to'playdi.
1. Butun son (integer) 2 lik sanoq sistemasiga o'tkaziladi.
2. Agar bitlar soni n dan kam bo'lsa , chap tarafidan 0 lar qo'shiladi.
|
8
|
Chrome masofaviy ish stoli (Chrome Remote Desktop)
|
Qaysi platformalarga ulanishingiz mumkin: Windows, macOS, Linux.
Qaysi platformalardan ulanish mumkin: Windows, macOS, Linux, Android, iOS. Chrome Remote Desktop - bu juda oddiy platformalararo masofaviy kirish dasturi. Uning ish stoli versiyasi Google Chrome uchun dastur bo'lib, butun tizimni keraksiz sozlamalarsiz boshqarish imkonini beradi.
Chrome masofaviy ish stolining ish stoli versiyasi ikkita menyu bo'limini ko'rsatadi: Masofaviy kirish va masofaviy qo'llab-quvvatlash. Birinchisida, kompyuterga ulanish uchun nom va parolni o'rnatishingiz kerak. Ikkinchisida siz ulanish (server) uchun kod yaratishingiz mumkin, shuningdek, masofaviy kompyuterga ulanish uchun kodni (mijoz) kiritishingiz mumkin.
Chrome Remote Desktop mobil ilovasi kompyuteringizga masofaviy kirish imkonini beradi. Shu bilan birga, teskari yo'nalishda - kompyuterdan mobil qurilmaga ulanish mumkin emas. Shu bilan birga, ish stoli versiyasi kompyuterni ham mijoz, ham serverga aylantirishi mumkin.
|
9
|
Dasturlash tillari klassifikatsiyasi.
|
Dasturlash tillarining umumiy qabul qilingan tizimli taksonomiyasi mavjud emas. Lekin dasturlash tillari klassifikatsiyasini tuzish mumkin bo’lgan umumiy xarakteristikalar mavjud: masalan, texnik xarakteristikalar, ustunlik jihatlari, amaliyotda keng tarqalganligi kabi. Hozirgi kunda ommalashgan zamonaviy dasturlash tillari o’zining kamida bitta ajdodiga ega. Ko’pchilik dasturlash tillari turli dasturlash tillarining bir necha elementlari birikmasidan tashkil topadi. Ba’zi bir hollarda bunday birikmalar matematik tahlil bo’yicha tuzilsa, boshqa hollarda amaliyotdagi talabdan kelib chiqib tashkil etiladi.
Dasturlash tillari rasman “daraja” kriteriyasiga ega emas. Shartli ravishda bu atama tilning semantikasi va maqsadli protsessor arxitekturasining mashina kodlari o'rtasidagi farq darajasini bildiradi, lekin tarixda shunday holatlar ham bo’lganki, bir platformada “quyi darajali” hisoblangan dasturlash tilida yozilgan dastur boshqa bir platformada “yuqori darajali” singari kompilyatsiyalangan, yoki “yuqori darajali” hisoblangan dasturlash tillari apparatli realizatsiya qilingan.
|
10
|
Dasturlash tillari tarixi.
|
Shuni aytish mumkinki, dasturlash tillari zamonaviy electron hisoblash mashinalari paydo bo’lguniga qadar ham mavjud bo’lgan: XIX asrda yaratilgan qurilmalar, masalan, metal silindr vositali musiqali quticha (keyinchalik mexanik pianino) va karton karta vositasida ishlovchi Jakkard tikuv stanogi (1804) kabilarni shartli ravishda dasturlanuvchi deb atash mumkin edi. Ularni boshqarish uchun predmetli-yo’naltirilgan dasturlash tillari prototiplari deb hisoblash mumkin bo’lgan zamonaviy klassifikatsiyalar doirasidagi instruksiyalar nabori qo’llanilgan. 1842 yil Ada Avgusta grafinya Lavleys tomonidan Charlz Bebbidj analitik mashinalari uchun Bernulli sonlarini hisoblovchi dastur yozgan tilni dunyodagi birinchi bug’ dvigatellli mexanik kompyuterda realizatsiya qilish mumkin bo’lgan. 1930-1940 yillarda algoritmlarni rasmiylashtirish uchun A.Chyorch, A. Tyuring, A. Markovlar matematik abstraksiya (lyambda-hisoblash, Tyuring mashinasi, normal algoritmlar)ni yaratishdi. (*) UNIVAC va IBM 701 kabi EHM dasturchilari 1950-yillar boshlarida dastur yaratishda bevosita mashina kodalaridan foydalanishgan, ularda nol va birlardan iborat dasturlar yozilgan va bu tillar birinchi avlod dasturlash tillari deb hisoblangan (*) 1950-yillar o’rtalariga kelib, Fortran, Lisp, Kobol kabi uchinchi avlod dasturlash tillari paydo bo’la boshladi. (*) 1950-yillar oxirlariga kelib, bu sohada bir qator dasturlar uchun asos bo’lib xizmat qilgan Algol dasturlash tili paydo bo’ldi.
|
11
|
Defragmentatsiya va optimizatsiyalash.
|
Totsl komander ....."Pusk" menyusini oching va qidiruvda "Defrag ..." ni kiriting. Tegishli ilovani bosing.: SSD-ni bosing va unda ilgari saqlangan ma'lumotlarni tozalash jarayonini boshlash uchun "Optimallashtirish" -ni tanlang. Bu SSD tezligini oshirishi kerak.
Qattiq holatdagi diskni (SSD) defragmentatsiya qilib bo'lmaydi, chunki uning harakatlanuvchi qismlari yo'q. Jarayon tugashini kuting. Qattiq diskni yoki uning qismini tanlaganingizda, "Tahlil qilish" buyrug'i mavjud. Unga bosing. Tizim tanlangan qattiq diskni tahlil qiladi.
Agar tahlil natijalari optimallashtirish zarurligini ko'rsatsa, tanlangan bo'limni defragmentatsiya qilish uchun "Optimallash" tugmasini bosing. Siz bu jarayonni avtomatlashtirishingiz va uni haftalik yoki oylik bajarishingiz mumkin. Buning uchun "Sozlamalarni o'zgartirish" tugmasini bosing."Выполнять по расписанию (рекомендуется)" katagiga belgi qo'ying. O'zgarishlarni saqlash uchun OK tugmasini bosing.
|
12
|
Flesh-disk sector(yacheyka)ni qayta tiklash.
|
flesh disk sector(yacheyka)ni Qayta tiklash
Operatsion tizim uni formatlashdan butunlay voz kechsa va "Windows formatlashni yakunlay olmaydi" xatosini berganda USB flesh-diskini qanday miltillash mumkin? USB Flash tekshiruvi modelini aniqlash kerak, so'ngra flesh-diskning dasturiy ta'minoti ishlab chiqariladigan ushbu modelga mos keladigan yordamchi dasturni topish kerak.
Fayl tizimidagi xatolar bilan USB drayverini miltillamasdan qayta tiklash uchun juda yaxshi imkoniyat mavjud. Siz "HDD LLF Low Level Format Tool" yordam dasturini sinab ko'rishingiz va ma'lumotlar drayverini past darajadagi formatlashni amalga oshirishingiz mumkin. U bilan muloqot qilish oson. Ishga tushirildi, tanlangan media, "Davom etish" tugmasini bosing.
|
13
|
Formal til va gramatika ta’rifi
|
Yozish qoidasida esa biz RESX direktivasidan foydalanamiz. X o'rnida jadvalda ko'rsatilgan harflardan biri bo'lishi mumkin. Bu harflar qancha xotira ajratilishini aniqlaydi. Direktiva iborasiga kelsak, bu faqat assembler tushunadigan va umuman mashina tiliga o'girilmaydigan maxsus buyruqlar. Assembler RESX ni ko'rganida o'zgaruvchi uchun joy ajratilishi kerakligini anglaydi.
|
14
|
Identifikatorlar jadvali va uni qurish usullari
|
Semantikaning to’g’riligini tekshirish va kodni generasiyalash boshlang’ich tildagi dasturda uchraydigan o’zgaruvchilar, konstantalar, funksiyalar va boshqa elementlaming xususiyatlarini bilishni talab qiladi.
Boshlang’ich dasturda ushbu elementlar identifikatorlar sifatida belgilanadilar. Boshlang’ich dasturda identifikatorlar va boshqa elementlami ajratish leksik tahlil fazasida amalga oshiriladi. Ularning xususiyatlari sintaksis ajratish, semantik tahlil va kodni generasiyaga tayyorlash fazasida aniqlanadi. Mumkin bo’lgan xususiyatlar va ulami aniqlash usullari kiruvchi til semantikasiga bog’Iiq. Har qanday ixtiyoriy holda ham kompilyator barcha topilgan identifikatorlami va ularga bog’Iiq xususiyatlami butun kompilyasiya jarayoni davomida, kompilyasiya jarayonining turli fazalarida foydalanish imkoniyatiga ega bo’lish uchun, saqlab turish imkoniyatiga ega bo’lishi kerak. Ushbu maqsadlar uchun, kompilyatorlarda maxsus berilganlami saqlash joylari, ya'ni belgilar jadvali yoki identifikatorlar jadvali deb atalgan, jadvallardan foydalaniladi. Ixtiyoriy identifikatorlar jadvali maydonlar to’plamidan iborat bo’lib, ularning soni boshlang’ich dasturda topilgan turli identifikatorlar soniga teng. Har bir maydon jadvalning ushbu elementi haqida to’liq ma'lumotni saqlaydi. Kompilyator bitta yoki bir nechta identifikatorlar jadvali bilan ishlashi mumkin, ulaming soni kompilyatomi amalga oshirilishiga bog’Iiq. Masalan, boshlang’ich dastuming turli modullari uchun turli identifikatorlar jadvalini, yoki kiruvchi tilning turli toifali elementlari uchun tashkil etish mumkin.
Boshlang’ich dasturning identifikatorlar jadvalida saqlanayotgan har bir elementi uchun ma'lumotlar tarkibi kiruvchi tilning semantikasi va element toifasiga bog’Iiq. Masalan, identifikatorlar jadvalida quyidagi ma'lumotlar saqlanishi mumkin:
v o’zgaruvchilar uchun:
• o’zgaruvchi nomi;
• o’zgaruvchining qabul qiluvchi qiymatining toifasi;
• o’zgaruvchi bilan bog’Iiq xotira sohasi;
v konstantalar uchun:
• konstanta nomi (agar bor bo’lsa);
• konstanta qiymati
• konstanta toifasi (agar talab qilinsa);
v funksiyalar uchun funksiya ismi;
• funksiyaning formal argumentlari soni va toifasi;
• qaytariluvchi natija toifasi;
• funksiyakodi manzili.
|
15
|
Ishorali va ishorasiz butun sonlar
|
Murakkablikning bir ko'rinishi qilib nol sonini olaylik. Ko'rib o'tgan usulimiz bo'yicha nol sonining ikki xil shakli mavjud bo'lib qolayapti: +0 (00000000)2 va -0 (10000000)2, vaholanki, nolning ishorasi bo'lmaydi. Shunga o'xshash yana bir qancha o'ng'aysizliklar bo'lib, ular markaziy protsessor ishini chigallashtirishi mumkin.
Sonni xotirada saqlashning ikkinchi usuli birlamchi to'ldiruvchi (one's complement) deb nomlanadi. Bu usulga ko'ra sonning qarama-qarshi ishoralisi o'sha sonning barcha bitlari qarama-qarshisiga almashtirish orqali qo'lga kiritiladi. Masalan 7 (00000111)2 sonining birlamchi to'ldiruvchisi 11111000 ko'rinishga ega bo'ladi. Demak, -7 xotirada 11111000 ko'rinishda saqlanadi. Ammo bu usulda ham nol ikkita ko'rinishga ega (00000000) va (11111111).
Uchinchi usul barcha hozirgi zamonaviy komyuterlarda qo'llaniladigan ikkilamchi to'ldiruvchi(two's complement) usuli bo'lib, uni hisoblash ikki bosqichga ega:
1) Avval sonning birlamchi to'ldiruvchisi topiladi,
2) Keyin shu natijaga 1 qo'shiladi.
Masalan, +7 (00000111)2 uchun bu quyidagicha bo'ladi:
|
16
|
Masofaviy boshqarish (Microsoft Remote Assistance)
|
Masofaviy boshqarish bu Windows-ga o'rnatilgan yordamchi dastur bo'lib, u uchinchi tomon dasturlarisiz kompyuterlarni bir-biriga tezda ulash imkonini beradi. Ushbu usul sizga fayllarni almashish imkonini bermaydi. Ammo sizning xizmatingizda masofaviy kompyuterga to'liq kirish, boshqa foydalanuvchi bilan hamkorlik qilish va matnli suhbat qilish imkoniyati mavjud.
|
17
|
Masofaviy ish stoli (Microsoft Remote Desktop)
|
§ Siz ulanishingiz mumkin bo'lgan platformalar: Windows (faqat Professional, Enterprise va Ulti_mate nashrlari).
|