|
Tizimli dasturlash
|
bet | 57/64 | Sana | 13.05.2024 | Hajmi | 183,36 Kb. | | #230077 |
Bog'liq Системное программирование, практикаNazorat savollari:
Interruptni qanday hal qilish kerak?
Interrupt eshiklari nima?
LIDT buyrug'i nima uchun ishlatiladi ?
Tavsiya etilgan o'qish: 2,.3.
17-son LABORATORIYA ISHI
Mavzu: Axborotning grafik tasviri
Ishning maqsadi : Ekranda rang va grafiklardan foydalanish bilan bog'liq rivojlangan kompyuter imkoniyatlarini ko'rsatish.
Ishlash vaqti 2 soat
Nazariy material
Rangli grafiklarni ko'rsatish uchun quyidagi uch turdagi video monitorlar qo'llaniladi (narx va sifatni oshirish tartibida):
1. Ko'pchilik o'z kompyuterlari uchun foydalanadigan o'zgartirilmagan rangli televizor qabul qiluvchisi (odatiy uy televizori).
2. Radiochastota modulyatsiyasisiz rangli signalni qabul qiluvchi va radioto'lqinlar orqali uzatish uchun ishlatiladigan kombinatsiyalangan video monitor. Yuqori tasvir sifatini ta'minlaydi.
3. RGB monitori kirish signallarini uchta alohida elektron qurolga yuboradi - uchta asosiy rangning har biri uchun qizil, yashil va ko'k. Eng qimmat bo'lgan RGB monitor eng yaxshi tasvir sifatini ta'minlaydi.
Rangli grafik monitor uchun standart adapter (CGA - Color/Graphics Adapter) B8000 hex manzilidan boshlanadigan 16K bayt xotiradan, belgilar uchun 8K baytdan va ularning atributlari uchun 8K baytdan foydalanadi. 80x25 formatida ishlaganda, adapter displey buferining to'rtta sahifasini (0-3) saqlashi mumkin, har biri 4K bayt. 40x25 formatida ishlaganda adapter har biri 2K baytdan iborat sakkiz sahifani (0-7) saqlashi mumkin. Standart nol sahifa (displey xotirasining boshida).
Dastur ekranda istalgan sahifani ko'rsatishi va bu vaqtda keyingi ko'rsatish uchun xotirada boshqa sahifani tashkil qilishi mumkin.
Kengaytirilgan grafik adapter (EGA) standart rang adapteriga (CGA) qaraganda yuqori aniqlikni ta'minlaydi va ko'p hollarda u bilan mos keladi.
Ruxsat ekranda 320x200, 640x200 va 640x350 piksellarni taqdim etadi.
Rangli adapterlar ikkita asosiy ish rejimiga ega: matn (alfanumerik) va grafik, va ikkita asosiy o'rtasida qo'shimcha rejimlar ham mumkin. Standart - matn rejimi. "BIOS INT 10H Interrupt" Grafik rejimda rangli tasvirlarni yaratish uchun minimal rastr nuqtalari - piksellar yoki piksellar ishlatiladi. Rangli grafik adapter (CGA) uchta ruxsat darajasiga ega:
1. Past piksellar sonini (ROMda qo'llab-quvvatlanmaydi) 160 nuqtadan iborat 100 satr (ya'ni, har bir nuqta uchun to'rt bit) chiqishini ta'minlaydi. Har bir nuqta oldingi Ranglar bo'limida tasvirlanganidek, 16 ta standart rangdan biriga ega bo'lishi mumkin. Ushbu rejimni amalga oshirish Motorola 6845 CRT kontrollerining to'g'ridan-to'g'ri manzilini o'z ichiga oladi. Buning uchun ikkita port ishlatiladi: hex 3D4 va 3D5.
2. Standart rangli grafikalar uchun o'rtacha ruxsat 320 pikselli 200 qatorni ta'minlaydi. Bu holda har bir bayt to'rtta nuqtani bildiradi (ya'ni har bir nuqtaga ikki bit).
Yuqori aniqlik 640 nuqtadan iborat 200 qatorni ta'minlaydi.
Bu holda 16K bayt xotira talab qilinganligi sababli, yuqori piksellar soniga faqat qora va oq (BW) rejimida erishiladi. Bu erda har bir bayt 8 nuqtani bildiradi (ya'ni har bir nuqta uchun bir bit). Nolning bit qiymati nuqta rangi qora rangni, bittaning bit qiymati esa oq rangni beradi.
Grafik rejimida ROM faqat birinchi 128 ASCII kodlari uchun bitmaplarni o'z ichiga oladi. INT 1FH buyrug'i qolgan 128 ta belgini belgilaydigan xotiradagi 1K bayt maydoniga kiradi. (har bir belgi uchun 8 bayt).
Grafik baytlarni video signallarga xaritalash o'rta va yuqori piksellar soniga o'xshash.
INT 10H buyrug'ining AH=00 funksiyasi grafik rejimini o'rnatadi. INT 10H buyrug'ining AH=11 funksiyasi palitraning rangini tanlash va grafik belgini ko'rsatish imkonini beradi. AH registridagi kod funktsiyani belgilaydi:
AH=00: Tartibni sozlash. AH registridagi nol va AL registridagi 04 qiymati standart rangli grafik rejimini o'rnatadi:
MOV AH,00 ;Rejimni sozlash funksiyasi
MOV AL,04 ;Ruxsat 320x200
INT 10H
Grafik rejimini o'rnatish kursorni ekrandan yo'qolishiga olib keladi.
AH=0BH: Ranglar palitrasini o'rnating. BH registridagi raqam BL registrining maqsadini aniqlaydi:
BH=00 fon va chegara ranglarini BL registrining mazmuniga muvofiq tanlaydi. 1 dan 16 gacha bo'lgan fon rangi 0 dan F gacha bo'lgan qiymatlarga mos keladi; BH=01 BL registrining (0 yoki 1) mazmuniga ko'ra palitrani tanlaydi:
MOV AH,0BH ;Rangni sozlash funksiyasi
MOV BH,01 ;Palitrani tanlang
MOV BL,00; 0 (yashil, qizil, jigarrang)
INT 10H ;BIOS ga qo'ng'iroq qiling
Bir marta o'rnatilgan palitra boshqa buyruq bilan bekor qilinmaguncha saqlanadi. Palitrani o'zgartirganingizda, butun ekran rang kombinatsiyasini o'zgartiradi. Matn rejimida AH=0BH funksiyasidan foydalanilganda palitradagi 0 rang uchun belgilangan qiymat chegara rangini aniqlaydi.
AH=0CH: nuqtani ekranda ko'rsatish. AH registridagi koddan foydalanish tanlangan rangda (fon va palitrada) nuqtani ko'rsatish imkonini beradi. 0CMisol uchun, 320x200 o'lchamlari uchun vertikal koordinatani (0 dan 199 gacha) DX registriga, gorizontal koordinatasini (0 dan 319 gacha) CX registriga yuklang. AL registrida biz nuqta rangini joylashtiramiz (0 dan 3 gacha):
MOV AH,0CH ;Nuqta chiqarish funksiyasi
MOV AL,rang;Nuqta rangi
MOV CX, ustun ;Gorizontal koordinata
MOV DX, string ;Vertikal koordinata
INT 10H ;BIOS ga qo'ng'iroq qiling
AH=0DH: nuqtani ekrandan o‘qish. Bu funksiya nuqtani rangini aniqlash uchun o‘qish imkonini beradi. DX registriga vertikal koordinata (0 dan 199 gacha), CX registriga esa gorizontal koordinata (0 dan 319 gacha) yuklanishi kerak. AH registrida 0D qiymati bo'lishi kerak. Funktsiya AL registridagi nuqta rangini qaytaradi.
|
| |