Публикации

C# va assembler

Bo’sh vaqtlarimda boshqotirma sifatida quyi darajali dasturlash bilan qiziq turganim uchun doim boshqa tillarga assemblerda yozilgan kodlarni tiqishtirib yuraman. Qilmoqchi bo’lgan ishimni to’iq assemblerda yozib qo’ya qolay desam unda boshqotirma emas boshog’riqqa aylanib ketib qolishidan ko’ra, shu usul ma’qulroq.
Aslida .NET platformada CLI uchun o’zini “rodnoy” assembleri bor albatta. Buni IL (Oraliq til) deyiladi. .NET platformadagi ko’p tillar ushbu tilga kompilyasiya qilinadi va JIT kompilyator tomonidan bajariladi. Bunda yozilgan kod .NET dagi yuqori darajali tillardan biroz tezroq ishlaydi. Sababi kompilyasiya jarayonida optimizasiyani dastur odamchalik eplolmasligida albatta. Hullas hozir bizni IL qiziqtirmaydi, maqsad faqat “toza” assembler.
Читать дальше

Windows Script Host va skript tillar haqida

VBScript, JavaScript haqida hammamiz bilamiz yoki eshitganmiz. Bular odatda dinamik saytlarda klient tomonida brauzerda bajariluvchi skript tillar. Ushbu tillarni nafaqat brauzerda, balki boshqa muhitlarda ham ishlashi mumkinligini esa hamma ham yaxshi bilavermasa kerak.
Windows operasion tizimida WSH (Windows Script Host) deb nomlanuvchi komponent mavjud bo’lib, bunda yuqoridagi tillar yoki boshqa skript tillar yordamida COM (Component Object Model)ni qo’llovchi dasturlar bilan integrasiyalanuvchi skriptlar yoki biror bir vazifalarni bajaruvchi kichikroq skriptlar yaratish mumkin. Sodda qilib aytganda batch fayllarni mukammalroq varianti desak ham bo’laveradi. Ushbu skriptlarni bajarilishi uchun hech qanday qo’shimcha dastur, kutubxona ham shart emas. Biror matn/kod muharririda VBScript yoki JScript da skript kodini yozib, fayl kengaytmasini mos ravishda .vbs yoki .js qilishimiz yetarli. Ushbu kengaytmali fayllar to’g’ridan to’g’ri ishlayveradi.
Читать дальше

Bloknotda yengil "jarrohlik"

(Ushbu maqolani bu yerga joylaymi yo'qmi deb biroz o'ylanib qoldim. Biroq qandaydir tushunchalarni berishi mumkinligi, hech bo'lmaganda kimlargadir qiziq tuyulishi mumkinligidan oxiri joylayapman)

Bir muddat oldin exelab.ru saytida maqola o’qiyotib, tayyor bajariluvchi faylga (exe, dll) funksiya qo’shish haqidagi maqolani ko’rib qoldim. U maqolada windows tarkibidagi bloknot dasturiga (notepad.exe) boshqa bir kalkulyator dasturini kodini kiritib, bloknotda kalkulyator funksiyasini qo’shish haqida gap borgandi. Men ham huddi shunday narsa haqida yozmoqchi bo’ldim. Faqat oddiyroq usulda, ko’proq dizassemblerlashda boshlovchilar uchun tushuntirish sifatida yozishga harakat qildim. Quyida bloknot dasturiga oddiy bir funksiya qo’shamiz va shu orqali ba’zi bir tushunchalarni bilib olamiz.
Читать дальше

Bu qanday ishlaydi: Kompilyator (1-qism)

OS yoki kompilyator yaratishni hech bo'lmaganda bir marta o'ylab ko'rmagan dasturchi dasturchi emas degandi bir tanishim. Bu gapda jon bor, chunki OS va kompilyatorlar murakkab dasturlar sirasiga kiradi. Kompilyator haqida o'zim bilmagan holda 15 yil oldin o'ylashni boshlagandim. O'shanda maktabda Pravetz-8 kompyuterida o'tirib Basic dagi kodni qanday qilib tez ishlatish, assemblerga o'girish mumkinmikan deb bosh ham qotirgandim (Ma'lumot: Pravetz-8 kompyuteri O'zbekiston-Bolgariya hamkorligida ishlab chiqarilgan, ~4MHz chastotali adashmasam, 6502 mikroprosessor asosidagi, 64K operativ hotiraga ega kompyuter edi). ROM dagi «quyma» Basic interpretatori shu qadar sekin ishlardiki, ekranga biror shaklni chizilsa uni nuqtama nuqta kuzatib o'tirish mumkin edi.
Читать дальше

Sapyor o'yinini "o'ynaymiz" :)

Bekorchilikda papkalar aro sayohat qilib o’tirib, tasodifan windows tarkibidagi sapyor o’yiniga kirib qoldim (winmine.exe). Ushbu o’yinni ko’pchilik hech bo’lmaganda bir marta o’ynab ko’rgan albatta. Oddiy mantiq va tezkorlik talab qiladigan o’yin. Bu o’yinni biz bir vaqtlar talabalikda sheriklarim bilan kim tezroq tugatishdan musobaqa ham o’ynar edik. Hullas hozir bu o’yinni yana ko’rdimu, o’sha paytdagi bir gap yodimga tushib ketdi. Dasturlashni endi o’rganayotgan paytimda ushbu o’yinni dastur orqali o’ynaydigan dasturcha qilgandim. Qarangki o’sha dastur hali ham arxivimda turgan ekan. Dastur kodlariga qarab kayfiyatimni ham ko’tarib oldim. Hozir aytadigan gaplarim shu dasturcha haqida. Dasturdan ko’ra uni qanday qilinganligi qiziqroq bo’lsa kerak menimcha.
Читать дальше