|
Tizimli dasturlash
|
bet | 45/64 | Sana | 13.05.2024 | Hajmi | 183,36 Kb. | | #230077 |
Bog'liq Системное программирование, практикаmov ax, 0B800h
|
ES segment registriga 0B800h raqamini yuklang
|
|
harakat, bolta
|
|
mov di,0
|
DI registriga nol yuklang
|
|
mov ah, 31
|
; registrga qo'ying ah - belgi atributi
|
|
mov a l ,
|
al registriga - har qanday ASCII belgilar kodini kiriting
|
|
mov es:[di],ax
|
; 0B800:0000h manzilidagi belgining atributini va ASCII kodini kiriting
|
|
harakat ah, 10h
|
; 10h funksiyasiga qo'ng'iroq qiling - har qanday tugmani bosishdan oldin dasturni to'xtatishingiz mumkin
|
|
int 16 soat
|
; qo'ng'iroqni uzish 16h - BIOS klaviatura xizmati
|
|
ret
|
; DOS funktsiyasi "dasturni tugatish"
|
|
oxiri boshlanadi
|
; dastur kodini tugatish belgisi
|
Ushbu dasturda video xotiraga nusxa ko'chirish uchun ma'lumotlarni tayyorlashda (7) va (8) qatorlarda biz ES segmenti registriga 0B800h raqamini yuklaymiz , bu matn rejimida ko'rsatish segmentiga mos keladi. (9) qatorda biz DI registriga nol yuklaymiz. Bu 0B800h segmentiga nisbatan ofset bo'ladi. (10) va (11) qatorlarda belgi atributi mos ravishda AH registriga (31 - ko'k fonda yorqin oq belgi) va ALga - belgining ASCII kodi (01 - yuz) kiritiladi.
(12) qatorga biz 0B800:0000h manziliga (ya'ni displeyning birinchi qatoridagi birinchi belgi - yuqori chap burchak) belgining atributini va ASCII kodini kiritamiz (mos ravishda 31 va 01).
|
| |